Skip to content

Raise an error with a useful message if the app is not set up. #31

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 16 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,13 @@ python:
- "2.7"
- "3.3"
- "3.4"
- "3.5"
env:
- FLASK=0.12
- FLASK=1.0
- FLASK=1.0.2
install:
- pip install -r requirements.txt
- pip install Flask==${FLASK}
script:
- python -m unittest discover

2 changes: 1 addition & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
include README.md
include flask_autodoc/templates/autodoc_default.html
include flask_selfdoc/templates/autodoc_default.html
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,40 @@
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:

python setup.py install

## 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/<int:id>')
@auto.doc()
Expand Down
2 changes: 1 addition & 1 deletion examples/custom/blog.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from json import dumps

from flask import Flask, redirect, request
from flask.ext.autodoc import Autodoc
from flask_selfdoc import Autodoc


app = Flask(__name__)
Expand Down
2 changes: 1 addition & 1 deletion examples/factory/blog/doc.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from flask import Blueprint
from flask.ext.autodoc import Autodoc
from flask_selfdoc import Autodoc


doc = Blueprint('doc', __name__, url_prefix='/doc')
Expand Down
2 changes: 1 addition & 1 deletion examples/simple/blog.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from json import dumps

from flask import Flask, redirect, request
from flask.ext.autodoc import Autodoc
from flask_selfdoc import Autodoc


app = Flask(__name__)
Expand Down
3 changes: 0 additions & 3 deletions flask_autodoc/__init__.py

This file was deleted.

3 changes: 3 additions & 0 deletions flask_selfdoc/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
__author__ = 'arnaud'

from flask_selfdoc.autodoc import Autodoc
2 changes: 2 additions & 0 deletions flask_autodoc/autodoc.py → flask_selfdoc/autodoc.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand Down
1 change: 0 additions & 1 deletion requirements.txt

This file was deleted.

17 changes: 8 additions & 9 deletions setup.py
Original file line number Diff line number Diff line change
@@ -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

Expand All @@ -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='[email protected]',
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',
Expand All @@ -41,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',
)
2 changes: 1 addition & 1 deletion tests/test_autodoc.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import os

from flask import Flask
from flask.ext.autodoc import Autodoc
from flask_selfdoc import Autodoc


class TestAutodoc(unittest.TestCase):
Expand Down
13 changes: 13 additions & 0 deletions tests/test_error_handling.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import unittest

from flask import Flask
from flask_selfdoc 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())