Exemplo n.º 1
0
    def urlpatterns(self):
        '''load and decorate urls from all modules
        then store it as cached property for less loading
        '''
        if not hasattr(self, '_urlspatterns'):
            urlpatterns = []
            # load all urls
            # support .urls file and urls_conf = 'elephantblog.urls' on default module
            # decorate all url patterns if is not explicitly excluded
            for mod in leonardo.modules:
                # TODO this not work
                if is_leonardo_module(mod):

                    conf = get_conf_from_module(mod)

                    if module_has_submodule(mod, 'urls'):
                        urls_mod = import_module('.urls', mod.__name__)
                        if hasattr(urls_mod, 'urlpatterns'):
                            # if not public decorate all

                            if conf['public']:
                                urlpatterns += urls_mod.urlpatterns
                            else:
                                _decorate_urlconf(urls_mod.urlpatterns,
                                                  require_auth)
                                urlpatterns += urls_mod.urlpatterns
            # avoid circural dependency
            # TODO use our loaded modules instead this property
            from django.conf import settings
            for urls_conf, conf in six.iteritems(getattr(settings, 'MODULE_URLS', {})):
                # is public ?
                try:
                    if conf['is_public']:
                        urlpatterns += \
                            patterns('',
                                     url(r'', include(urls_conf)),
                                     )
                    else:
                        _decorate_urlconf(
                            url(r'', include(urls_conf)),
                            require_auth)
                        urlpatterns += patterns('',
                                                url(r'', include(urls_conf)))
                except Exception as e:
                    raise Exception('raised %s during loading %s' %
                                    (str(e), urls_conf))

            self._urlpatterns = urlpatterns

        return self._urlpatterns
Exemplo n.º 2
0
    def urlpatterns(self):
        '''load and decorate urls from all modules
        then store it as cached property for less loading
        '''
        if not hasattr(self, '_urlspatterns'):
            urlpatterns = []
            # load all urls
            # support .urls file and urls_conf = 'elephantblog.urls' on default module
            # decorate all url patterns if is not explicitly excluded
            for mod in leonardo.modules:
                # TODO this not work
                if is_leonardo_module(mod):

                    conf = get_conf_from_module(mod)

                    if module_has_submodule(mod, 'urls'):
                        urls_mod = import_module('.urls', mod.__name__)
                        if hasattr(urls_mod, 'urlpatterns'):
                            # if not public decorate all

                            if conf['public']:
                                urlpatterns += urls_mod.urlpatterns
                            else:
                                _decorate_urlconf(urls_mod.urlpatterns,
                                                  require_auth)
                                urlpatterns += urls_mod.urlpatterns
            # avoid circural dependency
            # TODO use our loaded modules instead this property
            from django.conf import settings
            for urls_conf, conf in six.iteritems(
                    getattr(settings, 'MODULE_URLS', {})):
                # is public ?
                try:
                    if conf['is_public']:
                        urlpatterns += \
                            patterns('',
                                     url(r'', include(urls_conf)),
                                     )
                    else:
                        _decorate_urlconf(url(r'', include(urls_conf)),
                                          require_auth)
                        urlpatterns += patterns('',
                                                url(r'', include(urls_conf)))
                except Exception as e:
                    raise Exception('raised %s during loading %s' %
                                    (str(e), urls_conf))

            self._urlpatterns = urlpatterns

        return self._urlpatterns
Exemplo n.º 3
0
def check_versions(only_leonardo=False):
    '''returns dictionary of modules with versions to could be updated

    return:: {
            'name': {
                        'old': '1.0.1',
                        'new': '1.0.2',
                        'type': wheel
                    }
            }
    '''

    global LEONARDO_ENV
    global GLOBAL_ENV

    if only_leonardo:
        if LEONARDO_ENV:
            return LEONARDO_ENV
    else:
        if GLOBAL_ENV:
            return GLOBAL_ENV

    listing = ListCommand()
    options, args = listing.parse_args([])

    update = {}

    for dist, version, typ in listing.find_packages_latest_versions(options):
        if only_leonardo:
            pkg_names = [k for k in dist._get_metadata("top_level.txt")]
            for pkg_name in pkg_names:
                try:
                    mod = import_module(pkg_name)
                except:
                    pass
                else:
                    if is_leonardo_module(mod):
                        if version > dist.parsed_version:
                            update.update({
                                dist.project_name: {
                                    'old': dist.version,
                                    'new': version,
                                    'type': typ
                                }
                            })
        else:
            if version > dist.parsed_version:
                update.update({
                    dist.project_name: {
                        'old': dist.version,
                        'new': version,
                        'type': typ
                    }
                })

    if only_leonardo:
        LEONARDO_ENV = update
    else:
        GLOBAL_ENV = update

    return update