123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- # -*- coding: utf-8 -*-
- # (The MIT License)
- #
- # Copyright (c) 2014 Kura
- #
- # Permission is hereby granted, free of charge, to any person obtaining a copy
- # of this software and associated documentation files (the 'Software'), to deal
- # in the Software without restriction, including without limitation the rights
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- # copies of the Software, and to permit persons to whom the Software is
- # furnished to do so, subject to the following conditions:
- #
- # The above copyright notice and this permission notice shall be included in
- # all copies or substantial portions of the Software.
- #
- # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- # SOFTWARE.
- import requests
- from .exceptions import HTTPError
- from .package import json2package
- def get(package_name, pypi_server="https://pypi.python.org/pypi/"):
- """
- Constructs a request to the PyPI server and returns a
- :class:`yarg.package.Package`.
- :param package_name: case sensitive name of the package on the PyPI server.
- :param pypi_server: (option) URL to the PyPI server.
- >>> import yarg
- >>> package = yarg.get('yarg')
- <Package yarg>
- """
- if not pypi_server.endswith("/"):
- pypi_server = pypi_server + "/"
- response = requests.get("{0}{1}/json".format(pypi_server,
- package_name))
- if response.status_code >= 300:
- raise HTTPError(status_code=response.status_code,
- reason=response.reason)
- if hasattr(response.content, 'decode'):
- return json2package(response.content.decode())
- else:
- return json2package(response.content)
|