当前位置: 首页>>代码示例>>Python>>正文


Python uritemplate.expand方法代码示例

本文整理汇总了Python中uritemplate.expand方法的典型用法代码示例。如果您正苦于以下问题:Python uritemplate.expand方法的具体用法?Python uritemplate.expand怎么用?Python uritemplate.expand使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在uritemplate的用法示例。


在下文中一共展示了uritemplate.expand方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _refresh

# 需要导入模块: import uritemplate [as 别名]
# 或者: from uritemplate import expand [as 别名]
def _refresh(self, http_request):
    """Refreshes the access_token.

    Skip all the storage hoops and just refresh using the API.

    Args:
      http_request: callable, a callable that matches the method signature of
        httplib2.Http.request, used to make the refresh request.

    Raises:
      AccessTokenRefreshError: When the refresh fails.
    """
    uri = uritemplate.expand(META, {'scope': self.scope})
    response, content = http_request(uri)
    if response.status == 200:
      try:
        d = simplejson.loads(content)
      except StandardError, e:
        raise AccessTokenRefreshError(str(e))
      self.access_token = d['accessToken'] 
开发者ID:splunk,项目名称:splunk-ref-pas-code,代码行数:22,代码来源:gce.py

示例2: _prepare_request

# 需要导入模块: import uritemplate [as 别名]
# 或者: from uritemplate import expand [as 别名]
def _prepare_request(self, url: str, var_dict: Mapping[str, str],
                         data: Any = None,
                         charset: str = 'utf-8',
                         accept: str = "application/json") -> Tuple[str, Mapping[str, str], bytes]:
        """Prepare url, headers and json body for request"""
        url = uritemplate.expand(url, var_dict=var_dict)
        headers = {}
        headers['accept'] = accept
        headers['Authorization'] = "Bearer " + self.token

        body = b''
        if isinstance(data, str):
            body = data.encode(charset)
        elif isinstance(data, Mapping):
            body = json.dumps(data).encode(charset)
            headers['content-type'] = "application/json; charset=" + charset
        headers['content-length'] = str(len(body))
        return url, headers, body 
开发者ID:bioconda,项目名称:bioconda-utils,代码行数:20,代码来源:gitter.py

示例3: _make_request

# 需要导入模块: import uritemplate [as 别名]
# 或者: from uritemplate import expand [as 别名]
def _make_request(self, method: str, url: str, var_dict: Mapping[str, str],
                            data: Any = None,
                            accept: str = "application/json") -> Any:
        """Make HTTP request"""
        url = ''.join((self.CIRCLE_API, url, "{?circle-token}"))
        url = uritemplate.expand(url, var_dict=var_dict)
        headers = {}
        headers['accept'] = accept
        charset = 'utf-8'

        body = b''
        if isinstance(data, str):
            body = data.encode(charset)
        elif isinstance(data, Mapping):
            body = json.dumps(data).encode(charset)
            headers['content-type'] = "application/json; charset=" + charset
        headers['content-length'] = str(len(body))
        status, res_headers, response = await self._request(method, url, headers, body)

        if self.debug_once:
            self.debug_once = False
            logger.error("Called %s / %s", method, url)
            logger.error("Headers: %s", headers)
            logger.error("Body: %s", body)
            logger.error("Result Status: %s", status)
            logger.error("Result Headers: %s", res_headers)
            logger.error("Response: %s", response.decode(charset))

        if status == 404:
            logger.error("Got 404 for %s", url)
            return []
        response_text = response.decode(charset)
        try:
            return json.loads(response_text)
        except json.decoder.JSONDecodeError as exc:
            logger.error("Call to '%s' yielded text '%s' - not JSON",
                         url.replace(self.token, "******"),
                         response_text.replace(self.token, "******"))
        return response_text 
开发者ID:bioconda,项目名称:bioconda-utils,代码行数:41,代码来源:circleci.py

示例4: get_gcs_client

# 需要导入模块: import uritemplate [as 别名]
# 或者: from uritemplate import expand [as 别名]
def get_gcs_client(self) -> luigi.contrib.gcs.GCSClient:
        if (not os.path.isfile(self.discover_cache_local_path)):
            with open(self.discover_cache_local_path, "w") as f:
                try:
                    fcntl.flock(f, fcntl.LOCK_EX | fcntl.LOCK_NB)

                    params = {"api": "storage", "apiVersion": "v1"}
                    discovery_http = build_http()
                    for discovery_url in (self._DISCOVERY_URI, self._V2_DISCOVERY_URI):
                        requested_url = uritemplate.expand(discovery_url, params)
                        try:
                            content = _retrieve_discovery_doc(
                                requested_url, discovery_http, False
                            )
                        except HttpError as e:
                            if e.resp.status == http_client.NOT_FOUND:
                                continue
                            else:
                                raise e
                        break
                    f.write(content)
                    fcntl.flock(f, fcntl.LOCK_UN)
                except IOError:
                    # try to read
                    pass

        with open(self.discover_cache_local_path, "r") as f:
            fcntl.flock(f, fcntl.LOCK_SH)
            descriptor = f.read()
            fcntl.flock(f, fcntl.LOCK_UN)
            return luigi.contrib.gcs.GCSClient(oauth_credentials=self._load_oauth_credentials(), descriptor=descriptor) 
开发者ID:m3dev,项目名称:gokart,代码行数:33,代码来源:gcs_config.py

示例5: main

# 需要导入模块: import uritemplate [as 别名]
# 或者: from uritemplate import expand [as 别名]
def main():
    '''Main logic'''
    import argparse
    parser = argparse.ArgumentParser('Create GitHub relase')
    parser.add_argument('--token', '-t', required=True,
                        help='GitHub authentication token')
    parser.add_argument('--user', '-u', required=True,
                        help='GitHub user account')
    parser.add_argument('--repo', '-r', required=True,
                        help='GitHub repo name')
    parser.add_argument('--version', '-v', required=True,
                        help='Version to create')
    parser.add_argument('--file', '-f',
                        help='File to upload to release')
    parser.add_argument('--content-type', '-c',
                        help='Content type of file')

    args = parser.parse_args()

    api_url = 'https://api.github.com/repos/{user}/{repo}/releases'
    api_url = api_url.format(user=args.user, repo=args.repo)

    # Create release
    release_json = create_release(api_url, args.token, args.version)

    # Upload file
    if args.file:
        upload_url = expand(release_json['upload_url'],
                            {'name': os.path.basename(args.file)})
        upload_file(upload_url, args.token, args.file, args.content_type) 
开发者ID:willsALMANJ,项目名称:pentadactyl-signed,代码行数:32,代码来源:github_release.py

示例6: _build_resource_link

# 需要导入模块: import uritemplate [as 别名]
# 或者: from uritemplate import expand [as 别名]
def _build_resource_link(self, **kwargs):
        """Build a full URI for a specific resource.

        Args:
            **kwargs: The args to expand in the URI template.

        Returns:
            str: The Resource URI

        Raises:
            ValueError: Raised if the resource_path_template parameter was
                undefined when the repository was created.
        """
        expanded_url = uritemplate.expand(self._resource_path_template, kwargs)
        return urljoin(self.gcp_service._baseUrl, expanded_url)  # pylint: disable=protected-access 
开发者ID:forseti-security,项目名称:forseti-security,代码行数:17,代码来源:_base_repository.py

示例7: format_url

# 需要导入模块: import uritemplate [as 别名]
# 或者: from uritemplate import expand [as 别名]
def format_url(url: str, url_vars: Mapping[str, Any], *, base_url: str = DOMAIN) -> str:
    """Construct a URL for the GitHub API.

    The URL may be absolute or relative. In the latter case the appropriate
    domain will be added. This is to help when copying the relative URL directly
    from the GitHub developer documentation.

    The dict provided in url_vars is used in URI template formatting.
    """

    url = urllib.parse.urljoin(base_url, url)  # Works even if 'url' is fully-qualified.
    expanded_url: str = uritemplate.expand(url, var_dict=url_vars)
    return expanded_url 
开发者ID:brettcannon,项目名称:gidgethub,代码行数:15,代码来源:sansio.py

示例8: build

# 需要导入模块: import uritemplate [as 别名]
# 或者: from uritemplate import expand [as 别名]
def build(serviceName,
          version,
          http=None,
          discoveryServiceUrl=DISCOVERY_URI,
          developerKey=None,
          model=None,
          requestBuilder=HttpRequest,
          credentials=None,
          cache_discovery=True,
          cache=None):
  """Construct a Resource for interacting with an API.

  Construct a Resource object for interacting with an API. The serviceName and
  version are the names from the Discovery service.

  Args:
    serviceName: string, name of the service.
    version: string, the version of the service.
    http: httplib2.Http, An instance of httplib2.Http or something that acts
      like it that HTTP requests will be made through.
    discoveryServiceUrl: string, a URI Template that points to the location of
      the discovery service. It should have two parameters {api} and
      {apiVersion} that when filled in produce an absolute URI to the discovery
      document for that service.
    developerKey: string, key obtained from
      https://code.google.com/apis/console.
    model: googleapiclient.Model, converts to and from the wire format.
    requestBuilder: googleapiclient.http.HttpRequest, encapsulator for an HTTP
      request.
    credentials: oauth2client.Credentials, credentials to be used for
      authentication.
    cache_discovery: Boolean, whether or not to cache the discovery doc.
    cache: googleapiclient.discovery_cache.base.CacheBase, an optional
      cache object for the discovery documents.

  Returns:
    A Resource object with methods for interacting with the service.
  """
  params = {
      'api': serviceName,
      'apiVersion': version
      }

  if http is None:
    http = httplib2.Http()

  requested_url = uritemplate.expand(discoveryServiceUrl, params)

  try:
    content = _retrieve_discovery_doc(requested_url, http, cache_discovery,
                                      cache)
  except HttpError as e:
    if e.resp.status == http_client.NOT_FOUND:
      raise UnknownApiNameOrVersion("name: %s  version: %s" % (serviceName,
                                                               version))
    else:
      raise e

  return build_from_document(content, base=discoveryServiceUrl, http=http,
      developerKey=developerKey, model=model, requestBuilder=requestBuilder,
      credentials=credentials) 
开发者ID:luci,项目名称:luci-py,代码行数:63,代码来源:discovery.py

示例9: get_tile

# 需要导入模块: import uritemplate [as 别名]
# 或者: from uritemplate import expand [as 别名]
def get_tile(zoom, x, y, data_url_template=None):
    ''' Get a single Tile instance.
    
        zoom, x, y: Web mercator tile coordinates using OpenStreetMap convention.
        
            https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Zoom_levels
    
        data_url_template: RFC 6570 URI template for upstream protobuf tiles
            with z, x, y, and layer expressions. Default to DATA_URL_TEMPLATE.
            
            https://tools.ietf.org/html/rfc6570#section-2.2)
    '''
    if data_url_template is None:
        data_url_template = DATA_URL_TEMPLATE
    
    # Define lat/lon for filtered area
    tile_coord = ModestMaps.Core.Coordinate(y, x, zoom)
    data_coord = tile_coord.zoomTo(DATA_ZOOM).container()
    tile_sw = OSM.coordinateLocation(tile_coord.down())
    tile_ne = OSM.coordinateLocation(tile_coord.right())
    data_zxy = dict(z=int(data_coord.zoom), x=int(data_coord.column), y=int(data_coord.row))
    
    logger.debug((tile_coord, data_coord, tile_sw, tile_ne))
    
    # Filter geometries within the selected tile
    geom_data_url = uritemplate.expand(data_url_template, layer='geometry', **data_zxy)
    geometries = {geom.id: geom for geom in iter_objects(geom_data_url,
        data_classes['geometry']) if is_inside(tile_sw, tile_ne, geom)}
    
    logger.debug('{} geometries'.format(len(geometries)))
    
    # Get intersections attached to one of the filtered geometries
    inter_data_url = uritemplate.expand(data_url_template, layer='intersection', **data_zxy)

    intersection_ids = {id for id in itertools.chain(*[(geom.fromIntersectionId,
        geom.toIntersectionId) for geom in geometries.values()])}
    intersections = {inter.id: inter for inter in iter_objects(inter_data_url,
        data_classes['intersection']) if inter.id in intersection_ids}
    
    logger.debug('{} intersections'.format(len(intersections)))
    
    # Get references attached to one of the filtered geometries
    ref_data_url = uritemplate.expand(data_url_template, layer='reference', **data_zxy)
    references = {ref.id: ref for ref in iter_objects(ref_data_url,
        data_classes['reference']) if ref.geometryId in geometries}
    
    logger.debug('{} references'.format(len(references)))
    
    # Get metadata attached to one of the filtered geometries
    md_data_url = uritemplate.expand(data_url_template, layer='metadata', **data_zxy)
    metadata = {md.geometryId: md for md in iter_objects(md_data_url,
        data_classes['metadata']) if md.geometryId in geometries}
    
    logger.debug('{} metadata'.format(len(metadata)))
    
    return Tile(geometries, intersections, references, metadata) 
开发者ID:sharedstreets,项目名称:sharedstreets-python,代码行数:58,代码来源:tile.py


注:本文中的uritemplate.expand方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。