equal
deleted
inserted
replaced
276 def build_url(self, *args, **kwargs): |
276 def build_url(self, *args, **kwargs): |
277 """return an absolute URL using params dictionary key/values as URL |
277 """return an absolute URL using params dictionary key/values as URL |
278 parameters. Values are automatically URL quoted, and the |
278 parameters. Values are automatically URL quoted, and the |
279 publishing method to use may be specified or will be guessed. |
279 publishing method to use may be specified or will be guessed. |
280 |
280 |
281 if ``__secure__`` argument is True, the request will try to build a |
|
282 https url. |
|
283 |
|
284 raises :exc:`ValueError` if None is found in arguments |
281 raises :exc:`ValueError` if None is found in arguments |
285 """ |
282 """ |
286 # use *args since we don't want first argument to be "anonymous" to |
283 # use *args since we don't want first argument to be "anonymous" to |
287 # avoid potential clash with kwargs |
284 # avoid potential clash with kwargs |
288 method = None |
285 method = None |
293 method = 'view' |
290 method = 'view' |
294 # XXX I (adim) think that if method is passed explicitly, we should |
291 # XXX I (adim) think that if method is passed explicitly, we should |
295 # not try to process it and directly call req.build_url() |
292 # not try to process it and directly call req.build_url() |
296 base_url = kwargs.pop('base_url', None) |
293 base_url = kwargs.pop('base_url', None) |
297 if base_url is None: |
294 if base_url is None: |
298 secure = kwargs.pop('__secure__', None) |
295 if kwargs.pop('__secure__', None) is not None: |
299 base_url = self.base_url(secure=secure) |
296 warn('[3.25] __secure__ argument is deprecated', |
|
297 DeprecationWarning, stacklevel=2) |
|
298 base_url = self.base_url() |
300 path = self.build_url_path(method, kwargs) |
299 path = self.build_url_path(method, kwargs) |
301 if not kwargs: |
300 if not kwargs: |
302 return u'%s%s' % (base_url, path) |
301 return u'%s%s' % (base_url, path) |
303 return u'%s%s?%s' % (base_url, path, self.build_url_params(**kwargs)) |
302 return u'%s%s?%s' % (base_url, path, self.build_url_params(**kwargs)) |
304 |
303 |
500 return todate(dt) |
499 return todate(dt) |
501 except ValueError: |
500 except ValueError: |
502 raise ValueError(self._('can\'t parse %(value)r (expected %(format)s)') |
501 raise ValueError(self._('can\'t parse %(value)r (expected %(format)s)') |
503 % {'value': value, 'format': format}) |
502 % {'value': value, 'format': format}) |
504 |
503 |
505 def _base_url(self, secure=None): |
504 def base_url(self, **kwargs): |
506 if secure: |
505 """Return the root url of the instance.""" |
507 return self.vreg.config.get('https-url') or self.vreg.config['base-url'] |
506 secure = kwargs.pop('secure', None) |
508 return self.vreg.config['base-url'] |
507 if secure is not None: |
509 |
508 warn('[3.25] secure argument is deprecated', DeprecationWarning, stacklevel=2) |
510 def base_url(self, secure=None): |
509 if kwargs: |
511 """return the root url of the instance |
510 raise TypeError('base_url got unexpected keyword arguments %s' % ', '.join(kwargs)) |
512 """ |
511 url = self.vreg.config['base-url'] |
513 url = self._base_url(secure=secure) |
|
514 return url if url is None else url.rstrip('/') + '/' |
512 return url if url is None else url.rstrip('/') + '/' |