34
34
35
35
36
36
class EupsData :
37
+ """Retrieve EUPS release data"""
38
+
37
39
def __init__ (self , connections : int = 10 ):
40
+ """
41
+ :param connections: `int`
42
+ number of parallel URL requests
43
+ """
38
44
self ._url = 'https://eups.lsst.codes/stack/src/tags/'
39
45
self ._connection_mgr = urllib3 .PoolManager (maxsize = connections )
40
46
self ._connections = connections
41
47
42
48
@staticmethod
43
- def _process_list (data ) -> List [Dict [str , str ]]:
49
+ def _process_list (data : bytes ) -> List [Dict [str , str ]]:
50
+ """
51
+ process a EUPS data file
52
+ :param data: `bytes`
53
+ data from URL response
54
+ :return:
55
+ List of EUPS product dicts
56
+ { 'package': package, 'flavor': flavor, 'version': version }
57
+ """
44
58
lines = data .split (b"\n " )
45
59
result = list ()
46
60
for line in lines :
@@ -60,6 +74,11 @@ def _process_list(data) -> List[Dict[str, str]]:
60
74
return result
61
75
62
76
def _get_url_paths (self ) -> List [str ]:
77
+ """
78
+ get list with url of .list files
79
+ :return: `List[str]`
80
+ List of URLs
81
+ """
63
82
ext = '.list'
64
83
params = {}
65
84
response = requests .get (self ._url , params = params )
@@ -73,6 +92,11 @@ def _get_url_paths(self) -> List[str]:
73
92
return parent
74
93
75
94
def _download (self , url : str ) -> SortedDict :
95
+ """
96
+ download EUPS .list files
97
+ :param url: `str` URL
98
+ :return: `SortedDict`
99
+ """
76
100
response = self ._connection_mgr .request ('GET' , url )
77
101
name = url .split ('/' )[- 1 ].split ('.' )[0 ]
78
102
rtag = Tag (name )
@@ -84,6 +108,13 @@ def _download(self, url: str) -> SortedDict:
84
108
return SortedDict ()
85
109
86
110
def get_releases (self , release : ReleaseType ) -> SortedDict :
111
+ """
112
+ Retrieve release information from EUPS
113
+ :param release: `ReleaseType`
114
+ filter by WEEKLY or REGULAR
115
+ :return: `SortedDict`
116
+ EUPS release data
117
+ """
87
118
urls = self ._get_url_paths ()
88
119
result = SortedDict ()
89
120
release_list = SortedDict ()
0 commit comments