##// END OF EJS Templates
model: move code from __init__.py to base.py...
Thomas De Schampheleire -
r6205:d75d9ce1 default
parent child Browse files
Show More
@@ -35,7 +35,7 b' from kallithea.lib.utils import repo2db_'
35 load_rcextensions, check_git_version, set_vcs_config, set_indexer_config
35 load_rcextensions, check_git_version, set_vcs_config, set_indexer_config
36 from kallithea.lib.utils2 import engine_from_config, str2bool
36 from kallithea.lib.utils2 import engine_from_config, str2bool
37 from kallithea.lib.db_manage import DbManage
37 from kallithea.lib.db_manage import DbManage
38 from kallithea.model import init_model
38 from kallithea.model.base import init_model
39 from kallithea.model.scm import ScmModel
39 from kallithea.model.scm import ScmModel
40
40
41 log = logging.getLogger(__name__)
41 log = logging.getLogger(__name__)
@@ -37,7 +37,7 b' from decorator import decorator'
37 from kallithea import CELERY_ON, CELERY_EAGER
37 from kallithea import CELERY_ON, CELERY_EAGER
38 from kallithea.lib.utils2 import safe_str
38 from kallithea.lib.utils2 import safe_str
39 from kallithea.lib.pidlock import DaemonLock, LockHeld
39 from kallithea.lib.pidlock import DaemonLock, LockHeld
40 from kallithea.model import init_model
40 from kallithea.model.base import init_model
41 from kallithea.model import meta
41 from kallithea.model import meta
42
42
43 from sqlalchemy import engine_from_config
43 from sqlalchemy import engine_from_config
@@ -38,7 +38,7 b' import alembic.command'
38
38
39 from kallithea.lib.paster_commands.common import ask_ok
39 from kallithea.lib.paster_commands.common import ask_ok
40 from kallithea.model.user import UserModel
40 from kallithea.model.user import UserModel
41 from kallithea.model import init_model
41 from kallithea.model.base import init_model
42 from kallithea.model.db import User, Permission, Ui, \
42 from kallithea.model.db import User, Permission, Ui, \
43 Setting, UserToPerm, RepoGroup, \
43 Setting, UserToPerm, RepoGroup, \
44 UserRepoGroupToPerm, CacheInvalidation, Repository
44 UserRepoGroupToPerm, CacheInvalidation, Repository
@@ -384,7 +384,7 b' def handle_git_receive(repo_path, revs, '
384 from paste.deploy import appconfig
384 from paste.deploy import appconfig
385 from sqlalchemy import engine_from_config
385 from sqlalchemy import engine_from_config
386 from kallithea.config.environment import load_environment
386 from kallithea.config.environment import load_environment
387 from kallithea.model import init_model
387 from kallithea.model.base import init_model
388 from kallithea.model.db import Ui
388 from kallithea.model.db import Ui
389 from kallithea.lib.utils import make_ui
389 from kallithea.lib.utils import make_ui
390 extras = _extract_extras(env)
390 extras = _extract_extras(env)
@@ -100,7 +100,7 b' class BasePasterCommand(Command):'
100 logging.config.fileConfig(self.path_to_ini_file)
100 logging.config.fileConfig(self.path_to_ini_file)
101
101
102 from pylons import config
102 from pylons import config
103 from kallithea.model import init_model
103 from kallithea.model.base import init_model
104 from kallithea.lib.utils2 import engine_from_config
104 from kallithea.lib.utils2 import engine_from_config
105 setup_cache_regions(config)
105 setup_cache_regions(config)
106 engine = engine_from_config(config, 'sqlalchemy.')
106 engine = engine_from_config(config, 'sqlalchemy.')
@@ -23,87 +23,4 b' Original author and date, and relevant c'
23 :author: marcink
23 :author: marcink
24 :copyright: (c) 2013 RhodeCode GmbH, and others.
24 :copyright: (c) 2013 RhodeCode GmbH, and others.
25 :license: GPLv3, see LICENSE.md for more details.
25 :license: GPLv3, see LICENSE.md for more details.
26
27
28 :example:
29
30 .. code-block:: python
31
32 from paste.deploy import appconfig
33 from pylons import config
34 from sqlalchemy import engine_from_config
35 from kallithea.config.environment import load_environment
36
37 conf = appconfig('config:development.ini', relative_to = './../../')
38 load_environment(conf.global_conf, conf.local_conf)
39
40 engine = engine_from_config(config, 'sqlalchemy.')
41 init_model(engine)
42 # RUN YOUR CODE HERE
43
44 """
26 """
45
46
47 import logging
48 from kallithea.model import meta
49 from kallithea.lib.utils2 import obfuscate_url_pw
50
51 log = logging.getLogger(__name__)
52
53
54 def init_model(engine):
55 """
56 Initializes db session, bind the engine with the metadata,
57 Call this before using any of the tables or classes in the model,
58 preferably once in application start
59
60 :param engine: engine to bind to
61 """
62 engine_str = obfuscate_url_pw(str(engine.url))
63 log.info("initializing db for %s", engine_str)
64 meta.Base.metadata.bind = engine
65
66
67 class BaseModel(object):
68 """
69 Base Model for all Kallithea models, it adds sql alchemy session
70 into instance of model
71
72 :param sa: If passed it reuses this session instead of creating a new one
73 """
74
75 def __init__(self, sa=None):
76 if sa is not None:
77 self.sa = sa
78 else:
79 self.sa = meta.Session()
80
81 def _get_user(self, user):
82 """
83 Helper method to get user by ID, or username fallback
84
85 :param user: UserID, username, or User instance
86 """
87 from kallithea.model.db import User
88 return User.guess_instance(user,
89 callback=User.get_by_username)
90
91 def _get_repo(self, repository):
92 """
93 Helper method to get repository by ID, or repository name
94
95 :param repository: RepoID, repository name or Repository Instance
96 """
97 from kallithea.model.db import Repository
98 return Repository.guess_instance(repository,
99 callback=Repository.get_by_repo_name)
100
101 def _get_perm(self, permission):
102 """
103 Helper method to get permission by ID, or permission name
104
105 :param permission: PermissionID, permission_name or Permission instance
106 """
107 from kallithea.model.db import Permission
108 return Permission.guess_instance(permission,
109 callback=Permission.get_by_key)
@@ -30,7 +30,7 b' import logging'
30 from sqlalchemy import or_
30 from sqlalchemy import or_
31
31
32 from kallithea.lib.utils2 import generate_api_key
32 from kallithea.lib.utils2 import generate_api_key
33 from kallithea.model import BaseModel
33 from kallithea.model.base import BaseModel
34 from kallithea.model.db import UserApiKeys
34 from kallithea.model.db import UserApiKeys
35 from kallithea.model.meta import Session
35 from kallithea.model.meta import Session
36
36
@@ -12,8 +12,8 b''
12 # You should have received a copy of the GNU General Public License
12 # You should have received a copy of the GNU General Public License
13 # along with this program. If not, see <http://www.gnu.org/licenses/>.
13 # along with this program. If not, see <http://www.gnu.org/licenses/>.
14 """
14 """
15 kallithea.model
15 kallithea.model.base
16 ~~~~~~~~~~~~~~~
16 ~~~~~~~~~~~~~~~~~~~~
17
17
18 The application's model objects
18 The application's model objects
19
19
@@ -28,7 +28,7 b' Original author and date, and relevant c'
28 import logging
28 import logging
29 from sqlalchemy.orm import joinedload
29 from sqlalchemy.orm import joinedload
30
30
31 from kallithea.model import BaseModel
31 from kallithea.model.base import BaseModel
32 from kallithea.model.db import ChangesetStatus, PullRequest
32 from kallithea.model.db import ChangesetStatus, PullRequest
33 from kallithea.lib.exceptions import StatusChangeOnClosedPullRequestError
33 from kallithea.lib.exceptions import StatusChangeOnClosedPullRequestError
34
34
@@ -32,7 +32,7 b' from collections import defaultdict'
32
32
33 from kallithea.lib.utils2 import extract_mentioned_users, safe_unicode
33 from kallithea.lib.utils2 import extract_mentioned_users, safe_unicode
34 from kallithea.lib import helpers as h
34 from kallithea.lib import helpers as h
35 from kallithea.model import BaseModel
35 from kallithea.model.base import BaseModel
36 from kallithea.model.db import ChangesetComment, User, \
36 from kallithea.model.db import ChangesetComment, User, \
37 Notification, PullRequest
37 Notification, PullRequest
38 from kallithea.model.notification import NotificationModel
38 from kallithea.model.notification import NotificationModel
@@ -34,7 +34,7 b' import shutil'
34 from kallithea.lib.utils2 import safe_unicode, unique_id, safe_int, \
34 from kallithea.lib.utils2 import safe_unicode, unique_id, safe_int, \
35 time_to_datetime, AttributeDict
35 time_to_datetime, AttributeDict
36 from kallithea.lib.compat import json
36 from kallithea.lib.compat import json
37 from kallithea.model import BaseModel
37 from kallithea.model.base import BaseModel
38 from kallithea.model.db import Gist
38 from kallithea.model.db import Gist
39 from kallithea.model.repo import RepoModel
39 from kallithea.model.repo import RepoModel
40 from kallithea.model.scm import ScmModel
40 from kallithea.model.scm import ScmModel
@@ -36,7 +36,7 b' from sqlalchemy.orm import joinedload, s'
36 import kallithea
36 import kallithea
37 from kallithea.lib import helpers as h
37 from kallithea.lib import helpers as h
38 from kallithea.lib.utils2 import safe_unicode
38 from kallithea.lib.utils2 import safe_unicode
39 from kallithea.model import BaseModel
39 from kallithea.model.base import BaseModel
40 from kallithea.model.db import Notification, User, UserNotification
40 from kallithea.model.db import Notification, User, UserNotification
41 from kallithea.model.meta import Session
41 from kallithea.model.meta import Session
42
42
@@ -31,7 +31,7 b' import traceback'
31
31
32 from sqlalchemy.exc import DatabaseError
32 from sqlalchemy.exc import DatabaseError
33
33
34 from kallithea.model import BaseModel
34 from kallithea.model.base import BaseModel
35 from kallithea.model.db import User, Permission, UserToPerm, UserRepoToPerm, \
35 from kallithea.model.db import User, Permission, UserToPerm, UserRepoToPerm, \
36 UserRepoGroupToPerm, UserUserGroupToPerm
36 UserRepoGroupToPerm, UserUserGroupToPerm
37 from kallithea.lib.utils2 import str2bool
37 from kallithea.lib.utils2 import str2bool
@@ -35,7 +35,7 b' from sqlalchemy.orm import joinedload'
35 from kallithea.model.meta import Session
35 from kallithea.model.meta import Session
36 from kallithea.lib import helpers as h
36 from kallithea.lib import helpers as h
37 from kallithea.lib.exceptions import UserInvalidException
37 from kallithea.lib.exceptions import UserInvalidException
38 from kallithea.model import BaseModel
38 from kallithea.model.base import BaseModel
39 from kallithea.model.db import PullRequest, PullRequestReviewers, Notification, \
39 from kallithea.model.db import PullRequest, PullRequestReviewers, Notification, \
40 ChangesetStatus, User
40 ChangesetStatus, User
41 from kallithea.model.notification import NotificationModel
41 from kallithea.model.notification import NotificationModel
@@ -41,7 +41,7 b' from kallithea.lib.utils2 import LazyPro'
41 from kallithea.lib.caching_query import FromCache
41 from kallithea.lib.caching_query import FromCache
42 from kallithea.lib.hooks import log_delete_repository
42 from kallithea.lib.hooks import log_delete_repository
43
43
44 from kallithea.model import BaseModel
44 from kallithea.model.base import BaseModel
45 from kallithea.model.db import Repository, UserRepoToPerm, UserGroupRepoToPerm, \
45 from kallithea.model.db import Repository, UserRepoToPerm, UserGroupRepoToPerm, \
46 UserRepoGroupToPerm, UserGroupRepoGroupToPerm, User, Permission, \
46 UserRepoGroupToPerm, UserGroupRepoGroupToPerm, User, Permission, \
47 Statistics, UserGroup, Ui, RepoGroup, RepositoryField
47 Statistics, UserGroup, Ui, RepoGroup, RepositoryField
@@ -34,7 +34,7 b' import datetime'
34
34
35 from kallithea.lib.utils2 import LazyProperty
35 from kallithea.lib.utils2 import LazyProperty
36
36
37 from kallithea.model import BaseModel
37 from kallithea.model.base import BaseModel
38 from kallithea.model.db import RepoGroup, Ui, UserRepoGroupToPerm, \
38 from kallithea.model.db import RepoGroup, Ui, UserRepoGroupToPerm, \
39 User, Permission, UserGroupRepoGroupToPerm, UserGroup, Repository
39 User, Permission, UserGroupRepoGroupToPerm, UserGroup, Repository
40
40
@@ -24,7 +24,7 b' Original author and date, and relevant c'
24 """
24 """
25
25
26 import logging
26 import logging
27 from kallithea.model import BaseModel
27 from kallithea.model.base import BaseModel
28 from kallithea.model.db import UserRepoToPerm, UserGroupRepoToPerm, \
28 from kallithea.model.db import UserRepoToPerm, UserGroupRepoToPerm, \
29 Permission
29 Permission
30
30
@@ -53,7 +53,7 b' from kallithea.lib.auth import HasRepoPe'
53 HasUserGroupPermissionAny, HasPermissionAny, HasPermissionAny
53 HasUserGroupPermissionAny, HasPermissionAny, HasPermissionAny
54 from kallithea.lib.utils import get_filesystem_repos, make_ui, \
54 from kallithea.lib.utils import get_filesystem_repos, make_ui, \
55 action_logger
55 action_logger
56 from kallithea.model import BaseModel
56 from kallithea.model.base import BaseModel
57 from kallithea.model.db import Repository, Ui, CacheInvalidation, \
57 from kallithea.model.db import Repository, Ui, CacheInvalidation, \
58 UserFollowing, UserLog, User, RepoGroup, PullRequest
58 UserFollowing, UserLog, User, RepoGroup, PullRequest
59 from kallithea.lib.hooks import log_push_action
59 from kallithea.lib.hooks import log_push_action
@@ -39,7 +39,7 b' from sqlalchemy.exc import DatabaseError'
39
39
40 from kallithea.lib.utils2 import safe_str, generate_api_key, get_current_authuser
40 from kallithea.lib.utils2 import safe_str, generate_api_key, get_current_authuser
41 from kallithea.lib.caching_query import FromCache
41 from kallithea.lib.caching_query import FromCache
42 from kallithea.model import BaseModel
42 from kallithea.model.base import BaseModel
43 from kallithea.model.db import User, UserToPerm, Notification, \
43 from kallithea.model.db import User, UserToPerm, Notification, \
44 UserEmailMap, UserIpMap
44 UserEmailMap, UserIpMap
45 from kallithea.lib.exceptions import DefaultUserException, \
45 from kallithea.lib.exceptions import DefaultUserException, \
@@ -27,7 +27,7 b' Original author and date, and relevant c'
27 import logging
27 import logging
28 import traceback
28 import traceback
29
29
30 from kallithea.model import BaseModel
30 from kallithea.model.base import BaseModel
31 from kallithea.model.db import UserGroupMember, UserGroup, \
31 from kallithea.model.db import UserGroupMember, UserGroup, \
32 UserGroupRepoToPerm, Permission, UserGroupToPerm, User, UserUserGroupToPerm, \
32 UserGroupRepoToPerm, Permission, UserGroupToPerm, User, UserUserGroupToPerm, \
33 UserGroupUserGroupToPerm
33 UserGroupUserGroupToPerm
@@ -39,7 +39,7 b' from paste.deploy import appconfig'
39 from sqlalchemy import engine_from_config
39 from sqlalchemy import engine_from_config
40
40
41 from kallithea.lib.utils import setup_cache_regions
41 from kallithea.lib.utils import setup_cache_regions
42 from kallithea.model import init_model
42 from kallithea.model.base import init_model
43 from kallithea.model import meta
43 from kallithea.model import meta
44 from kallithea.model.db import User, Repository, Ui
44 from kallithea.model.db import User, Repository, Ui
45 from kallithea.lib.auth import get_crypt_password
45 from kallithea.lib.auth import get_crypt_password
General Comments 0
You need to be logged in to leave comments. Login now