Example #1
0
    def run(self, options):
        auth_backend = self.app.auth_backend
        request = self.app.wsgi_request(urlargs={}, app_handler=True)
        request.cache.auth_backend = auth_backend

        form_class = get_form_class(request, 'create-application')
        if not form_class:
            raise CommandError('Cannot create application')

        model = self.app.models['applications']
        ID = request.config['MASTER_APPLICATION_ID']
        if not ID:
            raise CommandError(
                'MASTER_APPLICATION_ID not available in config.\n'
                'Create a UUID with the create_uuid command'
            )
        try:
            app_domain = model.get_instance(request, id=ID)
        except Http404:
            form = form_class(request, data=dict(
                id=ID,
                name=slugify(request.config['APP_NAME']),
            ), model='applications')
            if form.is_valid():
                app_domain = model.create_model(
                    request,
                    data=form.cleaned_data
                )
            else:
                raise CommandError(form.message())
            self.write('Successfully created admin application')
        data = model.tojson(request, app_domain)
        jwt = model.jwt(request, app_domain)
        self.write(json.dumps(data, indent=4))
        return jwt
Example #2
0
    def run(self, options):
        auth_backend = self.app.auth_backend
        request = self.app.wsgi_request(urlargs={}, app_handler=True)
        request.cache.auth_backend = auth_backend

        form_class = get_form_class(request, 'create-application')
        if not form_class:
            raise CommandError('Cannot create application')

        model = self.app.models['applications']
        ID = request.config['MASTER_APPLICATION_ID']
        if not ID:
            raise CommandError(
                'MASTER_APPLICATION_ID not available in config.\n'
                'Create a UUID with the create_uuid command')
        try:
            app_domain = model.get_instance(request, id=ID)
        except Http404:
            form = form_class(request,
                              data=dict(
                                  id=ID,
                                  name=slugify(request.config['APP_NAME']),
                              ),
                              model='applications')
            if form.is_valid():
                app_domain = model.create_model(request,
                                                data=form.cleaned_data)
            else:
                raise CommandError(form.message())
            self.write('Successfully created admin application')
        data = model.tojson(request, app_domain)
        jwt = model.jwt(request, app_domain)
        self.write(json.dumps(data, indent=4))
        return jwt
Example #3
0
    def get_html(self, request):
        action = request.urlargs.get('action')
        cfg = self.action_config.get(action)
        if cfg is None:  # pragma    nocover
            raise Http404

        context = {}
        model = request.app.models.get(cfg.get('model') or self.model)
        if model:
            target = model.get_target(request, **cfg.get('target', {}))
            context['target'] = target

        if 'form' in cfg:
            form = get_form_layout(request, cfg['form'])
            if not form:
                raise Http404
            html = form(request).as_form(action=context.get('target'))
            context['html_main'] = html.render(request)
        elif 'html' in cfg:
            context['html_main'] = cfg['html']

        doc = request.html_document
        doc.jscontext['navigation'] = self.sitemap(request)

        attr = 'action_%s' % slugify(action, '_')
        if hasattr(self, attr):
            return getattr(self, attr)(request, context)
        else:
            return context.get('html_main', '')
Example #4
0
 def create_model(self, request, data):
     '''Create a new document
     '''
     model = self.model(request.app)
     name = data.get('name') or data['title']
     data['name'] = slugify(name, max_length=SLUG_LENGTH)
     return model.write(request, request.cache.user, data, new=True)
Example #5
0
def check_username(request, username):
    correct = slugify(username)
    if correct != username:
        raise ValidationError('Username may only contain lowercase '
                              'alphanumeric characters or single hyphens, '
                              'and cannot begin or end with a hyphen')
    return username
Example #6
0
 def __init__(self, route, *routes, **params):
     route = self.valid_route(route, params.pop('dir', None))
     name = slugify(params.pop('name', None) or route or self.dir)
     super(HtmlContent, self).__init__(route, *routes, name=name, **params)
     # Add drafts index
     if self.drafts:
         self.add_child(
             Drafts(self.drafts,
                    name=self.childname('drafts'),
                    index_template=self.drafts_template))
     self.meta = copy(self.meta) if self.meta else {}
     # Add children routes
     meta = copy(self.meta)
     if self.meta_children:
         meta.update(self.meta_children)
     file = self.HtmlFileRouter(self.child_url,
                                dir=self.dir,
                                name=self.childname('view'),
                                content=self.content,
                                html_body_template=self.html_body_template,
                                meta=meta,
                                uirouter=self.uirouter,
                                ngmodules=self.ngmodules)
     self.add_child(file)
     #
     for url_path, file_path, ext in self.all_files(
             include_subdirectories=False):
         if url_path == 'index':
             self.src = file_path
     if self.src and self.index_template:
         raise ImproperlyConfigured(
             'Both index and index template specified')
Example #7
0
 def __init__(self, route, *routes, **params):
     route = self.valid_route(route, params.pop('dir', None))
     name = slugify(params.pop('name', None) or route or self.dir)
     super(HtmlContent, self).__init__(route, *routes, name=name, **params)
     # Add drafts index
     if self.drafts:
         self.add_child(Drafts(self.drafts,
                               name=self.childname('drafts'),
                               index_template=self.drafts_template))
     self.meta = copy(self.meta) if self.meta else {}
     # Add children routes
     meta = copy(self.meta)
     if self.meta_children:
         meta.update(self.meta_children)
     file = self.HtmlFileRouter(self.child_url, dir=self.dir,
                                name=self.childname('view'),
                                content=self.content,
                                html_body_template=self.html_body_template,
                                meta=meta,
                                uirouter=self.uirouter,
                                uimodules=self.uimodules)
     self.add_child(file)
     #
     for url_path, file_path, ext in self.all_files(
             include_subdirectories=False):
         if url_path == 'index':
             self.src = file_path
     if self.src and self.index_template:
         raise ImproperlyConfigured(
             'Both index and index template specified')
Example #8
0
    def get_html(self, request):
        action = request.urlargs.get('action')
        cfg = self.action_config.get(action)
        if cfg is None:     # pragma    nocover
            raise Http404

        context = {}
        model = request.app.models.get(cfg.get('model') or self.model)
        if model:
            target = model.get_target(request, **cfg.get('target', {}))
            context['target'] = target

        if 'form' in cfg:
            form = get_form_layout(request, cfg['form'])
            if not form:
                raise Http404
            html = form(request).as_form(action=context.get('target'))
            context['html_main'] = html.render(request)
        elif 'html' in cfg:
            context['html_main'] = cfg['html']

        doc = request.html_document
        doc.jscontext['navigation'] = self.sitemap(request)

        attr = 'action_%s' % slugify(action, '_')
        if hasattr(self, attr):
            return getattr(self, attr)(request, context)
        else:
            return context.get('html_main', '')
Example #9
0
 def __new__(cls, name, bases, attrs):
     attrs["can_register"] = not attrs.pop("abstract", False)
     job_name = slugify(attrs.get("name", name), ".")
     log_prefix = attrs.get("log_prefix") or "pulsar.queue"
     attrs["name"] = job_name
     logname = "%s.%s" % (log_prefix, job_name)
     attrs["logger"] = logging.getLogger(logname)
     return super(JobMetaClass, cls).__new__(cls, name, bases, attrs)
Example #10
0
 def __new__(cls, name, bases, attrs):
     attrs['can_register'] = not attrs.pop('abstract', False)
     job_name = slugify(attrs.get("name", name), '.')
     log_prefix = attrs.get("log_prefix") or "pulsar.queue"
     attrs["name"] = job_name
     logname = '%s.%s' % (log_prefix, job_name)
     attrs['logger'] = logging.getLogger(logname)
     return super(JobMetaClass, cls).__new__(cls, name, bases, attrs)
Example #11
0
 def run(self, options, **params):
     api_client = self.app.api()
     for api in self.app.apis:
         res = api_client.get(api.spec_path)
         filename = '%s.json' % slugify(api.spec_path)
         with open(filename, 'w') as fp:
             json.dump(res.json(), fp, indent=4)
         self.logger.info('Saved %s', filename)
Example #12
0
 def __init__(self, name=None, run_every=None, **attrs):
     assert name, 'task requires a valid name'
     self.class_name = slugify(name, '_')
     self.attrs = attrs
     base = Job
     if run_every:
         self.attrs['run_every'] = run_every
         base = PeriodicJob
     self.bases = (base,)
Example #13
0
def check_username(request, username):
    """Default function for checking username validity
    """
    correct = slugify(username)
    if correct != username:
        raise ValidationError('Username may only contain lowercase '
                              'alphanumeric characters or single hyphens, '
                              'cannot begin or end with a hyphen')
    elif len(correct) < 2:
        raise ValidationError('Too short')
    return username
Example #14
0
def check_username(request, username):
    """Default function for checking username validity
    """
    correct = slugify(username)
    if correct != username:
        raise ValidationError('Username may only contain lowercase '
                              'alphanumeric characters or single hyphens, '
                              'cannot begin or end with a hyphen')
    elif len(correct) < 2:
        raise ValidationError('Too short')
    return username
Example #15
0
 def cms(self, app):
     '''Obtain the cms handler for this Router
     '''
     key = ':'.join(b[1] for b in self.full_route.breadcrumbs[:-1])
     if key:
         return CMS(app, slugify(key))
     else:
         cms = app.cms
         if not isinstance(cms, CMS):
             app.cms = cms = CMS(app)
         return cms
Example #16
0
 def cms(self, app):
     '''Obtain the cms handler for this Router
     '''
     key = ':'.join(b[1] for b in self.full_route.breadcrumbs[:-1])
     if key:
         return CMS(app, slugify(key))
     else:
         cms = app.cms
         if not isinstance(cms, CMS):
             app.cms = cms = CMS(app)
         return cms
Example #17
0
 def __init__(self, app, content, metadata, path, src=None, **params):
     self._app = app
     self._content = content
     self._path = path
     self._src = src
     self._meta = AttributeDictionary(params)
     self._update_meta(metadata)
     if not self._meta.modified:
         if src:
             self._meta.modified = modified_datetime(src)
         else:
             self._meta.modified = datetime.now()
     self._meta.name = slugify(self._path, separator='_')
Example #18
0
 def __init__(self, app, content, metadata, path, src=None, **params):
     self._app = app
     self._content = content
     self._path = path
     self._src = src
     self._meta = AttributeDictionary(params)
     self._update_meta(metadata)
     if not self._meta.modified:
         if src:
             self._meta.modified = modified_datetime(src)
         else:
             self._meta.modified = datetime.now()
     self._meta.name = slugify(self._path, separator='_')
Example #19
0
 def __init__(self, app, content, metadata, src, path=None, context=None,
              **params):
     self._app = app
     self._content = content
     self._context_for = context
     self._additional_context = {}
     self._src = src
     self._path = path or src
     self._meta = AttributeDictionary(params)
     if src:
         self._meta.modified = modified_datetime(src)
     else:
         self._meta.modified = datetime.now()
     # Get the site meta data dictionary.
     # Used to render Content metadata
     self._update_meta(metadata)
     meta = self._meta
     if self.is_html:
         dir, slug = os.path.split(self._path)
         if not slug:
             slug = self._path
             dir = None
         if not meta.slug:
             meta.slug = slugify(slug, separator='_')
         if dir:
             meta.slug = '%s/%s' % (dir, meta.slug)
     else:
         if self.suffix:  # Any other file
             suffix = '.%s' % self.suffix
             if not self._path.endswith(suffix):
                 self._path = self._path + suffix
         if not meta.slug:
             meta.slug = self._path
     meta.name = slugify(meta.slug, separator='_')
     for name in self.mandatory_properties:
         if not meta.get(name):
             raise BuildError("Property '%s' not available in %s"
                              % (name, self))
Example #20
0
 def __call__(self, callable):
     if not self.class_name:
         self.class_name = callable.__name__
     self.class_name = slugify(self.class_name, "_")
     self.attrs["__call__"] = callable
     self.attrs["__doc__"] = callable.__doc__
     cls = JobMetaClass(self.class_name, self.bases, self.attrs)
     module = inspect.getmodule(callable)
     job_list = getattr(module, JOB_LIST, None)
     if not job_list:
         job_list = []
         setattr(module, JOB_LIST, job_list)
     job_list.append(cls)
     return cls
Example #21
0
 def __call__(self, callable):
     if not self.class_name:
         self.class_name = callable.__name__
     self.class_name = slugify(self.class_name, '_')
     self.attrs['__call__'] = callable
     self.attrs['__doc__'] = callable.__doc__
     cls = JobMetaClass(self.class_name, self.bases, self.attrs)
     module = inspect.getmodule(callable)
     job_list = getattr(module, JOB_LIST, None)
     if not job_list:
         job_list = []
         setattr(module, JOB_LIST, job_list)
     job_list.append(cls)
     return cls
Example #22
0
    def cache_key(self, arg):
        key = self.key or ''
        if hasattr(arg, 'environ'):
            if not key:
                key = arg.path
            if self.user:
                key = '%s-%s' % (key, arg.cache.user)

        app = arg.app

        base = self.callable.__name__
        if self.instance:
            base = '%s-%s' % (type(self.instance).__name__, base)

        base = '%s-%s' % (app.config['APP_NAME'], base)
        return slugify('%s-%s' % (base, key) if key else base)
Example #23
0
 def addClass(self, cn):
     '''Add the specific class names to the class set and return ``self``.
     '''
     if cn:
         if isinstance(cn, (tuple, list, set, frozenset)):
             add = self.addClass
             for c in cn:
                 add(c)
         else:
             classes = self._classes
             if classes is None:
                 self._extra['classes'] = classes = set()
             add = classes.add
             for cn in cn.split():
                 add(slugify(cn))
     return self
Example #24
0
 def addClass(self, cn):
     '''Add the specific class names to the class set and return ``self``.
     '''
     if cn:
         if isinstance(cn, (tuple, list, set, frozenset)):
             add = self.addClass
             for c in cn:
                 add(c)
         else:
             classes = self._classes
             if classes is None:
                 self._extra['classes'] = classes = set()
             add = classes.add
             for cn in cn.split():
                 add(slugify(cn))
     return self
Example #25
0
    def cache_key(self, arg):
        key = self.key or ''
        if hasattr(arg, 'environ'):
            if not key:
                key = arg.path
            if self.user:
                key = '%s-%s' % (key, arg.cache.user)

        app = arg.app

        base = self.callable.__name__
        if self.instance:
            base = '%s-%s' % (type(self.instance).__name__, base)

        base = '%s-%s' % (app.config['APP_NAME'], base)
        return slugify('%s-%s' % (base, key) if key else base)
Example #26
0
def run_benchmark(monitor):
    '''Run the benchmarks
    '''
    url = urlparse(monitor.cfg.test_url)
    name = slugify(url.path) or 'home'
    name = '%s_%d.csv' % (name, monitor.cfg.workers)
    monitor.logger.info('WRITING RESULTS ON "%s"', name)
    total = REQUESTS//monitor.cfg.workers

    with open(name, 'w') as csvfile:
        writer = csv.DictWriter(csvfile, fieldnames=FIELDNAMES)
        writer.writeheader()
        for pool_size in POOL_SIZES:
            size = pool_size//monitor.cfg.workers
            if size*monitor.cfg.workers != pool_size:
                monitor.logger.error('Adjust workes so that pool sizes '
                                     'can be evenly shared across them')
                monitor._loop.stop()

            # WORMUP
            requests = [monitor.send(worker, 'run', wormup, size, total) for
                        worker in monitor.managed_actors]
            yield from wait(requests)

            # BENCHMARK
            requests = [monitor.send(worker, 'run', bench) for
                        worker in monitor.managed_actors]
            results, pending = yield from wait(requests)
            assert not pending, 'Pending requets!'
            results = [r.result() for r in results]

            summary = {'concurrency': pool_size}
            for name in results[0]:
                summary[name] = reduce(add(name), results, 0)
            writer.writerow(summary)

            persec = summary['requests']/summary['time']
            monitor.logger.info('%d concurrency - %d requests - '
                                '%d errors - %.3f seconds - '
                                '%.2f requests/sec',
                                pool_size,
                                summary['requests'],
                                summary['errors'],
                                summary['time'],
                                persec)
Example #27
0
def process_meta(meta, cfg):
    as_list = MultiValue()
    for key, values in mapping_iterator(meta):
        key = slugify(key, separator='_')
        if not isinstance(values, (list, tuple)):
            values = (values, )
        if key not in METADATA_PROCESSORS:
            bits = key.split('_', 1)
            values = guess(as_list(values, cfg))
            if len(bits) > 1 and bits[0] == 'meta':
                k = '_'.join(bits[1:])
                yield k, values
            else:
                yield key, values
        #
        elif values:
            process = METADATA_PROCESSORS[key]
            yield key, process(values, cfg)
Example #28
0
def process_meta(meta, cfg):
    as_list = MultiValue()
    for key, values in mapping_iterator(meta):
        key = slugify(key, separator='_')
        if not isinstance(values, (list, tuple)):
            values = (values,)
        if key not in METADATA_PROCESSORS:
            bits = key.split('_', 1)
            values = guess(as_list(values, cfg))
            if len(bits) > 1 and bits[0] == 'meta':
                k = '_'.join(bits[1:])
                yield k, values
            else:
                yield key, values
        #
        elif values:
            process = METADATA_PROCESSORS[key]
            yield key, process(values, cfg)
Example #29
0
 def __init__(self, *flags, help=None, nargs=None, **kwargs):
     name = None
     oflags = []
     for flag in flags:
         if not flag.startswith('-'):
             name = flag
             if not nargs:
                 nargs = '?'
                 oflags = None
         else:
             if oflags is None:
                 raise ImproperlyConfigured(
                     'cannot mix positional and keyed-valued arguments'
                 )
             if flag.startswith('--') or not name:
                 name = slugify(flag, '_')
             oflags.append(flag)
     if not name:
         raise ImproperlyConfigured('options with no name')
     if help:
         kwargs['desc'] = help
     self.setting = Setting(name, oflags, nargs=nargs, **kwargs)
Example #30
0
 def __init__(self, rule, *routes, **parameters):
     Router._creation_count += 1
     self._creation_count = Router._creation_count
     if not isinstance(rule, Route):
         rule = Route(rule)
     self._route = rule
     self._name = parameters.pop('name', rule.name)
     self.routes = []
     # add routes specified via the initialiser first
     for router in routes:
         self.add_child(router)
     # copy parameters
     self.parameters = AttributeDictionary(self.parameters)
     for name, rule_method in self.rule_methods.items():
         rule, method, params, _, _ = rule_method
         rparameters = params.copy()
         handler = getattr(self, name)
         router = self.add_child(self.make_router(rule, **rparameters))
         setattr(router, method, handler)
     for name, value in parameters.items():
         if name in self.parameters:
             self.parameters[name] = value
         else:
             setattr(self, slugify(name, separator='_'), value)
Example #31
0
 def __init__(self, rule, *routes, **parameters):
     Router._creation_count += 1
     self._creation_count = Router._creation_count
     if not isinstance(rule, Route):
         rule = Route(rule)
     self._route = rule
     self._name = parameters.pop('name', rule.name)
     self.routes = []
     # add routes specified via the initialiser first
     for router in routes:
         self.add_child(router)
     # copy parameters
     self.parameters = AttributeDictionary(self.parameters)
     for name, rule_method in self.rule_methods.items():
         rule, method, params, _, _ = rule_method
         rparameters = params.copy()
         handler = getattr(self, name)
         router = self.add_child(self.make_router(rule, **rparameters))
         setattr(router, method, handler)
     for name, value in parameters.items():
         if name in self.parameters:
             self.parameters[name] = value
         else:
             setattr(self, slugify(name, separator='_'), value)
Example #32
0
    def test_manager(self):

        txt = "This is a test ---"
        r = slugify(txt)
        self.assertEqual(r, "this-is-a-test")

        txt = "This -- is a ## test ---"
        r = slugify(txt)
        self.assertEqual(r, "this-is-a-test")

        txt = 'C\'est déjà l\'été.'
        r = slugify(txt)
        self.assertEqual(r, "cest-deja-lete")

        txt = 'Nín hǎo. Wǒ shì zhōng guó rén'
        r = slugify(txt)
        self.assertEqual(r, "nin-hao-wo-shi-zhong-guo-ren")

        txt = 'Компьютер'
        r = slugify(txt)
        self.assertEqual(r, "kompiuter")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt)
        self.assertEqual(r, "jaja-lol-mememeoo-a")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt, max_length=9)
        self.assertEqual(r, "jaja-lol")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt, max_length=15)
        self.assertEqual(r, "jaja-lol-mememe")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt, max_length=50)
        self.assertEqual(r, "jaja-lol-mememeoo-a")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt, max_length=15, word_boundary=True)
        self.assertEqual(r, "jaja-lol-a")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt, max_length=19, word_boundary=True)
        self.assertEqual(r, "jaja-lol-mememeoo")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt, max_length=20, word_boundary=True)
        self.assertEqual(r, "jaja-lol-mememeoo-a")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt, max_length=20, word_boundary=True, separator=".")
        self.assertEqual(r, "jaja.lol.mememeoo.a")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt, max_length=20, word_boundary=True, separator="ZZZZZZ")
        self.assertEqual(r, "jajaZZZZZZlolZZZZZZmememeooZZZZZZa")
Example #33
0
    def name(self):
        '''A nice name for the route.

        Derived from :attr:`rule` replacing underscores and dashes.
        '''
        return slugify(self.rule, separator='_')
Example #34
0
    def test_manager(self):

        txt = "This is a test ---"
        r = slugify(txt)
        self.assertEqual(r, "this-is-a-test")

        txt = "This -- is a ## test ---"
        r = slugify(txt)
        self.assertEqual(r, "this-is-a-test")

        txt = 'C\'est déjà l\'été.'
        r = slugify(txt)
        self.assertEqual(r, "cest-deja-lete")

        txt = 'Nín hǎo. Wǒ shì zhōng guó rén'
        r = slugify(txt)
        self.assertEqual(r, "nin-hao-wo-shi-zhong-guo-ren")

        txt = 'Компьютер'
        r = slugify(txt)
        self.assertEqual(r, "kompiuter")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt)
        self.assertEqual(r, "jaja-lol-mememeoo-a")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt, max_length=9)
        self.assertEqual(r, "jaja-lol")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt, max_length=15)
        self.assertEqual(r, "jaja-lol-mememe")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt, max_length=50)
        self.assertEqual(r, "jaja-lol-mememeoo-a")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt, max_length=15, word_boundary=True)
        self.assertEqual(r, "jaja-lol-a")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt, max_length=19, word_boundary=True)
        self.assertEqual(r, "jaja-lol-mememeoo")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt, max_length=20, word_boundary=True)
        self.assertEqual(r, "jaja-lol-mememeoo-a")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt, max_length=20, word_boundary=True, separator=".")
        self.assertEqual(r, "jaja.lol.mememeoo.a")

        txt = 'jaja---lol-méméméoo--a'
        r = slugify(txt, max_length=20, word_boundary=True, separator="ZZZZZZ")
        self.assertEqual(r, "jajaZZZZZZlolZZZZZZmememeooZZZZZZa")
Example #35
0
 def _clean(self, value, field):
     value = super()._clean(value, field)
     if slugify(value) != value:
         raise ValidationError(self.validation_error)
     return value
Example #36
0
 def username(self, user_data):
     return slugify('%s.%s' %
                    (user_data['firstName'], user_data['lastName']))
Example #37
0
 def __init__(self, label, name=None, **attrs):
     self.attrs = attrs
     self.attrs['label'] = label
     self.attrs['name'] = slugify(name or label, separator='')
     if not self.attrs.get('type'):
         self.attrs['type'] = self.type
Example #38
0
 def name(self, name):
     self._name = name
     self.slug = slugify(name)
Example #39
0
 def _clean(self, value, field):
     value = super()._clean(value, field)
     if slugify(value, separator=self.separator) != value:
         raise ValidationError(self.validation_error)
     return value
Example #40
0
    def name(self):
        '''A nice name for the route.

        Derived from :attr:`rule` replacing underscores and dashes.
        '''
        return slugify(self.rule, separator='_')
Example #41
0
def slug_validator(separator, value):
    return slugify(value, separator=separator) == value
Example #42
0
 def username(self, user_data):
     return slugify('%s.%s' % (user_data['firstName'],
                               user_data['lastName']))
Example #43
0
 def __init__(self, name=None, cls=None):
     self.name = slugify(name, separator='_') if name else ''
     self.cls = cls or identity
Example #44
0
 def __init__(self, name, processor=None):
     self.name = slugify(name, separator='_')
     self._processor = processor
Example #45
0
 def __init__(self, label, name=None, **attrs):
     self.attrs = attrs
     self.attrs['label'] = label
     self.attrs['name'] = slugify(name or label, separator='')
     if not self.attrs.get('type'):
         self.attrs['type'] = self.type
Example #46
0
 def __init__(self, name=None, cls=None):
     self.name = slugify(name, separator='_') if name else ''
     self.cls = cls or identity
Example #47
0
 def __init__(self, label, name=None, tag=None, type=None, **attrs):
     self.attrs = attrs
     self.attrs['label'] = label
     self.attrs['name'] = slugify(name or label, separator='')
     self.attrs['tag'] = tag or self.tag
     self.attrs['type'] = type or self.type
Example #48
0
 def _set_params(self, parameters):
     for name, value in parameters.items():
         if name not in self.defaults:
             name = slugify(name, separator='_')
         setattr(self, name, value)
Example #49
0
 def __init__(self, label, name=None, tag=None, type=None, **attrs):
     self.attrs = attrs
     self.attrs['label'] = label
     self.attrs['name'] = slugify(name or label, separator='')
     self.attrs['tag'] = tag or self.tag
     self.attrs['type'] = type or self.type
Example #50
0
 def _set_params(self, parameters):
     for name, value in parameters.items():
         if name not in self.defaults:
             name = slugify(name, separator='_')
         setattr(self, name, value)
Example #51
0
 def __init__(self, name, processor=None):
     self.name = slugify(name, separator='_')
     self._processor = processor
Example #52
0
 def name(self, name):
     self._name = name
     self.slug = slugify(name)
Example #53
0
 def create_model(self, request, data):
     '''Create a new document
     '''
     slug = data.get('slug') or data['title']
     data['slug'] = slugify(slug, max_length=SLUG_LENGTH)
     self.model.write(request.cache.user, data, new=True)