From 14e7f95d724072937317d13196c8206e3eb57566 Mon Sep 17 00:00:00 2001 From: Jack Grahl Date: Tue, 15 May 2018 18:57:11 +0000 Subject: [PATCH 01/15] Update README. --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index ab8a42e..d841a40 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,24 @@ -Flask-Autodoc +Flask-Selfdoc ============= -Flask-Autodoc is a Flask extension that automatically creates documentation for your endpoints based on the routes, function arguments and docstrings. +Flask-Selfdoc is a Flask extension that automatically creates documentation for your endpoints based on the routes, function arguments and docstrings. It was forked from Flask-Autodoc, written by Arnaud Coomans, and is completely compatible as a replacement for that extension. -[![Build](https://api.travis-ci.org/acoomans/flask-autodoc.png)](https://travis-ci.org/acoomans/flask-autodoc) -[![Pypi version](http://img.shields.io/pypi/v/flask-autodoc.svg)](https://pypi.python.org/pypi/Flask-Autodoc) -[![Pypi license](http://img.shields.io/pypi/l/flask-autodoc.svg)](https://pypi.python.org/pypi/Flask-Autodoc) +[![Build](https://api.travis-ci.org/jwg4/flask-autodoc.png)](https://travis-ci.org/jwg4/flask-autodoc) +[![Pypi version](http://img.shields.io/pypi/v/flask-autodoc.svg)](https://pypi.python.org/pypi/Flask-Selfdoc) +[![Pypi license](http://img.shields.io/pypi/l/flask-selfdoc.svg)](https://pypi.python.org/pypi/Flask-Selfdoc) ![Python 2](http://img.shields.io/badge/python-2-blue.svg) ![Python 3](http://img.shields.io/badge/python-3-blue.svg) ## Requirements -Flask-Autodoc is compatible with Python versions 2 and 3; and it depends only on Flask. +Flask-Selfdoc is compatible with Python versions 2 and 3; and it depends only on Flask. ## Install -To install Flask-Autodoc, run pip: +To install Flask-Selfdoc, run pip: - pip install flask-autodoc + pip install flask-selfdoc or clone this directory and run setup: @@ -26,15 +26,15 @@ or clone this directory and run setup: ## Usage -Start using Flask-Autodoc by importing it and initializing it: +Start using Flask-Selfdoc by importing it and initializing it: from flask import Flask - from flask.ext.autodoc import Autodoc + from flask.ext.selfdoc import Autodoc app = Flask(__name__) auto = Autodoc(app) -by default, Flask-Autodoc will only document the routes explicitly decorated with _doc_: +by default, Flask-Selfdoc will only document the routes explicitly decorated with _doc_: @app.route('/user/') @auto.doc() From a733eeb3d9617e55c9bddfd1fd89e48c96f47c70 Mon Sep 17 00:00:00 2001 From: Jack Grahl Date: Tue, 15 May 2018 19:05:42 +0000 Subject: [PATCH 02/15] Change autodoc to selfdoc, in module names and everywhere else. --- MANIFEST.in | 2 +- examples/custom/blog.py | 2 +- examples/factory/blog/doc.py | 2 +- examples/simple/blog.py | 2 +- {flask_autodoc => flask_selfdoc}/__init__.py | 0 {flask_autodoc => flask_selfdoc}/autodoc.py | 0 {flask_autodoc => flask_selfdoc}/templates/autodoc_default.html | 0 tests/test_autodoc.py | 2 +- 8 files changed, 5 insertions(+), 5 deletions(-) rename {flask_autodoc => flask_selfdoc}/__init__.py (100%) rename {flask_autodoc => flask_selfdoc}/autodoc.py (100%) rename {flask_autodoc => flask_selfdoc}/templates/autodoc_default.html (100%) diff --git a/MANIFEST.in b/MANIFEST.in index d03edc7..c2ccd5e 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,2 +1,2 @@ include README.md -include flask_autodoc/templates/autodoc_default.html +include flask_selfdoc/templates/autodoc_default.html diff --git a/examples/custom/blog.py b/examples/custom/blog.py index f32436c..130777c 100644 --- a/examples/custom/blog.py +++ b/examples/custom/blog.py @@ -2,7 +2,7 @@ from json import dumps from flask import Flask, redirect, request -from flask.ext.autodoc import Autodoc +from flask.ext.selfdoc import Autodoc app = Flask(__name__) diff --git a/examples/factory/blog/doc.py b/examples/factory/blog/doc.py index 17307a6..209431b 100644 --- a/examples/factory/blog/doc.py +++ b/examples/factory/blog/doc.py @@ -1,5 +1,5 @@ from flask import Blueprint -from flask.ext.autodoc import Autodoc +from flask.ext.selfdoc import Autodoc doc = Blueprint('doc', __name__, url_prefix='/doc') diff --git a/examples/simple/blog.py b/examples/simple/blog.py index 52ca75c..58262e3 100644 --- a/examples/simple/blog.py +++ b/examples/simple/blog.py @@ -1,7 +1,7 @@ from json import dumps from flask import Flask, redirect, request -from flask.ext.autodoc import Autodoc +from flask.ext.selfdoc import Autodoc app = Flask(__name__) diff --git a/flask_autodoc/__init__.py b/flask_selfdoc/__init__.py similarity index 100% rename from flask_autodoc/__init__.py rename to flask_selfdoc/__init__.py diff --git a/flask_autodoc/autodoc.py b/flask_selfdoc/autodoc.py similarity index 100% rename from flask_autodoc/autodoc.py rename to flask_selfdoc/autodoc.py diff --git a/flask_autodoc/templates/autodoc_default.html b/flask_selfdoc/templates/autodoc_default.html similarity index 100% rename from flask_autodoc/templates/autodoc_default.html rename to flask_selfdoc/templates/autodoc_default.html diff --git a/tests/test_autodoc.py b/tests/test_autodoc.py index e839c2f..b94692c 100644 --- a/tests/test_autodoc.py +++ b/tests/test_autodoc.py @@ -5,7 +5,7 @@ import os from flask import Flask -from flask.ext.autodoc import Autodoc +from flask.ext.selfdoc import Autodoc class TestAutodoc(unittest.TestCase): From 67bbbe76769f758ef7fa880a17d67bd9b6b797d5 Mon Sep 17 00:00:00 2001 From: Jack Grahl Date: Tue, 15 May 2018 19:10:27 +0000 Subject: [PATCH 03/15] Update in one more place. --- flask_selfdoc/__init__.py | 2 +- setup.py | 15 +++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/flask_selfdoc/__init__.py b/flask_selfdoc/__init__.py index 89e047e..dc7a64c 100644 --- a/flask_selfdoc/__init__.py +++ b/flask_selfdoc/__init__.py @@ -1,3 +1,3 @@ __author__ = 'arnaud' -from flask.ext.autodoc.autodoc import Autodoc +from flask.ext.selfdoc.autodoc import Autodoc diff --git a/setup.py b/setup.py index 066e351..f603f3c 100644 --- a/setup.py +++ b/setup.py @@ -1,8 +1,8 @@ """ -Flask-Autodoc +Flask-Selfdoc ------------- -Flask autodoc automatically creates an online documentation for your flask app. +Flask selfdoc automatically creates an online documentation for your flask app. """ from setuptools import setup @@ -13,19 +13,18 @@ def readme(): setup( - name='Flask-Autodoc', - version='0.1.2', - url='http://github.com/acoomans/flask-autodoc', + name='Flask-Selfdoc', + version='0.2', + url='http://github.com/jwg4/flask-selfdoc', license='MIT', author='Arnaud Coomans', - author_email='arnaud.coomans@gmail.com', description='Documentation generator for flask', long_description=readme(), # py_modules=['flask_autodoc'], # if you would be using a package instead use packages instead # of py_modules: - packages=['flask_autodoc'], - package_data={'flask_autodoc': ['templates/autodoc_default.html']}, + packages=['flask_selfdoc'], + package_data={'flask_selfdoc': ['templates/autodoc_default.html']}, zip_safe=False, include_package_data=True, platforms='any', From f0477a4fe1634d6d5f4734a092580221ef1a4a4e Mon Sep 17 00:00:00 2001 From: Jack Grahl Date: Tue, 15 May 2018 19:41:47 +0000 Subject: [PATCH 04/15] Pin the requirements to an old version of Flask. Flask 1.0 does not support the flask.ext imports that this project currently uses. --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index e3e9a71..4a5cb4c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -Flask +Flask==0.12 From 1da61c2cf48f77dab1ecd3ab4a19d6cc081e1bf2 Mon Sep 17 00:00:00 2001 From: Jack Grahl Date: Tue, 15 May 2018 20:57:59 +0000 Subject: [PATCH 05/15] Remove requirements, specify flask versions in matrix. --- .travis.yml | 7 ++++++- requirements.txt | 1 - 2 files changed, 6 insertions(+), 2 deletions(-) delete mode 100644 requirements.txt diff --git a/.travis.yml b/.travis.yml index eedb46a..8c0eded 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,12 @@ python: - "2.7" - "3.3" - "3.4" + - "3.5" +env: + - FLASK=0.12 + - FLASK=1.0 install: - - pip install -r requirements.txt + - pip install Flask==${FLASK} script: - python -m unittest discover + diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 4a5cb4c..0000000 --- a/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -Flask==0.12 From b309ea475809d8d99bfc2c00289f32a835266bc8 Mon Sep 17 00:00:00 2001 From: Jack Grahl Date: Tue, 15 May 2018 21:02:15 +0000 Subject: [PATCH 06/15] Install latest flask but allow to fail. --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 8c0eded..17e0137 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,10 @@ python: env: - FLASK=0.12 - FLASK=1.0 + - FLASK=latest +matrix: + allow_failures: + - env: FLASK=latest install: - pip install Flask==${FLASK} script: From 6f0d6dcaa4a8a3d16c0f7dd139825ddac9750ca9 Mon Sep 17 00:00:00 2001 From: Jack Grahl Date: Tue, 15 May 2018 21:05:52 +0000 Subject: [PATCH 07/15] Specify the actual latest version that we want. (latest doesnt work) --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 17e0137..21756cd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,10 +7,10 @@ python: env: - FLASK=0.12 - FLASK=1.0 - - FLASK=latest + - FLASK=1.0.2 matrix: allow_failures: - - env: FLASK=latest + - env: FLASK=1.0.2 install: - pip install Flask==${FLASK} script: From 6537bcbe487a87e62bde351facb344e4acb82db6 Mon Sep 17 00:00:00 2001 From: jwg4 Date: Wed, 16 May 2018 13:46:25 +0000 Subject: [PATCH 08/15] Replace import. --- flask_selfdoc/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flask_selfdoc/__init__.py b/flask_selfdoc/__init__.py index dc7a64c..95de98e 100644 --- a/flask_selfdoc/__init__.py +++ b/flask_selfdoc/__init__.py @@ -1,3 +1,3 @@ __author__ = 'arnaud' -from flask.ext.selfdoc.autodoc import Autodoc +from flask_selfdoc.autodoc import Autodoc From a3f14ea633b7d15d5e31a66ef01cf90b9a4ead77 Mon Sep 17 00:00:00 2001 From: jwg4 Date: Wed, 16 May 2018 13:47:28 +0000 Subject: [PATCH 09/15] Change another import. --- tests/test_autodoc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_autodoc.py b/tests/test_autodoc.py index b94692c..69c4553 100644 --- a/tests/test_autodoc.py +++ b/tests/test_autodoc.py @@ -5,7 +5,7 @@ import os from flask import Flask -from flask.ext.selfdoc import Autodoc +from flask_selfdoc import Autodoc class TestAutodoc(unittest.TestCase): From 38e9fd770b2a296c0cabb5f9bab4933ec649f291 Mon Sep 17 00:00:00 2001 From: jwg4 Date: Wed, 16 May 2018 13:48:11 +0000 Subject: [PATCH 10/15] Change another import. --- examples/custom/blog.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/custom/blog.py b/examples/custom/blog.py index 130777c..5f4c456 100644 --- a/examples/custom/blog.py +++ b/examples/custom/blog.py @@ -2,7 +2,7 @@ from json import dumps from flask import Flask, redirect, request -from flask.ext.selfdoc import Autodoc +from flask_selfdoc import Autodoc app = Flask(__name__) From a00b16f2944ee23a84748a79ee0f8d198db9f0db Mon Sep 17 00:00:00 2001 From: jwg4 Date: Wed, 16 May 2018 13:48:50 +0000 Subject: [PATCH 11/15] Change another import. --- examples/factory/blog/doc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/factory/blog/doc.py b/examples/factory/blog/doc.py index 209431b..c245eba 100644 --- a/examples/factory/blog/doc.py +++ b/examples/factory/blog/doc.py @@ -1,5 +1,5 @@ from flask import Blueprint -from flask.ext.selfdoc import Autodoc +from flask_selfdoc import Autodoc doc = Blueprint('doc', __name__, url_prefix='/doc') From 8d304e6d27517021f9376fce41f6d6139e84ff3e Mon Sep 17 00:00:00 2001 From: jwg4 Date: Wed, 16 May 2018 13:49:15 +0000 Subject: [PATCH 12/15] Change another import. --- examples/simple/blog.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/simple/blog.py b/examples/simple/blog.py index 58262e3..31d2ac8 100644 --- a/examples/simple/blog.py +++ b/examples/simple/blog.py @@ -1,7 +1,7 @@ from json import dumps from flask import Flask, redirect, request -from flask.ext.selfdoc import Autodoc +from flask_selfdoc import Autodoc app = Flask(__name__) From b07dfc8d70184865c8ccc85299ffd3ceaabe5414 Mon Sep 17 00:00:00 2001 From: jwg4 Date: Wed, 16 May 2018 13:59:40 +0000 Subject: [PATCH 13/15] Don't allow failures for latest flask anymore. --- .travis.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 21756cd..f3b6ee9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,9 +8,6 @@ env: - FLASK=0.12 - FLASK=1.0 - FLASK=1.0.2 -matrix: - allow_failures: - - env: FLASK=1.0.2 install: - pip install Flask==${FLASK} script: From 2bdff9c826e4fb05da7ed60d63bf9cd764480eab Mon Sep 17 00:00:00 2001 From: Jack Grahl Date: Wed, 24 May 2017 20:07:25 +0000 Subject: [PATCH 14/15] Raise an error with a useful message if the app is not setup. --- flask_selfdoc/autodoc.py | 2 ++ setup.py | 2 +- tests/test_error_handling.py | 13 +++++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 tests/test_error_handling.py diff --git a/flask_selfdoc/autodoc.py b/flask_selfdoc/autodoc.py index bb8f23b..f0c424c 100644 --- a/flask_selfdoc/autodoc.py +++ b/flask_selfdoc/autodoc.py @@ -176,6 +176,8 @@ def html(self, groups='all', template=None, **context): By specifying the group or groups arguments, only routes belonging to those groups will be returned. """ + if not self.app: + raise RuntimeError("Autodoc was not initialized with the Flask app.") context['autodoc'] = context['autodoc'] if 'autodoc' in context \ else self.generate(groups=groups) context['defaults'] = context['defaults'] if 'defaults' in context \ diff --git a/setup.py b/setup.py index f603f3c..5abe513 100644 --- a/setup.py +++ b/setup.py @@ -40,5 +40,5 @@ def readme(): 'Topic :: Internet :: WWW/HTTP :: Dynamic Content', 'Topic :: Software Development :: Libraries :: Python Modules' ], - test_suite='tests.test_autodoc', + test_suite='tests', ) diff --git a/tests/test_error_handling.py b/tests/test_error_handling.py new file mode 100644 index 0000000..f598c46 --- /dev/null +++ b/tests/test_error_handling.py @@ -0,0 +1,13 @@ +import unittest + +from flask import Flask +from flask_autodoc import Autodoc + + +class TestErrorHandling(unittest.TestCase): + def test_app_not_initialized(self): + app = Flask(__name__) + app.debug = True + autodoc = Autodoc() + with app.app_context(): + self.assertRaises(RuntimeError, lambda: autodoc.html()) From ab921c2cb55940e9b0187f82e09f12cda4b3e12b Mon Sep 17 00:00:00 2001 From: jwg4 Date: Wed, 16 May 2018 14:50:25 +0000 Subject: [PATCH 15/15] Correct name of package. --- tests/test_error_handling.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_error_handling.py b/tests/test_error_handling.py index f598c46..cb37698 100644 --- a/tests/test_error_handling.py +++ b/tests/test_error_handling.py @@ -1,7 +1,7 @@ import unittest from flask import Flask -from flask_autodoc import Autodoc +from flask_selfdoc import Autodoc class TestErrorHandling(unittest.TestCase):