devpi-web 4.2.3__tar.gz → 4.3.0__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.
- {devpi-web-4.2.3 → devpi-web-4.3.0}/CHANGELOG +10 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/PKG-INFO +11 -11
- devpi-web-4.3.0/devpi_web/__init__.py +1 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/templates/index.pt +4 -1
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/templates/project.pt +4 -1
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/templates/version.pt +4 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/views.py +4 -2
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web.egg-info/PKG-INFO +11 -11
- {devpi-web-4.2.3 → devpi-web-4.3.0}/setup.py +1 -1
- {devpi-web-4.2.3 → devpi-web-4.3.0}/tests/test_views.py +16 -7
- devpi-web-4.2.3/devpi_web/__init__.py +0 -1
- {devpi-web-4.2.3 → devpi-web-4.3.0}/.flake8 +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/AUTHORS +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/LICENSE +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/MANIFEST.in +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/README.rst +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/clear_index.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/compat.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/config.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/description.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/doczip.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/hookspecs.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/indexing.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/main.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/null_index.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/static/common.js +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/static/docview.js +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/static/favicon.ico +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/static/jquery-3.6.0.min.js +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/static/style.css +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/templates/doc.pt +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/templates/error.pt +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/templates/macros.pt +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/templates/notfound.pt +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/templates/root.pt +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/templates/search.pt +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/templates/search_help.pt +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/templates/status.pt +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/templates/toxresult.pt +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/templates/toxresults.pt +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/templates/user.pt +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web/whoosh_index.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web.egg-info/SOURCES.txt +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web.egg-info/dependency_links.txt +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web.egg-info/entry_points.txt +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web.egg-info/not-zip-safe +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web.egg-info/requires.txt +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/devpi_web.egg-info/top_level.txt +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/pyproject.toml +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/setup.cfg +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/tests/conftest.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/tests/test_indexing.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/tests/test_main.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/tests/test_theme.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/tests/test_views_docs.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/tests/test_views_misc.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/tests/test_views_search.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/tests/test_views_toxresults.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/tests/test_whoosh_index.py +0 -0
- {devpi-web-4.2.3 → devpi-web-4.3.0}/tox.ini +0 -0
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
.. towncrier release notes start
|
|
4
4
|
|
|
5
|
+
4.3.0 (2024-10-16)
|
|
6
|
+
==================
|
|
7
|
+
|
|
8
|
+
Features
|
|
9
|
+
--------
|
|
10
|
+
|
|
11
|
+
- index.pt, project.pt, version.pt: Fix #1062: Added a link to download the documentation as zip-file to the index, project and version view.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
5
15
|
4.2.3 (2024-09-19)
|
|
6
16
|
==================
|
|
7
17
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: devpi-web
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.3.0
|
|
4
4
|
Summary: devpi-web: a web view for devpi-server
|
|
5
5
|
Home-page: https://devpi.net
|
|
6
6
|
Maintainer: Florian Schulze
|
|
@@ -77,6 +77,16 @@ Changelog
|
|
|
77
77
|
|
|
78
78
|
.. towncrier release notes start
|
|
79
79
|
|
|
80
|
+
4.3.0 (2024-10-16)
|
|
81
|
+
==================
|
|
82
|
+
|
|
83
|
+
Features
|
|
84
|
+
--------
|
|
85
|
+
|
|
86
|
+
- index.pt, project.pt, version.pt: Fix #1062: Added a link to download the documentation as zip-file to the index, project and version view.
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
80
90
|
4.2.3 (2024-09-19)
|
|
81
91
|
==================
|
|
82
92
|
|
|
@@ -144,13 +154,3 @@ Bug Fixes
|
|
|
144
154
|
|
|
145
155
|
- toxresults.pt, version.pt: Fix anchor generation for toxresults URLs.
|
|
146
156
|
|
|
147
|
-
|
|
148
|
-
4.1.1 (2022-09-28)
|
|
149
|
-
==================
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
Bug Fixes
|
|
153
|
-
---------
|
|
154
|
-
|
|
155
|
-
- Generalize GET redirect from URLs with trailing slash to ones without for consistency.
|
|
156
|
-
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '4.3.0'
|
|
@@ -40,7 +40,10 @@
|
|
|
40
40
|
</tal:file>
|
|
41
41
|
</tal:files>
|
|
42
42
|
</td>
|
|
43
|
-
<td
|
|
43
|
+
<td>
|
|
44
|
+
<a tal:condition="package.docs" href="${package.docs.url}">${package.docs.title}</a>
|
|
45
|
+
<span tal:condition="package.docs">(<a href="${package.docs.zip_url}">Download</a>)</span>
|
|
46
|
+
</td>
|
|
44
47
|
</tr>
|
|
45
48
|
</tbody>
|
|
46
49
|
</table>
|
|
@@ -35,7 +35,10 @@
|
|
|
35
35
|
<tr tal:repeat="version versions">
|
|
36
36
|
<td><a href="${version.index_url}">${version.index_title}</a></td>
|
|
37
37
|
<td><a href="${version.url}">${version.title}</a></td>
|
|
38
|
-
<td
|
|
38
|
+
<td>
|
|
39
|
+
<a tal:condition="version.docs" href="${version.docs.url}">${version.docs.title}</a>
|
|
40
|
+
<span tal:condition="version.docs">(<a href="${version.docs.zip_url}">Download</a>)</span>
|
|
41
|
+
</td>
|
|
39
42
|
</tr>
|
|
40
43
|
</tbody>
|
|
41
44
|
</table>
|
|
@@ -98,6 +98,10 @@
|
|
|
98
98
|
</tbody>
|
|
99
99
|
</table>
|
|
100
100
|
|
|
101
|
+
<p tal:condition="docs">
|
|
102
|
+
Download documentation as zip-file: <a href="${docs.zip_url}">${docs.title}</a>
|
|
103
|
+
</p>
|
|
104
|
+
|
|
101
105
|
<div id="description" tal:content="structure content" />
|
|
102
106
|
</div>
|
|
103
107
|
<metal:footer use-macro="request.macros['footer']" />
|
|
@@ -474,7 +474,8 @@ def get_docs_info(request, stage, linkstore):
|
|
|
474
474
|
title="%s-%s" % (name, ver),
|
|
475
475
|
url=request.route_url(
|
|
476
476
|
"docviewroot", user=stage.user.name, index=stage.index,
|
|
477
|
-
project=name, version=ver, relpath="index.html")
|
|
477
|
+
project=name, version=ver, relpath="index.html"),
|
|
478
|
+
zip_url=url_for_entrypath(request, links[0].entrypath))
|
|
478
479
|
|
|
479
480
|
|
|
480
481
|
def get_user_info(context, request, user):
|
|
@@ -830,7 +831,8 @@ def version_get(context, request):
|
|
|
830
831
|
make_toxresult_url=functools.partial(
|
|
831
832
|
request.route_url, "toxresult",
|
|
832
833
|
user=context.username, index=context.index,
|
|
833
|
-
project=context.project, version=version)
|
|
834
|
+
project=context.project, version=version),
|
|
835
|
+
docs=docs)
|
|
834
836
|
|
|
835
837
|
|
|
836
838
|
@view_config(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: devpi-web
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.3.0
|
|
4
4
|
Summary: devpi-web: a web view for devpi-server
|
|
5
5
|
Home-page: https://devpi.net
|
|
6
6
|
Maintainer: Florian Schulze
|
|
@@ -77,6 +77,16 @@ Changelog
|
|
|
77
77
|
|
|
78
78
|
.. towncrier release notes start
|
|
79
79
|
|
|
80
|
+
4.3.0 (2024-10-16)
|
|
81
|
+
==================
|
|
82
|
+
|
|
83
|
+
Features
|
|
84
|
+
--------
|
|
85
|
+
|
|
86
|
+
- index.pt, project.pt, version.pt: Fix #1062: Added a link to download the documentation as zip-file to the index, project and version view.
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
80
90
|
4.2.3 (2024-09-19)
|
|
81
91
|
==================
|
|
82
92
|
|
|
@@ -144,13 +154,3 @@ Bug Fixes
|
|
|
144
154
|
|
|
145
155
|
- toxresults.pt, version.pt: Fix anchor generation for toxresults URLs.
|
|
146
156
|
|
|
147
|
-
|
|
148
|
-
4.1.1 (2022-09-28)
|
|
149
|
-
==================
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
Bug Fixes
|
|
153
|
-
---------
|
|
154
|
-
|
|
155
|
-
- Generalize GET redirect from URLs with trailing slash to ones without for consistency.
|
|
156
|
-
|
|
@@ -142,8 +142,10 @@ def test_index_view_project_docs(keep_docs_packed, mapp, testapp):
|
|
|
142
142
|
api = mapp.create_and_use(indexconfig=dict(bases=["root/pypi"]))
|
|
143
143
|
mapp.set_versiondata({"name": "pkg1", "version": "2.6"})
|
|
144
144
|
content = zip_dict({"index.html": "<html/>"})
|
|
145
|
-
mapp.upload_doc("pkg1.zip", content, "pkg1", "2.6", code=200,
|
|
145
|
+
mapp.upload_doc("pkg1-2.6.doc.zip", content, "pkg1", "2.6", code=200,
|
|
146
146
|
waithooks=True)
|
|
147
|
+
doc_zip_url = make_file_url("pkg1-2.6.doc.zip", content, stagename=api.stagename)
|
|
148
|
+
doc_zip_url = doc_zip_url.rsplit("#", 1)[0]
|
|
147
149
|
r = testapp.get(api.index, headers=dict(accept="text/html"))
|
|
148
150
|
assert r.status_code == 200
|
|
149
151
|
links = r.html.select('#content a')
|
|
@@ -151,6 +153,7 @@ def test_index_view_project_docs(keep_docs_packed, mapp, testapp):
|
|
|
151
153
|
("simple index", "http://localhost/%s/+simple/" % api.stagename),
|
|
152
154
|
("pkg1-2.6", "http://localhost/%s/pkg1/2.6" % api.stagename),
|
|
153
155
|
("pkg1-2.6", "http://localhost/%s/pkg1/2.6/+d/index.html" % api.stagename),
|
|
156
|
+
('Download', doc_zip_url),
|
|
154
157
|
("root/pypi", "http://localhost/root/pypi"),
|
|
155
158
|
("simple", "http://localhost/root/pypi/+simple/")]
|
|
156
159
|
|
|
@@ -251,8 +254,8 @@ def test_project_view_docs_only(keep_docs_packed, mapp, testapp):
|
|
|
251
254
|
"pkg1.zip", content, "pkg1", "2.6", code=200, waithooks=True)
|
|
252
255
|
r = testapp.xget(200, api.index + '/pkg1', headers=dict(accept="text/html"))
|
|
253
256
|
(content,) = r.html.select('#content')
|
|
254
|
-
assert [x.text for x in content.select('tr td')] == [
|
|
255
|
-
"user1/dev", "2.6", "pkg1-2.6"]
|
|
257
|
+
assert [x.text.strip() for x in content.select('tr td')] == [
|
|
258
|
+
"user1/dev", "2.6", "pkg1-2.6\n(Download)"]
|
|
256
259
|
|
|
257
260
|
|
|
258
261
|
def test_project_view_root_pypi(mapp, testapp, pypistage):
|
|
@@ -316,7 +319,9 @@ def test_project_view_root_and_docs(keep_docs_packed, mapp, testapp, pypistage):
|
|
|
316
319
|
content = zip_dict({"index.html": "<html/>"})
|
|
317
320
|
mapp.set_versiondata({"name": "pkg1", "version": "2.6"})
|
|
318
321
|
mapp.upload_doc(
|
|
319
|
-
"pkg1.zip", content, "pkg1", "2.6", code=200, waithooks=True)
|
|
322
|
+
"pkg1-2.6.doc.zip", content, "pkg1", "2.6", code=200, waithooks=True)
|
|
323
|
+
doc_zip_url = make_file_url("pkg1-2.6.doc.zip", content, stagename=api.stagename)
|
|
324
|
+
doc_zip_url = doc_zip_url.rsplit("#", 1)[0]
|
|
320
325
|
r = testapp.xget(200, api.index + '/pkg1', headers=dict(accept="text/html"))
|
|
321
326
|
links = r.html.select('#content a')
|
|
322
327
|
assert [(l.text, l.attrs['href']) for l in links] == [
|
|
@@ -327,7 +332,8 @@ def test_project_view_root_and_docs(keep_docs_packed, mapp, testapp, pypistage):
|
|
|
327
332
|
("2.7", "http://localhost/root/pypi/pkg1/2.7"),
|
|
328
333
|
("root/pypi", "http://localhost/root/pypi"),
|
|
329
334
|
("2.6", "http://localhost/root/pypi/pkg1/2.6"),
|
|
330
|
-
("pkg1-2.6", "http://localhost/user1/dev/pkg1/2.6/+d/index.html")
|
|
335
|
+
("pkg1-2.6", "http://localhost/user1/dev/pkg1/2.6/+d/index.html"),
|
|
336
|
+
("Download", doc_zip_url)]
|
|
331
337
|
|
|
332
338
|
|
|
333
339
|
def test_project_view_inherited_no_versions_on_stage(mapp, testapp):
|
|
@@ -361,7 +367,9 @@ def test_version_view(mapp, testapp, monkeypatch):
|
|
|
361
367
|
zip = mapp.upload_file_pypi(
|
|
362
368
|
"pkg1-2.6.zip", b"contentzip", "pkg1", "2.6").file_url
|
|
363
369
|
content = zip_dict({"index.html": "<html/>"})
|
|
364
|
-
mapp.upload_doc("pkg1.zip", content, "pkg1", "2.6", code=200)
|
|
370
|
+
mapp.upload_doc("pkg1-2.6.doc.zip", content, "pkg1", "2.6", code=200)
|
|
371
|
+
doc_zip_url = make_file_url("pkg1-2.6.doc.zip", content, stagename=api.stagename)
|
|
372
|
+
doc_zip_url = doc_zip_url.rsplit("#", 1)[0]
|
|
365
373
|
classifiers = ["Intended Audience :: Developers",
|
|
366
374
|
"License :: OSI Approved :: MIT License"]
|
|
367
375
|
mapp.set_versiondata({
|
|
@@ -404,7 +412,8 @@ def test_version_view(mapp, testapp, monkeypatch):
|
|
|
404
412
|
("pkg1-2.6.tar.gz", tar3),
|
|
405
413
|
('user1/dev', 'http://localhost/user1/dev'),
|
|
406
414
|
("pkg1-2.6.zip", zip),
|
|
407
|
-
('user1/dev', 'http://localhost/user1/dev')
|
|
415
|
+
('user1/dev', 'http://localhost/user1/dev'),
|
|
416
|
+
('pkg1-2.6', doc_zip_url)]
|
|
408
417
|
|
|
409
418
|
|
|
410
419
|
@pytest.mark.with_notifier
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '4.2.3'
|
|
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
|
|
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
|