devpi-web 4.2.0__tar.gz → 4.2.2__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 (62) hide show
  1. devpi_web-4.2.2/.flake8 +2 -0
  2. {devpi-web-4.2.0 → devpi_web-4.2.2}/CHANGELOG +25 -0
  3. {devpi-web-4.2.0 → devpi_web-4.2.2}/MANIFEST.in +1 -1
  4. {devpi-web-4.2.0 → devpi_web-4.2.2}/PKG-INFO +37 -19
  5. devpi_web-4.2.2/devpi_web/__init__.py +1 -0
  6. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/clear_index.py +2 -1
  7. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/config.py +0 -2
  8. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/doczip.py +1 -1
  9. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/main.py +1 -15
  10. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/static/docview.js +5 -0
  11. devpi_web-4.2.2/devpi_web/static/style-old.css +847 -0
  12. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/static/style.css +22 -1
  13. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/views.py +2 -2
  14. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/whoosh_index.py +8 -10
  15. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web.egg-info/PKG-INFO +37 -19
  16. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web.egg-info/SOURCES.txt +2 -0
  17. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web.egg-info/requires.txt +1 -1
  18. {devpi-web-4.2.0 → devpi_web-4.2.2}/setup.py +3 -3
  19. devpi_web-4.2.2/tests/conftest.py +57 -0
  20. {devpi-web-4.2.0 → devpi_web-4.2.2}/tests/test_indexing.py +1 -0
  21. {devpi-web-4.2.0 → devpi_web-4.2.2}/tests/test_main.py +6 -5
  22. {devpi-web-4.2.0 → devpi_web-4.2.2}/tests/test_theme.py +4 -1
  23. {devpi-web-4.2.0 → devpi_web-4.2.2}/tests/test_views.py +15 -14
  24. {devpi-web-4.2.0 → devpi_web-4.2.2}/tests/test_views_docs.py +26 -17
  25. {devpi-web-4.2.0 → devpi_web-4.2.2}/tests/test_views_misc.py +18 -2
  26. {devpi-web-4.2.0 → devpi_web-4.2.2}/tests/test_views_search.py +6 -2
  27. {devpi-web-4.2.0 → devpi_web-4.2.2}/tests/test_views_toxresults.py +6 -3
  28. {devpi-web-4.2.0 → devpi_web-4.2.2}/tests/test_whoosh_index.py +6 -3
  29. devpi_web-4.2.2/tox.ini +49 -0
  30. devpi-web-4.2.0/devpi_web/__init__.py +0 -1
  31. devpi-web-4.2.0/tests/conftest.py +0 -51
  32. devpi-web-4.2.0/tox.ini +0 -35
  33. {devpi-web-4.2.0 → devpi_web-4.2.2}/AUTHORS +0 -0
  34. {devpi-web-4.2.0 → devpi_web-4.2.2}/LICENSE +0 -0
  35. {devpi-web-4.2.0 → devpi_web-4.2.2}/README.rst +0 -0
  36. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/description.py +0 -0
  37. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/hookspecs.py +0 -0
  38. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/indexing.py +0 -0
  39. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/null_index.py +0 -0
  40. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/static/common.js +0 -0
  41. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/static/favicon.ico +0 -0
  42. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/static/jquery-3.6.0.min.js +0 -0
  43. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/templates/doc.pt +0 -0
  44. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/templates/error.pt +0 -0
  45. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/templates/index.pt +0 -0
  46. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/templates/macros.pt +0 -0
  47. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/templates/notfound.pt +0 -0
  48. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/templates/project.pt +0 -0
  49. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/templates/root.pt +0 -0
  50. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/templates/search.pt +0 -0
  51. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/templates/search_help.pt +0 -0
  52. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/templates/status.pt +0 -0
  53. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/templates/toxresult.pt +0 -0
  54. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/templates/toxresults.pt +0 -0
  55. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/templates/user.pt +0 -0
  56. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web/templates/version.pt +0 -0
  57. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web.egg-info/dependency_links.txt +0 -0
  58. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web.egg-info/entry_points.txt +0 -0
  59. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web.egg-info/not-zip-safe +0 -0
  60. {devpi-web-4.2.0 → devpi_web-4.2.2}/devpi_web.egg-info/top_level.txt +0 -0
  61. {devpi-web-4.2.0 → devpi_web-4.2.2}/pyproject.toml +0 -0
  62. {devpi-web-4.2.0 → devpi_web-4.2.2}/setup.cfg +0 -0
@@ -0,0 +1,2 @@
1
+ [flake8]
2
+ ignore = E501,E741,W503
@@ -2,6 +2,31 @@
2
2
 
3
3
  .. towncrier release notes start
4
4
 
5
+ 4.2.2 (2024-04-20)
6
+ ==================
7
+
8
+ Bug Fixes
9
+ ---------
10
+
11
+ - style.css: Always let content be full browser height. This also gives more height with some documentation themes when content is short.
12
+
13
+ - style.css: set ``scrollbar-gutter: stable`` on ``body`` to prevent jumping content in documentation iframe.
14
+
15
+ - Fix #970: overwrite fixed html/body heights like ``100%`` in documentation iframe content.
16
+
17
+
18
+
19
+ 4.2.1 (2023-07-02)
20
+ ==================
21
+
22
+ Bug Fixes
23
+ ---------
24
+
25
+ - Fix #953: Exception when browsers send ETag for documentation pages.
26
+
27
+ - Fix #980: Remove long deprecated backward compatibility for old pluggy versions to fix error with pluggy 1.1.0.
28
+
29
+
5
30
  4.2.0 (2022-12-05)
6
31
  ==================
7
32
 
@@ -1,4 +1,4 @@
1
- include CHANGELOG *.ini *.rst LICENSE
1
+ include .flake8 CHANGELOG *.ini *.rst LICENSE
2
2
  recursive-include devpi_web/static *
3
3
  recursive-include devpi_web/templates *
4
4
  recursive-include tests *.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: devpi-web
3
- Version: 4.2.0
3
+ Version: 4.2.2
4
4
  Summary: devpi-web: a web view for devpi-server
5
5
  Home-page: https://devpi.net
6
6
  Maintainer: Florian Schulze
@@ -27,9 +27,20 @@ Classifier: Programming Language :: Python :: 3.8
27
27
  Classifier: Programming Language :: Python :: 3.9
28
28
  Classifier: Programming Language :: Python :: 3.10
29
29
  Classifier: Programming Language :: Python :: 3.11
30
+ Classifier: Programming Language :: Python :: 3.12
30
31
  Requires-Python: >=3.4
31
32
  License-File: LICENSE
32
33
  License-File: AUTHORS
34
+ Requires-Dist: Whoosh<3
35
+ Requires-Dist: beautifulsoup4!=4.12.1,>=4.3.2
36
+ Requires-Dist: defusedxml
37
+ Requires-Dist: devpi-server>=5.2.0
38
+ Requires-Dist: devpi-common>=3.2.0
39
+ Requires-Dist: docutils>=0.11
40
+ Requires-Dist: pygments>=1.6
41
+ Requires-Dist: pyramid!=1.10a1
42
+ Requires-Dist: pyramid-chameleon
43
+ Requires-Dist: readme-renderer[md]>=23.0
33
44
 
34
45
  ================================================
35
46
  devpi-web: web interface plugin for devpi-server
@@ -76,6 +87,31 @@ Changelog
76
87
 
77
88
  .. towncrier release notes start
78
89
 
90
+ 4.2.2 (2024-04-20)
91
+ ==================
92
+
93
+ Bug Fixes
94
+ ---------
95
+
96
+ - style.css: Always let content be full browser height. This also gives more height with some documentation themes when content is short.
97
+
98
+ - style.css: set ``scrollbar-gutter: stable`` on ``body`` to prevent jumping content in documentation iframe.
99
+
100
+ - Fix #970: overwrite fixed html/body heights like ``100%`` in documentation iframe content.
101
+
102
+
103
+
104
+ 4.2.1 (2023-07-02)
105
+ ==================
106
+
107
+ Bug Fixes
108
+ ---------
109
+
110
+ - Fix #953: Exception when browsers send ETag for documentation pages.
111
+
112
+ - Fix #980: Remove long deprecated backward compatibility for old pluggy versions to fix error with pluggy 1.1.0.
113
+
114
+
79
115
  4.2.0 (2022-12-05)
80
116
  ==================
81
117
 
@@ -133,21 +169,3 @@ Bug Fixes
133
169
 
134
170
  - Fix #867: AttributeError during ``devpi-import`` and maybe other commands.
135
171
 
136
-
137
- 4.0.8 (2021-08-12)
138
- ==================
139
-
140
- Bug Fixes
141
- ---------
142
-
143
- - On startup loop over mirror indexes last to avoid filling up the indexing queue, which processes non mirror indexes first.
144
-
145
-
146
- 4.0.7 (2021-07-11)
147
- ==================
148
-
149
- Bug Fixes
150
- ---------
151
-
152
- - The "Not Found" view now works correctly with request methods other than GET, HEAD and POST.
153
-
@@ -0,0 +1 @@
1
+ __version__ = '4.2.2'
@@ -31,7 +31,8 @@ def clear_index(argv=None):
31
31
  configure_cli_logging(config.args)
32
32
  xom = xom_from_config(config)
33
33
  log = xom.log
34
- log.warn("You should stop devpi-server before running this command.")
34
+ log.warn( # noqa: PGH002,G010 - this is actually TagLogger from devpi-server, but devpi-web still needs to support older devpi-server versions
35
+ "You should stop devpi-server before running this command.")
35
36
  ix = get_indexer(xom)
36
37
  ix.delete_index()
37
38
  log.info("Index deleted, start devpi-server again to let the index rebuild automatically.")
@@ -8,8 +8,6 @@ def get_pluginmanager(config, load_entry_points=True):
8
8
  if pm is not None:
9
9
  return pm
10
10
  pm = PluginManager("devpiweb")
11
- # support old plugins, but emit deprecation warnings
12
- pm._implprefix = "devpiweb_"
13
11
  pm.add_hookspecs(hookspecs)
14
12
  if load_entry_points:
15
13
  pm.load_setuptools_entrypoints("devpi_web")
@@ -8,7 +8,7 @@ from devpi_server.log import threadlog
8
8
  try:
9
9
  import fcntl
10
10
  except ImportError:
11
- fcntl = None # type: ignore
11
+ fcntl = None # type: ignore[assignment]
12
12
  import json
13
13
  import py
14
14
 
@@ -239,19 +239,6 @@ def devpiserver_pyramid_configure(config, pyramid_config):
239
239
  xom = pyramid_config.registry['xom']
240
240
  pyramid_config.registry['search_index'] = get_indexer(xom)
241
241
 
242
- # monkeypatch mimetypes.guess_type on because pyramid-1.5.1/webob
243
- # choke on mimtypes.guess_type on windows with python2.7
244
- if sys.platform == "win32" and sys.version_info[:2] == (2, 7):
245
- import mimetypes
246
- old = mimetypes.guess_type
247
-
248
- def guess_type_str(url, strict=True):
249
- res = old(url, strict)
250
- return str(res[0]), res[1]
251
-
252
- mimetypes.guess_type = guess_type_str
253
- threadlog.debug("monkeypatched mimetypes.guess_type to return bytes")
254
-
255
242
 
256
243
  @devpiserver_hookimpl
257
244
  def devpiserver_add_parser_options(parser):
@@ -307,8 +294,7 @@ def devpiserver_cmdline_run(xom):
307
294
  docs_path = xom.config.args.documentation_path
308
295
  if docs_path is not None and not os.path.isabs(docs_path):
309
296
  fatal("The path for unzipped documentation must be absolute.")
310
- # allow devpi-server to run
311
- return None
297
+ # return None to allow devpi-server to run
312
298
 
313
299
 
314
300
  def delete_project(stage, name):
@@ -12,6 +12,7 @@ function onIFrameLoad(event) {
12
12
  $iframe = $(iframe),
13
13
  $doc = $(iframe.contentWindow.document),
14
14
  $docHtml = $doc.find('html'),
15
+ $docBody = $docHtml.find('body'),
15
16
  scrolled_to_anchor = false,
16
17
  iframeResizeObserver = new ResizeObserver((entries) => {
17
18
  for (const entry of entries) {
@@ -28,6 +29,10 @@ function onIFrameLoad(event) {
28
29
  }
29
30
  });
30
31
 
32
+ $docHtml.css('height', 'auto');
33
+ $docHtml.css('overflow-y', 'hidden');
34
+ $docBody.css('height', 'auto');
35
+ $docBody.css('overflow-y', 'hidden');
31
36
  // make keyboard actions affect the actual documentation
32
37
  // in the iframe by default
33
38
  iframe.contentWindow.focus();