def reload(self, document, force_codec=False): url = document.url link = Link(url, action='get') # Perform the action, and return a new document. transport = determine_transport(self.transports, link.url) return transport.transition(link, self.decoders, force_codec=force_codec)
def action(self, document, keys, params=None, action=None, encoding=None, transform=None): if isinstance(keys, string_types): keys = [keys] # Validate the keys and link parameters. link, link_ancestors = _lookup_link(document, keys) if (action is not None) or (encoding is not None) or (transform is not None): # Handle any explicit overrides. action = link.action if (action is None) else action encoding = link.encoding if (encoding is None) else encoding transform = link.transform if (transform is None) else transform link = Link(link.url, action=action, encoding=encoding, transform=transform, fields=link.fields) # Perform the action, and return a new document. transport = determine_transport(self.transports, link.url) return transport.transition(link, self.decoders, params=params, link_ancestors=link_ancestors)
def reload(self, document): url = _make_absolute(document.url) link = Link(url, action='get') # Perform the action, and return a new document. transport = determine_transport(self.transports, link.url) return transport.transition(link, decoders=self.decoders)
def get(self, url, force_codec=False): link = Link(url, action='get') # Perform the action, and return a new document. transport = determine_transport(self.transports, link.url) return transport.transition(link, self.decoders, force_codec=force_codec)
def action( self, document, keys, params=None, validate=True, overrides=None, action=None, encoding=None, transform=None, ): if (action is not None) or (encoding is not None) or (transform is not None): # Fallback for v1.x overrides. # Will be removed at some point, most likely in a 2.1 release. if overrides is None: overrides = {} if action is not None: overrides["action"] = action if encoding is not None: overrides["encoding"] = encoding if transform is not None: overrides["transform"] = transform if isinstance(keys, string_types): keys = [keys] if params is None: params = {} # Validate the keys and link parameters. link, link_ancestors = _lookup_link(document, keys) if validate: _validate_parameters(link, params) if overrides: # Handle any explicit overrides. url = overrides.get("url", link.url) action = overrides.get("action", link.action) encoding = overrides.get("encoding", link.encoding) transform = overrides.get("transform", link.transform) fields = overrides.get("fields", link.fields) link = Link( url, action=action, encoding=encoding, transform=transform, fields=fields, ) # Perform the action, and return a new document. transport = determine_transport(self.transports, link.url) return transport.transition(link, self.decoders, params=params, link_ancestors=link_ancestors)
def get(self, url, format=None, force_codec=False): link = Link(url, action='get') decoders = self.decoders if format: decoders = [decoder for decoder in self.decoders if decoder.format == format] if not decoders: raise ValueError("No decoder available with format='%s'" % format) # Perform the action, and return a new document. transport = determine_transport(self.transports, link.url) return transport.transition(link, decoders, force_codec=force_codec)
def action(self, document, keys, params=None, action=None, encoding=None, transform=None): if isinstance(keys, string_types): keys = [keys] # Validate the keys and link parameters. link, link_ancestors = _lookup_link(document, keys) if (action is not None) or (encoding is not None) or (transform is not None): # Handle any explicit overrides. action = link.action if (action is None) else action encoding = link.encoding if (encoding is None) else encoding transform = link.transform if (transform is None) else transform link = Link(link.url, action=action, encoding=encoding, transform=transform, fields=link.fields) # Perform the action, and return a new document. transport = determine_transport(self.transports, link.url) return transport.transition(link, self.decoders, params=params, link_ancestors=link_ancestors)
def get(self, url, format=None, force_codec=False): link = Link(url, action='get') decoders = self.decoders if format: force_codec = True decoders = [decoder for decoder in self.decoders if decoder.format == format] if not decoders: installed_codecs = get_installed_codecs() if format in installed_codecs: decoders = [installed_codecs[format]] else: raise ValueError("No decoder available with format='%s'" % format) # Perform the action, and return a new document. transport = determine_transport(self.transports, link.url) return transport.transition(link, decoders, force_codec=force_codec)
def get(self, url, format=None, force_codec=False): link = Link(url, action="get") decoders = self.decoders if format: force_codec = True decoders = [ decoder for decoder in self.decoders if decoder.format == format ] if not decoders: installed_codecs = get_installed_codecs() if format in installed_codecs: decoders = [installed_codecs[format]] else: raise ValueError("No decoder available with format='%s'" % format) # Perform the action, and return a new document. transport = determine_transport(self.transports, link.url) return transport.transition(link, decoders, force_codec=force_codec)
def action(self, document, keys, params=None, validate=True, overrides=None, action=None, encoding=None, transform=None): if (action is not None) or (encoding is not None) or (transform is not None): # Fallback for v1.x overrides. # Will be removed at some point, most likely in a 2.1 release. if overrides is None: overrides = {} if action is not None: overrides['action'] = action if encoding is not None: overrides['encoding'] = encoding if transform is not None: overrides['transform'] = transform if isinstance(keys, string_types): keys = [keys] if params is None: params = {} # Validate the keys and link parameters. link, link_ancestors = _lookup_link(document, keys) if validate: _validate_parameters(link, params) if overrides: # Handle any explicit overrides. url = overrides.get('url', link.url) action = overrides.get('action', link.action) encoding = overrides.get('encoding', link.encoding) transform = overrides.get('transform', link.transform) fields = overrides.get('fields', link.fields) link = Link(url, action=action, encoding=encoding, transform=transform, fields=fields) # Perform the action, and return a new document. transport = determine_transport(self.transports, link.url) return transport.transition(link, self.decoders, params=params, link_ancestors=link_ancestors)
def test_missing_hostname(): with pytest.raises(NetworkError): determine_transport(transports, 'http://')
def test_missing_scheme(): with pytest.raises(NetworkError): determine_transport(transports, 'example.org')
def test_unknown_scheme(): with pytest.raises(NetworkError): determine_transport(transports, 'ftp://example.org')