예제 #1
0
    def load(self):
        # need to do this lazily due to config settings needing flask.current_app
        from model import _create_metadata_class, SubmissionMetadata
        from flask import current_app
        configured_domains = None

        CFG_B2SHARE_DOMAINS = current_app.config.get('CFG_B2SHARE_DOMAINS')
        if CFG_B2SHARE_DOMAINS:
            configured_domains = [d.strip().lower() for d in
                                  CFG_B2SHARE_DOMAINS.split(',')]

        domains = {SubmissionMetadata.domain.lower(): SubmissionMetadata}
        pck = metadata
        prefix = pck.__name__ + '.'
        for imp, modname, ispkg in pkgutil.iter_modules(pck.__path__, prefix):
            # not sure what fromlist does...
            mod = __import__(modname, fromlist="dummy")
            if hasattr(mod, 'domain'):
                domain_name = mod.domain.lower()
                if not configured_domains or domain_name in configured_domains:
                    domains[domain_name] = _create_metadata_class(mod)
        MetadataClasses.domains = domains
예제 #2
0
    def load(self):
        # need to do this lazily due to config settings needing flask.current_app
        from model import _create_metadata_class, SubmissionMetadata
        from flask import current_app

        configured_domains = None

        CFG_B2SHARE_DOMAINS = current_app.config.get('CFG_B2SHARE_DOMAINS')
        if CFG_B2SHARE_DOMAINS:
            configured_domains = [
                d.strip().lower() for d in CFG_B2SHARE_DOMAINS.split(',')
            ]

        domains = {SubmissionMetadata.domain.lower(): SubmissionMetadata}
        pck = metadata
        prefix = pck.__name__ + '.'
        for imp, modname, ispkg in pkgutil.iter_modules(pck.__path__, prefix):
            # not sure what fromlist does...
            mod = __import__(modname, fromlist="dummy")
            if hasattr(mod, 'domain'):
                domain_name = mod.domain.lower()
                if not configured_domains or domain_name in configured_domains:
                    domains[domain_name] = _create_metadata_class(mod)
        MetadataClasses.domains = domains
예제 #3
0
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
## General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with SimpleStore; if not, write to the Free Software Foundation, Inc.,
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.

from invenio.simplestore_model import metadata
from model import _create_metadata_class, SubmissionMetadata
import pkgutil

# might well be a better way to do this
metadata_classes = {SubmissionMetadata.domain.lower(): SubmissionMetadata}
try:
    from invenio.config import CFG_SIMPLESTORE_DOMAINS

    configured_domains = [d.strip().lower() for d in CFG_SIMPLESTORE_DOMAINS.split(",")]
except ImportError:
    configured_domains = None


pck = metadata
prefix = pck.__name__ + "."
for imp, modname, ispkg in pkgutil.iter_modules(pck.__path__, prefix):
    # not sure what fromlist does...
    mod = __import__(modname, fromlist="dummy")
    if hasattr(mod, "domain"):
        domain_name = mod.domain.lower()
        if not configured_domains or domain_name in configured_domains:
            metadata_classes[domain_name] = _create_metadata_class(mod)