[setup] Added build documentation target
This commit is contained in:
parent
da94acf18c
commit
114e12f151
|
@ -67,6 +67,7 @@ instance/
|
||||||
|
|
||||||
# Sphinx documentation
|
# Sphinx documentation
|
||||||
docs/_build/
|
docs/_build/
|
||||||
|
docs/
|
||||||
|
|
||||||
# PyBuilder
|
# PyBuilder
|
||||||
target/
|
target/
|
||||||
|
|
|
@ -17,7 +17,7 @@ class PrefixMiddleware(object):
|
||||||
def __call__(self, environ, start_response):
|
def __call__(self, environ, start_response):
|
||||||
|
|
||||||
if environ["PATH_INFO"].startswith(self.prefix):
|
if environ["PATH_INFO"].startswith(self.prefix):
|
||||||
environ["PATH_INFO"] = environ["PATH_INFO"][len(self.prefix) :]
|
environ["PATH_INFO"] = environ["PATH_INFO"][len(self.prefix):]
|
||||||
environ["SCRIPT_NAME"] = self.prefix
|
environ["SCRIPT_NAME"] = self.prefix
|
||||||
return self.app(environ, start_response)
|
return self.app(environ, start_response)
|
||||||
else:
|
else:
|
||||||
|
@ -83,19 +83,19 @@ class InterfaceGenerator:
|
||||||
import typing
|
import typing
|
||||||
|
|
||||||
if (
|
if (
|
||||||
inspect.ismodule(module[1])
|
inspect.ismodule(module[1])
|
||||||
and module[1].__name__.startswith(self.basename)
|
and module[1].__name__.startswith(self.basename)
|
||||||
and module[1].__name__ not in self.known
|
and module[1].__name__ not in self.known
|
||||||
):
|
):
|
||||||
self.known.append(module[1].__name__)
|
self.known.append(module[1].__name__)
|
||||||
for cls in inspect.getmembers(module[1], lambda x: inspect.isclass(x) or inspect.ismodule(x)):
|
for cls in inspect.getmembers(module[1], lambda x: inspect.isclass(x) or inspect.ismodule(x)):
|
||||||
self.walker(cls)
|
self.walker(cls)
|
||||||
elif (
|
elif (
|
||||||
inspect.isclass(module[1])
|
inspect.isclass(module[1])
|
||||||
and module[1].__module__.startswith(self.basename)
|
and module[1].__module__.startswith(self.basename)
|
||||||
and module[0] not in self.classes
|
and module[0] not in self.classes
|
||||||
and not module[0].startswith("_")
|
and not module[0].startswith("_")
|
||||||
and hasattr(module[1], "__annotations__")
|
and hasattr(module[1], "__annotations__")
|
||||||
):
|
):
|
||||||
self.this_type = module[0]
|
self.this_type = module[0]
|
||||||
print("\n\n" + module[0] + "\n")
|
print("\n\n" + module[0] + "\n")
|
||||||
|
|
33
setup.py
33
setup.py
|
@ -1,11 +1,35 @@
|
||||||
from setuptools import setup, find_packages
|
from setuptools import setup, find_packages, Command
|
||||||
|
import subprocess
|
||||||
import os
|
import os
|
||||||
|
|
||||||
mysql_driver = "PyMySQL" if os.name == "nt" else "mysqlclient"
|
mysql_driver = "PyMySQL" if os.name == "nt" else "mysqlclient"
|
||||||
|
|
||||||
|
|
||||||
|
class DocsCommand(Command):
|
||||||
|
description = "Generate and export API documentation"
|
||||||
|
user_options = [
|
||||||
|
# The format is (long option, short option, description).
|
||||||
|
("output=", "o", "Documentation output path"),
|
||||||
|
]
|
||||||
|
|
||||||
|
def initialize_options(self):
|
||||||
|
self.output = "./docs"
|
||||||
|
|
||||||
|
def finalize_options(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
"""Run command."""
|
||||||
|
command = ["python", "-m", "pdoc", "--skip-errors", "--html", "--output-dir", self.output, "flaschengeist"]
|
||||||
|
self.announce(
|
||||||
|
"Running command: %s" % str(command),
|
||||||
|
)
|
||||||
|
subprocess.check_call(command)
|
||||||
|
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="flaschengeist",
|
name="flaschengeist",
|
||||||
version="2.0.0-dev",
|
version="2.0.0.dev0",
|
||||||
url="https://wu5.de/redmine/projects/geruecht",
|
url="https://wu5.de/redmine/projects/geruecht",
|
||||||
author="WU5 + Friends",
|
author="WU5 + Friends",
|
||||||
author_email="tim@groeger-clan.de",
|
author_email="tim@groeger-clan.de",
|
||||||
|
@ -23,7 +47,7 @@ setup(
|
||||||
"werkzeug",
|
"werkzeug",
|
||||||
mysql_driver,
|
mysql_driver,
|
||||||
],
|
],
|
||||||
extras_require={"ldap": ["flask_ldapconn", "ldap3"], "pricelist": ["pillow"],"test": ["pytest", "coverage"]},
|
extras_require={"ldap": ["flask_ldapconn", "ldap3"], "pricelist": ["pillow"], "test": ["pytest", "coverage"]},
|
||||||
entry_points={
|
entry_points={
|
||||||
"flaschengeist.plugin": [
|
"flaschengeist.plugin": [
|
||||||
# Authentication providers
|
# Authentication providers
|
||||||
|
@ -39,4 +63,7 @@ setup(
|
||||||
"pricelist = flaschengeist.plugins.pricelist:PriceListPlugin [pricelist]",
|
"pricelist = flaschengeist.plugins.pricelist:PriceListPlugin [pricelist]",
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
cmdclass={
|
||||||
|
"docs": DocsCommand,
|
||||||
|
},
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue