Skip to content

Commit

Permalink
Fix some circular imports, ready for py3.
Browse files Browse the repository at this point in the history
  • Loading branch information
David Read committed Nov 15, 2019
1 parent cd70abf commit 7fc8ba2
Show file tree
Hide file tree
Showing 8 changed files with 42 additions and 38 deletions.
4 changes: 3 additions & 1 deletion ckan/model/__init__.py
Expand Up @@ -27,9 +27,11 @@
engine_is_pg,
)
from ckan.model.core import (
System,
State,
)
from ckan.model.system import (
System,
)
from ckan.model.package import (
Package,
PACKAGE_NAME_MIN_LENGTH,
Expand Down
20 changes: 0 additions & 20 deletions ckan/model/core.py
@@ -1,28 +1,8 @@
# encoding: utf-8

from ckan.model import domain_object


__all__ = ['System', 'State', 'StatefulObjectMixin']
log = __import__('logging').getLogger(__name__)


class System(domain_object.DomainObject):

name = 'system'

def __unicode__(self):
return u'<%s>' % self.__class__.__name__

def purge(self):
pass

@classmethod
def by_name(cls, name):
return System()


# VDM-specific domain objects
class State(object):
ACTIVE = u'active'
DELETED = u'deleted'
Expand Down
9 changes: 9 additions & 0 deletions ckan/model/package.py
Expand Up @@ -553,3 +553,12 @@ class RatingValueException(Exception):
order_by=package_table.c.name,
extension=[extension.PluginMapperExtension()],
)

meta.mapper(tag.PackageTag, tag.package_tag_table, properties={
'pkg':orm.relation(Package, backref='package_tag_all',
cascade='none',
)
},
order_by=tag.package_tag_table.c.id,
extension=[extension.PluginMapperExtension()],
)
18 changes: 18 additions & 0 deletions ckan/model/system.py
@@ -0,0 +1,18 @@
# encoding: utf-8

from ckan.model import domain_object


class System(domain_object.DomainObject):

name = u'system'

def __unicode__(self):
return u'<%s>' % self.__class__.__name__

def purge(self):
pass

@classmethod
def by_name(cls, name):
return System()
22 changes: 8 additions & 14 deletions ckan/model/tag.py
Expand Up @@ -9,10 +9,10 @@
types as _types,
domain_object,
vocabulary,
package as _package,
extension as _extension,
)
import ckan # this import is needed
import ckan.model
import ckan.lib.dictization
import ckan.lib.maintain as maintain

Expand Down Expand Up @@ -207,11 +207,11 @@ def packages(self):
:rtype: list of ckan.model.package.Package objects
'''
q = meta.Session.query(_package.Package)
q = meta.Session.query(ckan.model.package.Package)
q = q.join(PackageTag)
q = q.filter_by(tag_id=self.id)
q = q.filter_by(state='active')
q = q.order_by(_package.Package.name)
q = q.order_by(ckan.model.package.Package.name)
packages = q.all()
return packages

Expand Down Expand Up @@ -262,13 +262,13 @@ def by_name(self, package_name, tag_name, vocab_id_or_name=None,
if vocab is None:
# The user specified an invalid vocab.
return None
query = (meta.Session.query(PackageTag, Tag, _package.Package)
query = (meta.Session.query(PackageTag, Tag, ckan.model.Package)
.filter(Tag.vocabulary_id == vocab.id)
.filter(_package.Package.name==package_name)
.filter(ckan.model.Package.name==package_name)
.filter(Tag.name==tag_name))
else:
query = (meta.Session.query(PackageTag)
.filter(_package.Package.name==package_name)
.filter(ckan.model.Package.name==package_name)
.filter(Tag.name==tag_name))
query = query.autoflush(autoflush)
return query.one()[0]
Expand All @@ -286,11 +286,5 @@ def related_packages(self):
order_by=tag_table.c.name,
)

meta.mapper(PackageTag, package_tag_table, properties={
'pkg':relation(_package.Package, backref='package_tag_all',
cascade='none',
)
},
order_by=package_tag_table.c.id,
extension=[_extension.PluginMapperExtension()],
)
# NB meta.mapper(tag.PackageTag... is found in package.py, because if it was
# here it we'd get circular references
3 changes: 2 additions & 1 deletion ckan/model/vocabulary.py
Expand Up @@ -2,7 +2,7 @@

from sqlalchemy import types, Column, Table

from ckan.model import meta, types as _types, tag, domain_object
from ckan.model import meta, types as _types, domain_object

VOCABULARY_NAME_MIN_LENGTH = 2
VOCABULARY_NAME_MAX_LENGTH = 100
Expand Down Expand Up @@ -35,6 +35,7 @@ def get(cls, id_or_name):

@property
def tags(self):
from ckan.model import tag
query = meta.Session.query(tag.Tag)
return query.filter(tag.Tag.vocabulary_id == self.id)

Expand Down
2 changes: 1 addition & 1 deletion ckan/plugins/__init__.py
Expand Up @@ -3,4 +3,4 @@
from ckan.plugins.core import *
from ckan.plugins.interfaces import *

import toolkit
from ckan.plugins import toolkit
2 changes: 1 addition & 1 deletion ckan/plugins/core.py
Expand Up @@ -14,7 +14,7 @@
from ckan.common import asbool
from six import string_types

import interfaces
from ckan.plugins import interfaces

from ckan.common import config

Expand Down

0 comments on commit 7fc8ba2

Please sign in to comment.