libmozdata 0.2.2__tar.gz → 0.2.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {libmozdata-0.2.2/libmozdata.egg-info → libmozdata-0.2.3}/PKG-INFO +1 -1
- libmozdata-0.2.3/VERSION +1 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/bugzilla.py +9 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/fx_trains.py +27 -1
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/phabricator.py +0 -9
- {libmozdata-0.2.2 → libmozdata-0.2.3/libmozdata.egg-info}/PKG-INFO +1 -1
- libmozdata-0.2.2/VERSION +0 -1
- {libmozdata-0.2.2 → libmozdata-0.2.3}/MANIFEST.in +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/README.md +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/BZInfo.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/FXRevision.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/FileStats.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/HGFileInfo.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/__init__.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/buildhub.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/config.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/connection.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/handler.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/hgmozilla.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/lando.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/modules.json +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/modules.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/patchanalysis.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/redash.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/release_owners.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/socorro.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/utils.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/vcs_map.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/versions.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/wiki_parser.py +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata.egg-info/SOURCES.txt +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata.egg-info/dependency_links.txt +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata.egg-info/not-zip-safe +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata.egg-info/requires.txt +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata.egg-info/top_level.txt +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/requirements.txt +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/setup.cfg +0 -0
- {libmozdata-0.2.2 → libmozdata-0.2.3}/setup.py +0 -0
libmozdata-0.2.3/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.2.3
|
|
@@ -7,6 +7,7 @@ import re
|
|
|
7
7
|
|
|
8
8
|
import requests
|
|
9
9
|
import six
|
|
10
|
+
from requests import HTTPError
|
|
10
11
|
|
|
11
12
|
import libmozdata.versions
|
|
12
13
|
|
|
@@ -1057,6 +1058,14 @@ class BugzillaShorten(Connection):
|
|
|
1057
1058
|
if not self.url_handler.isactive():
|
|
1058
1059
|
return
|
|
1059
1060
|
|
|
1061
|
+
if not isinstance(res, dict):
|
|
1062
|
+
# This is a workaround to handle cases where Bugzilla returns 200
|
|
1063
|
+
# response with HTML content instead of 4xx error.
|
|
1064
|
+
# See https://github.com/mozilla/libmozdata/issues/227
|
|
1065
|
+
if self.RAISE_ERROR:
|
|
1066
|
+
raise HTTPError("The response is not a valid JSON")
|
|
1067
|
+
return
|
|
1068
|
+
|
|
1060
1069
|
self.url_handler.handle(res["url"])
|
|
1061
1070
|
|
|
1062
1071
|
|
|
@@ -14,10 +14,36 @@ class FirefoxTrains:
|
|
|
14
14
|
URL = "https://whattrainisitnow.com/api/"
|
|
15
15
|
TIMEOUT = 30
|
|
16
16
|
|
|
17
|
+
_instance = None
|
|
18
|
+
|
|
19
|
+
def __init__(self, cache: bool = True) -> None:
|
|
20
|
+
"""Constructor
|
|
21
|
+
|
|
22
|
+
Args:
|
|
23
|
+
cache: If True, the API responses will be cached.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
self._cache = {} if cache else None
|
|
27
|
+
|
|
28
|
+
@classmethod
|
|
29
|
+
def get_instance(cls):
|
|
30
|
+
"""Get the singleton instance of FirefoxTrains."""
|
|
31
|
+
if cls._instance is None:
|
|
32
|
+
cls._instance = cls()
|
|
33
|
+
return cls._instance
|
|
34
|
+
|
|
17
35
|
def __get(self, path):
|
|
36
|
+
if self._cache is not None and path in self._cache:
|
|
37
|
+
return self._cache[path]
|
|
38
|
+
|
|
18
39
|
resp = requests.get(self.URL + path, timeout=self.TIMEOUT)
|
|
19
40
|
resp.raise_for_status()
|
|
20
|
-
|
|
41
|
+
resp_json = resp.json()
|
|
42
|
+
|
|
43
|
+
if self._cache is not None:
|
|
44
|
+
self._cache[path] = resp_json
|
|
45
|
+
|
|
46
|
+
return resp_json
|
|
21
47
|
|
|
22
48
|
def get_release_schedule(self, channel):
|
|
23
49
|
"""Get the release schedule for a given channel.
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
|
|
6
6
|
import collections
|
|
7
7
|
import enum
|
|
8
|
-
import functools
|
|
9
8
|
import json
|
|
10
9
|
import logging
|
|
11
10
|
from urllib.parse import urlencode, urlparse
|
|
@@ -46,14 +45,6 @@ class ArtifactType(enum.Enum):
|
|
|
46
45
|
Uri = "uri"
|
|
47
46
|
|
|
48
47
|
|
|
49
|
-
@functools.lru_cache(maxsize=2048)
|
|
50
|
-
def revision_exists_on_central(revision):
|
|
51
|
-
url = HGMO_JSON_REV_URL_TEMPLATE.format(revision)
|
|
52
|
-
resp = requests.get(url)
|
|
53
|
-
resp.raise_for_status()
|
|
54
|
-
return resp.ok
|
|
55
|
-
|
|
56
|
-
|
|
57
48
|
def revision_available(repo, revision):
|
|
58
49
|
"""
|
|
59
50
|
Check if a revision is available on a Mercurial repo
|
libmozdata-0.2.2/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.2.2
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|