From 27315317688243ed4922d883de08a2cd46465fb8 Mon Sep 17 00:00:00 2001 From: stef Date: Sat, 20 Aug 2016 00:48:00 +0200 Subject: [PATCH 1/9] 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. also cleant up a bit the import towards PEP8: builtin modules first, then 3rd party python packages, then local packages --- realms/__init__.py | 7 +++++-- realms/commands.py | 16 ++++++++++------ realms/config/__init__.py | 7 +++++-- realms/lib/__init__.py | 2 ++ realms/lib/hook.py | 5 ++++- realms/lib/model.py | 8 ++++++-- realms/lib/test.py | 4 ++++ realms/lib/util.py | 5 ++++- realms/modules/__init__.py | 1 + realms/modules/auth/__init__.py | 5 ++++- realms/modules/auth/ldap/__init__.py | 2 ++ realms/modules/auth/ldap/forms.py | 4 +++- realms/modules/auth/ldap/models.py | 5 ++++- realms/modules/auth/ldap/views.py | 8 ++++++++ realms/modules/auth/local/__init__.py | 2 ++ realms/modules/auth/local/commands.py | 11 +++++++---- realms/modules/auth/local/forms.py | 2 ++ realms/modules/auth/local/hooks.py | 3 +++ realms/modules/auth/local/models.py | 8 ++++++-- realms/modules/auth/local/views.py | 8 ++++++-- realms/modules/auth/models.py | 12 ++++++++---- realms/modules/auth/oauth/__init__.py | 2 ++ realms/modules/auth/oauth/models.py | 4 +++- realms/modules/auth/oauth/views.py | 2 ++ realms/modules/auth/tests.py | 1 + realms/modules/auth/views.py | 4 ++++ realms/modules/search/__init__.py | 1 + realms/modules/search/commands.py | 7 +++++-- realms/modules/search/hooks.py | 6 ++++-- realms/modules/search/models.py | 5 ++++- realms/modules/search/views.py | 4 ++++ realms/modules/wiki/__init__.py | 5 ++++- realms/modules/wiki/assets.py | 4 +++- realms/modules/wiki/hooks.py | 3 +++ realms/modules/wiki/models.py | 10 +++++++--- realms/modules/wiki/tests.py | 8 ++++++-- realms/modules/wiki/views.py | 5 +++++ realms/version.py | 2 ++ 38 files changed, 156 insertions(+), 42 deletions(-) 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' From 6a043f4a7d18e870c0bbc93538cc2dbb036b838d Mon Sep 17 00:00:00 2001 From: stef Date: Sat, 20 Aug 2016 19:37:22 +0200 Subject: [PATCH 2/9] more readable imports --- realms/__init__.py | 13 ++++++------- realms/commands.py | 4 ++-- realms/config/__init__.py | 3 ++- realms/lib/model.py | 2 +- realms/modules/auth/__init__.py | 2 +- realms/modules/auth/ldap/__init__.py | 2 +- realms/modules/auth/ldap/models.py | 2 +- realms/modules/auth/local/__init__.py | 2 +- realms/modules/auth/local/commands.py | 6 +++--- realms/modules/auth/local/models.py | 2 +- realms/modules/auth/views.py | 2 +- realms/modules/search/commands.py | 4 ++-- realms/modules/search/hooks.py | 4 ++-- realms/modules/search/models.py | 2 +- realms/modules/wiki/assets.py | 2 +- realms/modules/wiki/models.py | 6 +++--- realms/modules/wiki/tests.py | 4 ++-- setup.py | 2 +- 18 files changed, 32 insertions(+), 32 deletions(-) diff --git a/realms/__init__.py b/realms/__init__.py index 7578885..5a515be 100644 --- a/realms/__init__.py +++ b/realms/__init__.py @@ -1,13 +1,12 @@ from __future__ import absolute_import -import functools import sys - # Set default encoding to UTF-8 reload(sys) # noinspection PyUnresolvedReferences sys.setdefaultencoding('utf-8') +import functools import base64 import time import json @@ -26,11 +25,11 @@ from werkzeug.routing import BaseConverter from werkzeug.exceptions import HTTPException from sqlalchemy.ext.declarative import declarative_base -from .modules.search.models import Search -from .lib.util import to_canonical, remove_ext, mkdir_safe, gravatar_url, to_dict -from .lib.hook import HookModelMeta, HookMixin -from .lib.util import is_su, in_virtualenv -from .version import __version__ +from realms.modules.search.models import Search +from realms.lib.util import to_canonical, remove_ext, mkdir_safe, gravatar_url, to_dict +from realms.lib.hook import HookModelMeta, HookMixin +from realms.lib.util import is_su, in_virtualenv +from realms.version import __version__ class Application(Flask): diff --git a/realms/commands.py b/realms/commands.py index a3aedd4..b6dc8ae 100644 --- a/realms/commands.py +++ b/realms/commands.py @@ -11,8 +11,8 @@ 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 +from realms import config, create_app, db, __version__, cli, cache +from realms.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 297c946..0ecbe8b 100644 --- a/realms/config/__init__.py +++ b/realms/config/__init__.py @@ -4,9 +4,10 @@ import json import os import sys +# noinspection PyUnresolvedReferences from six.moves.urllib.parse import urlparse -from ..lib.util import in_vagrant +from realms.lib.util import in_vagrant class Config(object): diff --git a/realms/lib/model.py b/realms/lib/model.py index 4543d4b..86d7839 100644 --- a/realms/lib/model.py +++ b/realms/lib/model.py @@ -5,7 +5,7 @@ from datetime import datetime from sqlalchemy import not_, and_ -from .. import db +from realms import db class Model(db.Model): diff --git a/realms/modules/auth/__init__.py b/realms/modules/auth/__init__.py index 2f62801..1908ef5 100644 --- a/realms/modules/auth/__init__.py +++ b/realms/modules/auth/__init__.py @@ -3,7 +3,7 @@ from __future__ import absolute_import from flask import request, flash, redirect from flask_login import login_url -from ... import login_manager +from realms import login_manager modules = set() diff --git a/realms/modules/auth/ldap/__init__.py b/realms/modules/auth/ldap/__init__.py index 18b067b..7ec6f86 100644 --- a/realms/modules/auth/ldap/__init__.py +++ b/realms/modules/auth/ldap/__init__.py @@ -1,5 +1,5 @@ from __future__ import absolute_import -from ..models import Auth +from realms.modules.auth.models import Auth Auth.register('ldap') diff --git a/realms/modules/auth/ldap/models.py b/realms/modules/auth/ldap/models.py index 7aa388f..f9a7931 100644 --- a/realms/modules/auth/ldap/models.py +++ b/realms/modules/auth/ldap/models.py @@ -5,7 +5,7 @@ from flask_login import login_user from flask_ldap_login import LDAPLoginForm from realms import ldap -from ..models import BaseUser +from realms.modules.auth.models import BaseUser users = {} diff --git a/realms/modules/auth/local/__init__.py b/realms/modules/auth/local/__init__.py index 989578d..6dbfd63 100644 --- a/realms/modules/auth/local/__init__.py +++ b/realms/modules/auth/local/__init__.py @@ -1,5 +1,5 @@ from __future__ import absolute_import -from ..models import Auth +from realms.modules.auth.models import Auth Auth.register('local') diff --git a/realms/modules/auth/local/commands.py b/realms/modules/auth/local/commands.py index 7f5d115..65b12fc 100644 --- a/realms/modules/auth/local/commands.py +++ b/realms/modules/auth/local/commands.py @@ -2,10 +2,10 @@ from __future__ import absolute_import import click +from realms import cli_group +from realms.lib.util import random_string +from realms.lib.util import green, red, yellow 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/models.py b/realms/modules/auth/local/models.py index 97d6669..228f196 100644 --- a/realms/modules/auth/local/models.py +++ b/realms/modules/auth/local/models.py @@ -8,7 +8,7 @@ from itsdangerous import URLSafeSerializer, BadSignature from realms import login_manager, db from realms.lib.model import Model -from ..models import BaseUser +from realms.modules.auth.models import BaseUser from .forms import LoginForm diff --git a/realms/modules/auth/views.py b/realms/modules/auth/views.py index 3b75948..f11eee5 100644 --- a/realms/modules/auth/views.py +++ b/realms/modules/auth/views.py @@ -3,7 +3,7 @@ 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 +from .models import Auth blueprint = Blueprint('auth', __name__, template_folder='templates') diff --git a/realms/modules/search/commands.py b/realms/modules/search/commands.py index cfc0936..a30758a 100644 --- a/realms/modules/search/commands.py +++ b/realms/modules/search/commands.py @@ -3,8 +3,8 @@ from __future__ import absolute_import import click from flask import current_app -from ... import search, cli_group -from ..wiki.models import Wiki +from realms import search, cli_group +from realms.modules.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 1e0e694..a18b87d 100644 --- a/realms/modules/search/hooks.py +++ b/realms/modules/search/hooks.py @@ -1,7 +1,7 @@ from __future__ import absolute_import -from ..wiki.models import WikiPage -from ... import search +from realms import search +from realms.modules.wiki.models import WikiPage @WikiPage.after('write') diff --git a/realms/modules/search/models.py b/realms/modules/search/models.py index 86819d8..2dac20b 100644 --- a/realms/modules/search/models.py +++ b/realms/modules/search/models.py @@ -5,7 +5,7 @@ import sys from flask import g, current_app -from ...lib.util import filename_to_cname +from realms.lib.util import filename_to_cname def simple(app): diff --git a/realms/modules/wiki/assets.py b/realms/modules/wiki/assets.py index 6a89a8b..9b87083 100644 --- a/realms/modules/wiki/assets.py +++ b/realms/modules/wiki/assets.py @@ -1,6 +1,6 @@ from __future__ import absolute_import -from ... import assets +from realms import assets assets.register('editor.js', 'vendor/store-js/store.js', diff --git a/realms/modules/wiki/models.py b/realms/modules/wiki/models.py index 3201df9..703d240 100644 --- a/realms/modules/wiki/models.py +++ b/realms/modules/wiki/models.py @@ -9,9 +9,9 @@ import yaml from dulwich.object_store import tree_lookup_path from dulwich.repo import Repo, NotGitRepository -from ...lib.util import cname_to_filename, filename_to_cname -from ... import cache -from ...lib.hook import HookMixin +from realms import cache +from realms.lib.hook import HookMixin +from realms.lib.util import cname_to_filename, filename_to_cname class PageNotFound(Exception): diff --git a/realms/modules/wiki/tests.py b/realms/modules/wiki/tests.py index 62e4611..a3e2435 100644 --- a/realms/modules/wiki/tests.py +++ b/realms/modules/wiki/tests.py @@ -5,8 +5,8 @@ import json from nose.tools import * from flask import url_for -from ...lib.util import cname_to_filename, filename_to_cname -from ...lib.test import BaseTest +from realms.lib.util import cname_to_filename, filename_to_cname +from realms.lib.test import BaseTest class WikiBaseTest(BaseTest): diff --git a/setup.py b/setup.py index 3b8ab06..20f4a67 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,5 @@ -from setuptools import setup, find_packages import os +from setuptools import setup, find_packages if os.environ.get('USER', '') == 'vagrant': del os.link From 1152c851e14f31444e46a991c2dacdc73f6669b5 Mon Sep 17 00:00:00 2001 From: Stephane Martin Date: Sun, 21 Aug 2016 13:46:45 +0200 Subject: [PATCH 3/9] woosh -> whoosh --- realms/config/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/realms/config/__init__.py b/realms/config/__init__.py index 0ecbe8b..8bc8e17 100644 --- a/realms/config/__init__.py +++ b/realms/config/__init__.py @@ -75,7 +75,7 @@ class Config(object): CACHE_MEMCACHED_SERVERS = ['127.0.0.1:11211'] - # Valid options: simple, elasticsearch, woosh + # Valid options: simple, elasticsearch, whoosh SEARCH_TYPE = 'simple' ELASTICSEARCH_URL = 'http://127.0.0.1:9200' From 1fef1b754ce24a76a30fb98be669ade75c2a9d60 Mon Sep 17 00:00:00 2001 From: Stephane Martin Date: Sun, 28 Aug 2016 16:49:26 +0200 Subject: [PATCH 4/9] added six as an explicit dependency --- setup.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 20f4a67..236bbdd 100644 --- a/setup.py +++ b/setup.py @@ -43,7 +43,8 @@ setup(name='realms-wiki', 'itsdangerous==0.24', 'markdown2==2.3.1', 'python-ldap==2.4.22', - 'simplejson==3.6.3' + 'simplejson==3.6.3', + 'six=1.10.0' ], entry_points={ 'console_scripts': [ From bae317c5b67477131d1642c4e944d7006875d7c1 Mon Sep 17 00:00:00 2001 From: Stephane Martin Date: Sun, 28 Aug 2016 16:51:55 +0200 Subject: [PATCH 5/9] typo :-/ --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 236bbdd..b1b7b95 100644 --- a/setup.py +++ b/setup.py @@ -44,7 +44,7 @@ setup(name='realms-wiki', 'markdown2==2.3.1', 'python-ldap==2.4.22', 'simplejson==3.6.3', - 'six=1.10.0' + 'six==1.10.0' ], entry_points={ 'console_scripts': [ From 45a1b1a7afe1f1defc112c65b1d29c8ed932ba5a Mon Sep 17 00:00:00 2001 From: Stephane Martin Date: Sun, 4 Sep 2016 23:25:55 +0200 Subject: [PATCH 6/9] make imports absolute --- realms/lib/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/realms/lib/test.py b/realms/lib/test.py index 5d9b4e9..e416e24 100644 --- a/realms/lib/test.py +++ b/realms/lib/test.py @@ -6,8 +6,8 @@ import tempfile from flask_testing import TestCase -from realms.lib.util import random_string from realms import create_app +from realms.lib.util import random_string class BaseTest(TestCase): From 3d980e1459e786f96366cde4f351179915b8ce1d Mon Sep 17 00:00:00 2001 From: Stephane Martin Date: Sun, 4 Sep 2016 23:30:19 +0200 Subject: [PATCH 7/9] make imports absolute --- realms/modules/auth/oauth/models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/realms/modules/auth/oauth/models.py b/realms/modules/auth/oauth/models.py index a0fe781..40cb5b4 100644 --- a/realms/modules/auth/oauth/models.py +++ b/realms/modules/auth/oauth/models.py @@ -4,8 +4,8 @@ from flask import session from flask_login import login_user from flask_oauthlib.client import OAuth -from .... import config -from ..models import BaseUser +from realms import config +from realms.modules.auth.models import BaseUser config = config.conf From 0288038111cb9760e121fbaa5b3ec82c69cd5d8f Mon Sep 17 00:00:00 2001 From: Stephane Martin Date: Sun, 4 Sep 2016 23:31:53 +0200 Subject: [PATCH 8/9] make imports absolute --- realms/modules/auth/oauth/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/realms/modules/auth/oauth/__init__.py b/realms/modules/auth/oauth/__init__.py index 7a576b2..4cf7d35 100644 --- a/realms/modules/auth/oauth/__init__.py +++ b/realms/modules/auth/oauth/__init__.py @@ -1,5 +1,5 @@ from __future__ import absolute_import -from ..models import Auth +from realms.modules.auth.models import Auth Auth.register('oauth') From c9b8fbfcbab7b3b05f032f69977058ac42f6b7a0 Mon Sep 17 00:00:00 2001 From: Stephane Martin Date: Mon, 5 Sep 2016 09:37:59 +0200 Subject: [PATCH 9/9] merge last conflict --- realms/commands.py | 2 ++ realms/modules/auth/ldap/views.py | 8 ++------ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/realms/commands.py b/realms/commands.py index b6dc8ae..1440872 100644 --- a/realms/commands.py +++ b/realms/commands.py @@ -14,8 +14,10 @@ import pip from realms import config, create_app, db, __version__, cli, cache from realms.lib.util import random_string, in_virtualenv, green, yellow, red + config = config.conf + # called to discover commands in modules app = create_app() diff --git a/realms/modules/auth/ldap/views.py b/realms/modules/auth/ldap/views.py index 3cdf16e..d491aa8 100644 --- a/realms/modules/auth/ldap/views.py +++ b/realms/modules/auth/ldap/views.py @@ -1,15 +1,11 @@ -<<<<<<< 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 import current_app, request, redirect, Blueprint, flash, url_for, session from flask_ldap_login import LDAPLoginForm from .models import User + blueprint = Blueprint('auth.ldap', __name__)