Пример #1
0
    def __init__(self, url, dest_dir=None):
        self._request = None
        # make connection
        self._request = requests.get(
            url,
            stream=True,
            headers=util.get_request_defheaders(),
            verify=version_info >= (2, 7, 9),
        )
        if self._request.status_code != 200:
            raise FDUnrecognizedStatusCode(self._request.status_code, url)

        disposition = self._request.headers.get("content-disposition")
        if disposition and "filename=" in disposition:
            self._fname = (
                disposition[disposition.index("filename=") + 9 :]
                .replace('"', "")
                .replace("'", "")
            )
        else:
            self._fname = [p for p in url.split("/") if p][-1]
        self._fname = str(self._fname)
        self._destination = self._fname
        if dest_dir:
            self.set_destination(join(dest_dir, self._fname))
Пример #2
0
    def __init__(self, url, dest_dir=None):
        self._request = None
        # make connection
        self._request = requests.get(
            url,
            stream=True,
            headers=util.get_request_defheaders(),
            verify=version_info >= (2, 7, 9))
        if self._request.status_code != 200:
            raise FDUnrecognizedStatusCode(self._request.status_code, url)

        disposition = self._request.headers.get("content-disposition")
        if disposition and "filename=" in disposition:
            self._fname = disposition[
                disposition.index("filename=") + 9:].replace('"', "").replace(
                    "'", "")
            self._fname = self._fname.encode("utf8")
        else:
            self._fname = url.split("/")[-1]

        self._progressbar = None
        self._destination = self._fname
        if dest_dir:
            self.set_destination(
                join(dest_dir.decode(getfilesystemencoding()), self._fname))
Пример #3
0
def get_latest_version():
    try:
        pkgdata = requests.get("https://pypi.python.org/pypi/platformio/json",
                               headers=util.get_request_defheaders()).json()
        return pkgdata['info']['version']
    except:
        raise exception.GetLatestVersionError()
Пример #4
0
    def __init__(self, url, dest_dir=None):
        self._request = None
        # make connection
        self._request = requests.get(
            url,
            stream=True,
            headers=util.get_request_defheaders(),
            verify=version_info >= (2, 7, 9))
        if self._request.status_code != 200:
            raise FDUnrecognizedStatusCode(self._request.status_code, url)

        disposition = self._request.headers.get("content-disposition")
        if disposition and "filename=" in disposition:
            self._fname = disposition[
                disposition.index("filename=") + 9:].replace('"', "").replace(
                    "'", "")
            self._fname = self._fname.encode("utf8")
        else:
            self._fname = [p for p in url.split("/") if p][-1]

        self._progressbar = None
        self._destination = self._fname
        if dest_dir:
            self.set_destination(
                join(dest_dir.decode(getfilesystemencoding()), self._fname))
Пример #5
0
def get_latest_version():
    try:
        pkgdata = requests.get(
            "https://pypi.python.org/pypi/platformio/json", headers=util.get_request_defheaders()
        ).json()
        return pkgdata["info"]["version"]
    except:
        raise exception.GetLatestVersionError()
Пример #6
0
 def _send_data(self, data):
     result = False
     try:
         r = self._http_session.post(
             "https://ssl.google-analytics.com/collect", data=data, headers=util.get_request_defheaders(), timeout=2
         )
         r.raise_for_status()
         result = True
     except:  # pylint: disable=W0702
         pass
     return result
Пример #7
0
 def load_manifest(url):
     r = None
     try:
         r = requests.get(url, headers=util.get_request_defheaders())
         r.raise_for_status()
         return r.json()
     except:  # pylint: disable=bare-except
         pass
     finally:
         if r:
             r.close()
     return None
Пример #8
0
 def _send_data(self, data):
     result = False
     try:
         r = self._http_session.post(
             "https://ssl.google-analytics.com/collect",
             data=data,
             headers=util.get_request_defheaders(),
             timeout=2)
         r.raise_for_status()
         result = True
     except:  # pylint: disable=W0702
         pass
     return result
Пример #9
0
    def __init__(self, url, dest_dir=None):
        self._url = url
        self._fname = url.split("/")[-1]

        self._destination = self._fname
        if dest_dir:
            self.set_destination(join(dest_dir, self._fname))

        self._progressbar = None
        self._request = None

        # make connection
        self._request = requests.get(url, stream=True,
                                     headers=util.get_request_defheaders())
        if self._request.status_code != 200:
            raise FDUnrecognizedStatusCode(self._request.status_code, url)
Пример #10
0
    def __init__(self, url, dest_dir=None):
        self._url = url
        self._fname = url.split("/")[-1]

        self._destination = self._fname
        if dest_dir:
            self.set_destination(join(dest_dir, self._fname))

        self._progressbar = None
        self._request = None

        # make connection
        self._request = requests.get(url, stream=True,
                                     headers=util.get_request_defheaders())
        if self._request.status_code != 200:
            raise FDUnrecognizedStatusCode(self._request.status_code, url)
Пример #11
0
 def _send_data(self, data):
     if self._http_offline:
         return False
     try:
         r = self._http_session.post(
             "https://ssl.google-analytics.com/collect",
             data=data,
             headers=util.get_request_defheaders(),
             timeout=1)
         r.raise_for_status()
         return True
     except requests.exceptions.HTTPError as e:
         # skip Bad Request
         if 400 >= e.response.status_code < 500:
             return True
     except:  # pylint: disable=W0702
         pass
     self._http_offline = True
     return False
Пример #12
0
    def run(self):
        while not self._terminate:
            self._event.wait()
            if self._terminate or not self._stack:
                return
            self._event.clear()

            data = self._stack.pop()
            try:
                r = self.http_session().post(
                    "https://ssl.google-analytics.com/collect",
                    data=data,
                    headers=util.get_request_defheaders(),
                    timeout=3)
                r.raise_for_status()
                self._server_online = True
            except:  # pylint: disable=W0702
                self._server_online = False
                self._stack.append(data)
Пример #13
0
 def _send_data(self, data):
     if self._http_offline:
         return False
     try:
         r = self._http_session.post(
             "https://ssl.google-analytics.com/collect",
             data=data,
             headers=util.get_request_defheaders(),
             timeout=1)
         r.raise_for_status()
         return True
     except requests.exceptions.HTTPError as e:
         # skip Bad Request
         if 400 >= e.response.status_code < 500:
             return True
     except:  # pylint: disable=W0702
         pass
     self._http_offline = True
     return False
Пример #14
0
def get_develop_latest_version():
    version = None
    r = requests.get("https://raw.githubusercontent.com/platformio/platformio"
                     "/develop/platformio/__init__.py",
                     headers=util.get_request_defheaders())
    r.raise_for_status()
    for line in r.text.split("\n"):
        line = line.strip()
        if not line.startswith("VERSION"):
            continue
        match = re.match(r"VERSION\s*=\s*\(([^\)]+)\)", line)
        if not match:
            continue
        version = match.group(1)
        for c in (" ", "'", '"'):
            version = version.replace(c, "")
        version = ".".join(version.split(","))
    assert version
    return version
Пример #15
0
    def run(self):
        while not self._terminate:
            self._event.wait()
            if self._terminate or not self._stack:
                return
            self._event.clear()

            data = self._stack.pop()
            try:
                r = self.http_session().post(
                    "https://ssl.google-analytics.com/collect",
                    data=data,
                    headers=util.get_request_defheaders(),
                    timeout=3
                )
                r.raise_for_status()
                self._server_online = True
            except:  # pylint: disable=W0702
                self._server_online = False
                self._stack.append(data)
Пример #16
0
def get_develop_latest_version():
    version = None
    r = requests.get(
        "https://raw.githubusercontent.com/platformio/platformio"
        "/develop/platformio/__init__.py",
        headers=util.get_request_defheaders())
    r.raise_for_status()
    for line in r.text.split("\n"):
        line = line.strip()
        if not line.startswith("VERSION"):
            continue
        match = re.match(r"VERSION\s*=\s*\(([^\)]+)\)", line)
        if not match:
            continue
        version = match.group(1)
        for c in (" ", "'", '"'):
            version = version.replace(c, "")
        version = ".".join(version.split(","))
    assert version
    return version
Пример #17
0
    def next(self):
        manifest = {}
        repo = next(self.repositories)
        if isinstance(repo, dict):
            manifest = repo
        elif repo in PackageRepoIterator._MANIFEST_CACHE:
            manifest = PackageRepoIterator._MANIFEST_CACHE[repo]
        else:
            r = None
            try:
                r = requests.get(repo, headers=util.get_request_defheaders())
                r.raise_for_status()
                manifest = r.json()
            except:  # pylint: disable=bare-except
                pass
            finally:
                if r:
                    r.close()
            PackageRepoIterator._MANIFEST_CACHE[repo] = manifest

        if self.package in manifest:
            return manifest[self.package]
        return self.next()
Пример #18
0
    def next(self):
        manifest = {}
        repo = next(self.repositories)
        if isinstance(repo, dict):
            manifest = repo
        elif repo in PackageRepoIterator._MANIFEST_CACHE:
            manifest = PackageRepoIterator._MANIFEST_CACHE[repo]
        else:
            r = None
            try:
                r = requests.get(repo, headers=util.get_request_defheaders())
                r.raise_for_status()
                manifest = r.json()
            except:  # pylint: disable=bare-except
                pass
            finally:
                if r:
                    r.close()
            PackageRepoIterator._MANIFEST_CACHE[repo] = manifest

        if self.package in manifest:
            return manifest[self.package]
        return self.next()
Пример #19
0
def get_pypi_latest_version():
    r = requests.get("https://pypi.python.org/pypi/platformio/json",
                     headers=util.get_request_defheaders())
    r.raise_for_status()
    return r.json()['info']['version']
Пример #20
0
def get_pypi_latest_version():
    r = requests.get(
        "https://pypi.python.org/pypi/platformio/json",
        headers=util.get_request_defheaders())
    r.raise_for_status()
    return r.json()['info']['version']