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.
Files changed (38) hide show
  1. {libmozdata-0.2.2/libmozdata.egg-info → libmozdata-0.2.3}/PKG-INFO +1 -1
  2. libmozdata-0.2.3/VERSION +1 -0
  3. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/bugzilla.py +9 -0
  4. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/fx_trains.py +27 -1
  5. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/phabricator.py +0 -9
  6. {libmozdata-0.2.2 → libmozdata-0.2.3/libmozdata.egg-info}/PKG-INFO +1 -1
  7. libmozdata-0.2.2/VERSION +0 -1
  8. {libmozdata-0.2.2 → libmozdata-0.2.3}/MANIFEST.in +0 -0
  9. {libmozdata-0.2.2 → libmozdata-0.2.3}/README.md +0 -0
  10. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/BZInfo.py +0 -0
  11. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/FXRevision.py +0 -0
  12. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/FileStats.py +0 -0
  13. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/HGFileInfo.py +0 -0
  14. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/__init__.py +0 -0
  15. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/buildhub.py +0 -0
  16. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/config.py +0 -0
  17. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/connection.py +0 -0
  18. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/handler.py +0 -0
  19. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/hgmozilla.py +0 -0
  20. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/lando.py +0 -0
  21. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/modules.json +0 -0
  22. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/modules.py +0 -0
  23. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/patchanalysis.py +0 -0
  24. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/redash.py +0 -0
  25. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/release_owners.py +0 -0
  26. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/socorro.py +0 -0
  27. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/utils.py +0 -0
  28. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/vcs_map.py +0 -0
  29. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/versions.py +0 -0
  30. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata/wiki_parser.py +0 -0
  31. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata.egg-info/SOURCES.txt +0 -0
  32. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata.egg-info/dependency_links.txt +0 -0
  33. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata.egg-info/not-zip-safe +0 -0
  34. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata.egg-info/requires.txt +0 -0
  35. {libmozdata-0.2.2 → libmozdata-0.2.3}/libmozdata.egg-info/top_level.txt +0 -0
  36. {libmozdata-0.2.2 → libmozdata-0.2.3}/requirements.txt +0 -0
  37. {libmozdata-0.2.2 → libmozdata-0.2.3}/setup.cfg +0 -0
  38. {libmozdata-0.2.2 → libmozdata-0.2.3}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: libmozdata
3
- Version: 0.2.2
3
+ Version: 0.2.3
4
4
  Summary: Library to access and aggregate several Mozilla data sources.
5
5
  Home-page: https://github.com/mozilla/libmozdata
6
6
  Author: Mozilla Release Management
@@ -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
- return resp.json()
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: libmozdata
3
- Version: 0.2.2
3
+ Version: 0.2.3
4
4
  Summary: Library to access and aggregate several Mozilla data sources.
5
5
  Home-page: https://github.com/mozilla/libmozdata
6
6
  Author: Mozilla Release Management
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