Skip to content

Commit b42bfb9

Browse files
committed
Avoid requesting index by assuming package URL
1 parent 6827b21 commit b42bfb9

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

src/proxpi/_cache.py

+12-7
Original file line numberDiff line numberDiff line change
@@ -199,14 +199,19 @@ def _list_files(self, package_name: str):
199199
if package and time.monotonic() < package.refreshed + self.ttl:
200200
return
201201

202-
if package_name not in self.list_packages():
203-
raise NotFound(package_name)
204-
205202
logger.debug(f"Listing files in package '{package_name}'")
206-
package_url = self._index[package_name]
207-
url = urllib.parse.urljoin(self.index_url, package_url)
208-
response = self.session.get(url)
209-
response.raise_for_status()
203+
response = None
204+
if time.monotonic() > (self._index_t or 0.0) + self.ttl:
205+
url = urllib.parse.urljoin(self.index_url, package_name)
206+
response = self.session.get(url)
207+
if not response or not response.ok:
208+
if package_name not in self.list_packages():
209+
raise NotFound(package_name)
210+
package_url = self._index[package_name]
211+
url = urllib.parse.urljoin(self.index_url, package_url)
212+
response = self.session.get(url)
213+
response.raise_for_status()
214+
210215
package = Package(package_name, files={}, refreshed=time.monotonic())
211216
tree = lxml.etree.parse(io.BytesIO(response.content), _html_parser)
212217

src/proxpi/server.py

-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
"""Cached package index server."""
22

33
import os
4-
import sys
54
import logging
65
import urllib.parse
76

@@ -30,10 +29,6 @@
3029
app = flask.Flask("proxpi")
3130
app.jinja_loader = jinja2.PackageLoader("proxpi")
3231
cache = _cache.Cache.from_config()
33-
if "--help" not in sys.argv:
34-
_cache_init_thread = _cache.Thread(target=cache.list_packages)
35-
_cache_init_thread.start()
36-
app.before_first_request_funcs.append(_cache_init_thread.join)
3732
if app.debug or app.testing:
3833
logging.root.setLevel(logging.DEBUG)
3934
for handler in logging.root.handlers:

0 commit comments

Comments
 (0)