diff --git a/realms/__init__.py b/realms/__init__.py index 27c63dc..7578885 100644 --- a/realms/__init__.py +++ b/realms/__init__.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import + import functools import sys @@ -9,8 +11,10 @@ sys.setdefaultencoding('utf-8') import base64 import time import json -import httplib import traceback +import six.moves.http_client as httplib +from functools import update_wrapper + import click from flask import Flask, request, render_template, url_for, redirect, g from flask_cache import Cache @@ -18,7 +22,6 @@ from flask_login import LoginManager, current_user from flask_sqlalchemy import SQLAlchemy from flask_assets import Environment, Bundle from flask_ldap_login import LDAPLoginManager -from functools import update_wrapper from werkzeug.routing import BaseConverter from werkzeug.exceptions import HTTPException from sqlalchemy.ext.declarative import declarative_base diff --git a/realms/commands.py b/realms/commands.py index c7ca43c..a3aedd4 100644 --- a/realms/commands.py +++ b/realms/commands.py @@ -1,14 +1,18 @@ -from realms import config, create_app, db, __version__, cli, cache -from realms.lib.util import random_string, in_virtualenv, green, yellow, red -from subprocess import call, Popen -from multiprocessing import cpu_count -import click +from __future__ import absolute_import + import json import sys import os -import pip import time import subprocess +from subprocess import call, Popen +from multiprocessing import cpu_count + +import click +import pip + +from . import config, create_app, db, __version__, cli, cache +from .lib.util import random_string, in_virtualenv, green, yellow, red config = config.conf diff --git a/realms/config/__init__.py b/realms/config/__init__.py index 32172f3..297c946 100644 --- a/realms/config/__init__.py +++ b/realms/config/__init__.py @@ -1,9 +1,12 @@ +from __future__ import absolute_import + import json import os import sys -from urlparse import urlparse -from realms.lib.util import in_vagrant +from six.moves.urllib.parse import urlparse + +from ..lib.util import in_vagrant class Config(object): diff --git a/realms/lib/__init__.py b/realms/lib/__init__.py index e69de29..66b6508 100644 --- a/realms/lib/__init__.py +++ b/realms/lib/__init__.py @@ -0,0 +1,2 @@ +from __future__ import absolute_import + diff --git a/realms/lib/hook.py b/realms/lib/hook.py index a607b54..a46c6de 100644 --- a/realms/lib/hook.py +++ b/realms/lib/hook.py @@ -1,7 +1,10 @@ -from flask_sqlalchemy import DeclarativeMeta +from __future__ import absolute_import from functools import wraps +from flask_sqlalchemy import DeclarativeMeta + + def hook_func(name, fn): @wraps(fn) diff --git a/realms/lib/model.py b/realms/lib/model.py index bd84bbb..4543d4b 100644 --- a/realms/lib/model.py +++ b/realms/lib/model.py @@ -1,7 +1,11 @@ +from __future__ import absolute_import + import json -from sqlalchemy import not_, and_ from datetime import datetime -from realms import db + +from sqlalchemy import not_, and_ + +from .. import db class Model(db.Model): diff --git a/realms/lib/test.py b/realms/lib/test.py index 465b6f4..5d9b4e9 100644 --- a/realms/lib/test.py +++ b/realms/lib/test.py @@ -1,7 +1,11 @@ +from __future__ import absolute_import + import os import shutil import tempfile + from flask_testing import TestCase + from realms.lib.util import random_string from realms import create_app diff --git a/realms/lib/util.py b/realms/lib/util.py index b8c6da0..7ed3167 100644 --- a/realms/lib/util.py +++ b/realms/lib/util.py @@ -1,4 +1,5 @@ -import click +from __future__ import absolute_import + import re import os import hashlib @@ -6,6 +7,8 @@ import json import string import random import sys + +import click from jinja2 import Template diff --git a/realms/modules/__init__.py b/realms/modules/__init__.py index e69de29..c396168 100644 --- a/realms/modules/__init__.py +++ b/realms/modules/__init__.py @@ -0,0 +1 @@ +from __future__ import absolute_import diff --git a/realms/modules/auth/__init__.py b/realms/modules/auth/__init__.py index b8421e7..2f62801 100644 --- a/realms/modules/auth/__init__.py +++ b/realms/modules/auth/__init__.py @@ -1,7 +1,10 @@ -from realms import login_manager +from __future__ import absolute_import + from flask import request, flash, redirect from flask_login import login_url +from ... import login_manager + modules = set() @login_manager.unauthorized_handler diff --git a/realms/modules/auth/ldap/__init__.py b/realms/modules/auth/ldap/__init__.py index f3d364d..18b067b 100644 --- a/realms/modules/auth/ldap/__init__.py +++ b/realms/modules/auth/ldap/__init__.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import + from ..models import Auth Auth.register('ldap') diff --git a/realms/modules/auth/ldap/forms.py b/realms/modules/auth/ldap/forms.py index 71dd215..e876af0 100644 --- a/realms/modules/auth/ldap/forms.py +++ b/realms/modules/auth/ldap/forms.py @@ -1,7 +1,9 @@ +from __future__ import absolute_import + from flask_wtf import Form from wtforms import StringField, PasswordField, validators class LoginForm(Form): login = StringField('Username', [validators.DataRequired()]) - password = PasswordField('Password', [validators.DataRequired()]) \ No newline at end of file + password = PasswordField('Password', [validators.DataRequired()]) diff --git a/realms/modules/auth/ldap/models.py b/realms/modules/auth/ldap/models.py index 1574eb8..7aa388f 100644 --- a/realms/modules/auth/ldap/models.py +++ b/realms/modules/auth/ldap/models.py @@ -1,7 +1,10 @@ +from __future__ import absolute_import + from flask import render_template from flask_login import login_user -from realms import ldap from flask_ldap_login import LDAPLoginForm + +from realms import ldap from ..models import BaseUser diff --git a/realms/modules/auth/ldap/views.py b/realms/modules/auth/ldap/views.py index 4a16cfa..3cdf16e 100644 --- a/realms/modules/auth/ldap/views.py +++ b/realms/modules/auth/ldap/views.py @@ -1,7 +1,15 @@ +<<<<<<< HEAD from flask import current_app, request, redirect, Blueprint, flash, url_for, session from ..ldap.models import User +======= +from __future__ import absolute_import + +from flask import current_app, request, redirect, Blueprint, flash, url_for +>>>>>>> systematic use of `from __future__ import absolute_import`. it eliminates `import NAME` confusion with very common names (eg. `import ldap` is very ambiguous: can be a ldap module from realms-wiki, a ldap module from flask-ldap-login, or `python-ldap` module. from flask_ldap_login import LDAPLoginForm +from .models import User + blueprint = Blueprint('auth.ldap', __name__) diff --git a/realms/modules/auth/local/__init__.py b/realms/modules/auth/local/__init__.py index 8c939c1..989578d 100644 --- a/realms/modules/auth/local/__init__.py +++ b/realms/modules/auth/local/__init__.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import + from ..models import Auth Auth.register('local') diff --git a/realms/modules/auth/local/commands.py b/realms/modules/auth/local/commands.py index ae4a7e9..7f5d115 100644 --- a/realms/modules/auth/local/commands.py +++ b/realms/modules/auth/local/commands.py @@ -1,8 +1,11 @@ +from __future__ import absolute_import + import click -from realms.lib.util import random_string -from realms.modules.auth.local.models import User -from realms.lib.util import green, red, yellow -from realms import cli_group + +from .models import User +from ....lib.util import random_string +from ....lib.util import green, red, yellow +from .... import cli_group @cli_group(short_help="Auth Module") diff --git a/realms/modules/auth/local/forms.py b/realms/modules/auth/local/forms.py index e1cbee5..d18a0e7 100644 --- a/realms/modules/auth/local/forms.py +++ b/realms/modules/auth/local/forms.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import + from flask_wtf import Form from wtforms import StringField, PasswordField, validators diff --git a/realms/modules/auth/local/hooks.py b/realms/modules/auth/local/hooks.py index cbe1762..1599162 100644 --- a/realms/modules/auth/local/hooks.py +++ b/realms/modules/auth/local/hooks.py @@ -1,5 +1,8 @@ +from __future__ import absolute_import + from flask import current_app from flask_wtf import RecaptchaField + from .forms import RegistrationForm diff --git a/realms/modules/auth/local/models.py b/realms/modules/auth/local/models.py index 9e14ec8..97d6669 100644 --- a/realms/modules/auth/local/models.py +++ b/realms/modules/auth/local/models.py @@ -1,11 +1,15 @@ +from __future__ import absolute_import + +from hashlib import sha256 + from flask import current_app, render_template from flask_login import logout_user, login_user +from itsdangerous import URLSafeSerializer, BadSignature + from realms import login_manager, db from realms.lib.model import Model from ..models import BaseUser from .forms import LoginForm -from itsdangerous import URLSafeSerializer, BadSignature -from hashlib import sha256 @login_manager.token_loader diff --git a/realms/modules/auth/local/views.py b/realms/modules/auth/local/views.py index e4b02e6..64ea2b9 100644 --- a/realms/modules/auth/local/views.py +++ b/realms/modules/auth/local/views.py @@ -1,6 +1,10 @@ +from __future__ import absolute_import + from flask import current_app, render_template, request, redirect, Blueprint, flash, url_for, session -from realms.modules.auth.local.models import User -from realms.modules.auth.local.forms import LoginForm, RegistrationForm + +from .models import User +from .forms import LoginForm, RegistrationForm + blueprint = Blueprint('auth.local', __name__) diff --git a/realms/modules/auth/models.py b/realms/modules/auth/models.py index f5a0ec7..94a67eb 100644 --- a/realms/modules/auth/models.py +++ b/realms/modules/auth/models.py @@ -1,12 +1,16 @@ +from __future__ import absolute_import + +import importlib +from hashlib import sha256 + from flask import current_app from flask_login import UserMixin, logout_user, AnonymousUserMixin +from itsdangerous import URLSafeSerializer, BadSignature +import bcrypt + from realms import login_manager from realms.lib.util import gravatar_url -from itsdangerous import URLSafeSerializer, BadSignature -from hashlib import sha256 from . import modules -import bcrypt -import importlib @login_manager.user_loader diff --git a/realms/modules/auth/oauth/__init__.py b/realms/modules/auth/oauth/__init__.py index 7a84b08..7a576b2 100644 --- a/realms/modules/auth/oauth/__init__.py +++ b/realms/modules/auth/oauth/__init__.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import + from ..models import Auth Auth.register('oauth') diff --git a/realms/modules/auth/oauth/models.py b/realms/modules/auth/oauth/models.py index d7f7680..a0fe781 100644 --- a/realms/modules/auth/oauth/models.py +++ b/realms/modules/auth/oauth/models.py @@ -1,8 +1,10 @@ +from __future__ import absolute_import + from flask import session from flask_login import login_user from flask_oauthlib.client import OAuth -from realms import config +from .... import config from ..models import BaseUser config = config.conf diff --git a/realms/modules/auth/oauth/views.py b/realms/modules/auth/oauth/views.py index 45222e5..e0cebb3 100644 --- a/realms/modules/auth/oauth/views.py +++ b/realms/modules/auth/oauth/views.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import + from flask import Blueprint, url_for, request, flash, redirect, session, current_app from .models import User diff --git a/realms/modules/auth/tests.py b/realms/modules/auth/tests.py index e69de29..c396168 100644 --- a/realms/modules/auth/tests.py +++ b/realms/modules/auth/tests.py @@ -0,0 +1 @@ +from __future__ import absolute_import diff --git a/realms/modules/auth/views.py b/realms/modules/auth/views.py index 2589fc6..3b75948 100644 --- a/realms/modules/auth/views.py +++ b/realms/modules/auth/views.py @@ -1,7 +1,11 @@ +from __future__ import absolute_import + from flask import current_app, render_template, request, redirect, Blueprint, flash, url_for, session from flask_login import logout_user + from realms.modules.auth.models import Auth + blueprint = Blueprint('auth', __name__, template_folder='templates') diff --git a/realms/modules/search/__init__.py b/realms/modules/search/__init__.py index e69de29..c396168 100644 --- a/realms/modules/search/__init__.py +++ b/realms/modules/search/__init__.py @@ -0,0 +1 @@ +from __future__ import absolute_import diff --git a/realms/modules/search/commands.py b/realms/modules/search/commands.py index eab1556..cfc0936 100644 --- a/realms/modules/search/commands.py +++ b/realms/modules/search/commands.py @@ -1,7 +1,10 @@ +from __future__ import absolute_import + import click from flask import current_app -from realms import search, cli_group -from realms.modules.wiki.models import Wiki + +from ... import search, cli_group +from ..wiki.models import Wiki @cli_group(short_help="Search Module") diff --git a/realms/modules/search/hooks.py b/realms/modules/search/hooks.py index abf7346..1e0e694 100644 --- a/realms/modules/search/hooks.py +++ b/realms/modules/search/hooks.py @@ -1,5 +1,7 @@ -from realms.modules.wiki.models import WikiPage -from realms import search +from __future__ import absolute_import + +from ..wiki.models import WikiPage +from ... import search @WikiPage.after('write') diff --git a/realms/modules/search/models.py b/realms/modules/search/models.py index 2935db7..86819d8 100644 --- a/realms/modules/search/models.py +++ b/realms/modules/search/models.py @@ -1,8 +1,11 @@ +from __future__ import absolute_import + import re import sys from flask import g, current_app -from realms.lib.util import filename_to_cname + +from ...lib.util import filename_to_cname def simple(app): diff --git a/realms/modules/search/views.py b/realms/modules/search/views.py index 8df9fa6..7d74e20 100644 --- a/realms/modules/search/views.py +++ b/realms/modules/search/views.py @@ -1,7 +1,11 @@ +from __future__ import absolute_import + from flask import render_template, request, Blueprint, current_app from flask_login import current_user + from realms import search as search_engine + blueprint = Blueprint('search', __name__, template_folder='templates') diff --git a/realms/modules/wiki/__init__.py b/realms/modules/wiki/__init__.py index c9ec232..9f70e89 100644 --- a/realms/modules/wiki/__init__.py +++ b/realms/modules/wiki/__init__.py @@ -1,6 +1,9 @@ +from __future__ import absolute_import + import os import sys -from realms.modules.wiki.models import Wiki + +from .models import Wiki def init(app): diff --git a/realms/modules/wiki/assets.py b/realms/modules/wiki/assets.py index 8f20b42..6a89a8b 100644 --- a/realms/modules/wiki/assets.py +++ b/realms/modules/wiki/assets.py @@ -1,4 +1,6 @@ -from realms import assets +from __future__ import absolute_import + +from ... import assets assets.register('editor.js', 'vendor/store-js/store.js', diff --git a/realms/modules/wiki/hooks.py b/realms/modules/wiki/hooks.py index 03c9ae9..dbb9af0 100644 --- a/realms/modules/wiki/hooks.py +++ b/realms/modules/wiki/hooks.py @@ -1,4 +1,7 @@ +from __future__ import absolute_import + from flask import g, current_app + from .models import Wiki diff --git a/realms/modules/wiki/models.py b/realms/modules/wiki/models.py index b32f076..3201df9 100644 --- a/realms/modules/wiki/models.py +++ b/realms/modules/wiki/models.py @@ -1,13 +1,17 @@ +from __future__ import absolute_import + import os import posixpath import re + import ghdiff import yaml from dulwich.object_store import tree_lookup_path from dulwich.repo import Repo, NotGitRepository -from realms.lib.util import cname_to_filename, filename_to_cname -from realms import cache -from realms.lib.hook import HookMixin + +from ...lib.util import cname_to_filename, filename_to_cname +from ... import cache +from ...lib.hook import HookMixin class PageNotFound(Exception): diff --git a/realms/modules/wiki/tests.py b/realms/modules/wiki/tests.py index 565f4f1..62e4611 100644 --- a/realms/modules/wiki/tests.py +++ b/realms/modules/wiki/tests.py @@ -1,8 +1,12 @@ +from __future__ import absolute_import + import json + from nose.tools import * from flask import url_for -from realms.lib.util import cname_to_filename, filename_to_cname -from realms.lib.test import BaseTest + +from ...lib.util import cname_to_filename, filename_to_cname +from ...lib.test import BaseTest class WikiBaseTest(BaseTest): diff --git a/realms/modules/wiki/views.py b/realms/modules/wiki/views.py index 70c5def..2db60ed 100644 --- a/realms/modules/wiki/views.py +++ b/realms/modules/wiki/views.py @@ -1,11 +1,16 @@ +from __future__ import absolute_import + import itertools import sys from datetime import datetime + from flask import abort, g, render_template, request, redirect, Blueprint, flash, url_for, current_app from flask_login import login_required, current_user + from realms.lib.util import to_canonical, remove_ext, gravatar_url from .models import PageNotFound + blueprint = Blueprint('wiki', __name__, template_folder='templates', static_folder='static', static_url_path='/static/wiki') diff --git a/realms/version.py b/realms/version.py index ef72cc0..91a872e 100644 --- a/realms/version.py +++ b/realms/version.py @@ -1 +1,3 @@ +from __future__ import absolute_import + __version__ = '0.8.1'