httpdbg 0.17.3__tar.gz → 0.18.1__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 (69) hide show
  1. {httpdbg-0.17.3 → httpdbg-0.18.1}/PKG-INFO +1 -1
  2. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/__init__.py +1 -1
  3. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/records.py +8 -16
  4. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/column.css +8 -0
  5. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/configuration.js +20 -3
  6. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/index.htm +29 -9
  7. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/main.js +13 -1
  8. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/render.js +2 -0
  9. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg.egg-info/PKG-INFO +1 -1
  10. {httpdbg-0.17.3 → httpdbg-0.18.1}/LICENSE +0 -0
  11. {httpdbg-0.17.3 → httpdbg-0.18.1}/README.md +0 -0
  12. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/__main__.py +0 -0
  13. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/args.py +0 -0
  14. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/hooks/__init__.py +0 -0
  15. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/hooks/aiohttp.py +0 -0
  16. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/hooks/all.py +0 -0
  17. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/hooks/external.py +0 -0
  18. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/hooks/generic.py +0 -0
  19. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/hooks/httpx.py +0 -0
  20. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/hooks/requests.py +0 -0
  21. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/hooks/socket.py +0 -0
  22. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/hooks/urllib3.py +0 -0
  23. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/hooks/utils.py +0 -0
  24. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/initiator.py +0 -0
  25. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/mode_console.py +0 -0
  26. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/mode_module.py +0 -0
  27. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/mode_script.py +0 -0
  28. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/preview.py +0 -0
  29. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/server.py +0 -0
  30. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/utils.py +0 -0
  31. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/__init__.py +0 -0
  32. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/api.py +0 -0
  33. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/app.py +0 -0
  34. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/api.js +0 -0
  35. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/detail.css +0 -0
  36. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/favicon.ico +0 -0
  37. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/filter.js +0 -0
  38. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/icons/download-install-line-icon.svg +0 -0
  39. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/icons/engine-gears-icon.svg +0 -0
  40. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/icons/files-papers-outline-icon.svg +0 -0
  41. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/icons/filter-outline-icon.svg +0 -0
  42. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/icons/information-mark-circle-outline-icon.svg +0 -0
  43. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/icons/math-multiplication-icon.svg +0 -0
  44. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/icons/push-pin-green-icon.svg +0 -0
  45. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/icons/question-mark-round-line-icon.svg +0 -0
  46. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/icons/recycle-bin-line-icon.svg +0 -0
  47. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/icons/wait-sandclock-icon.svg +0 -0
  48. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/mustache.min.js +0 -0
  49. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/style.css +0 -0
  50. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg/webapp/static/table.css +0 -0
  51. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg.egg-info/SOURCES.txt +0 -0
  52. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg.egg-info/dependency_links.txt +0 -0
  53. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg.egg-info/entry_points.txt +0 -0
  54. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg.egg-info/requires.txt +0 -0
  55. {httpdbg-0.17.3 → httpdbg-0.18.1}/httpdbg.egg-info/top_level.txt +0 -0
  56. {httpdbg-0.17.3 → httpdbg-0.18.1}/pyproject.toml +0 -0
  57. {httpdbg-0.17.3 → httpdbg-0.18.1}/setup.cfg +0 -0
  58. {httpdbg-0.17.3 → httpdbg-0.18.1}/tests/test_api.py +0 -0
  59. {httpdbg-0.17.3 → httpdbg-0.18.1}/tests/test_cli.py +0 -0
  60. {httpdbg-0.17.3 → httpdbg-0.18.1}/tests/test_context_manager.py +0 -0
  61. {httpdbg-0.17.3 → httpdbg-0.18.1}/tests/test_hook_aiohttp.py +0 -0
  62. {httpdbg-0.17.3 → httpdbg-0.18.1}/tests/test_hook_httpx.py +0 -0
  63. {httpdbg-0.17.3 → httpdbg-0.18.1}/tests/test_hook_requests.py +0 -0
  64. {httpdbg-0.17.3 → httpdbg-0.18.1}/tests/test_hook_urllib3.py +0 -0
  65. {httpdbg-0.17.3 → httpdbg-0.18.1}/tests/test_initiator.py +0 -0
  66. {httpdbg-0.17.3 → httpdbg-0.18.1}/tests/test_mode_console.py +0 -0
  67. {httpdbg-0.17.3 → httpdbg-0.18.1}/tests/test_mode_module_pytest.py +0 -0
  68. {httpdbg-0.17.3 → httpdbg-0.18.1}/tests/test_mode_script.py +0 -0
  69. {httpdbg-0.17.3 → httpdbg-0.18.1}/tests/test_preview.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: httpdbg
3
- Version: 0.17.3
3
+ Version: 0.18.1
4
4
  Summary: A very simple tool to debug HTTP(S) client requests
5
5
  Author-email: cle-b <cle@tictac.pm>
6
6
  License: Apache-2.0
@@ -3,6 +3,6 @@ from httpdbg.hooks.all import httprecord
3
3
  from httpdbg.records import HTTPRecords
4
4
 
5
5
 
6
- VERSION = "0.17.3"
6
+ VERSION = "0.18.1"
7
7
 
8
8
  __all__ = ["httprecord", "HTTPRecords"]
@@ -12,7 +12,6 @@ from typing import Dict, List, Tuple, Union
12
12
  from httpdbg.utils import HTTPDBGCookie
13
13
  from httpdbg.utils import HTTPDBGHeader
14
14
  from httpdbg.initiator import in_lib
15
- from httpdbg.initiator import compatible_path
16
15
  from httpdbg.initiator import Initiator
17
16
  from httpdbg.preview import generate_preview
18
17
  from httpdbg.utils import get_new_uuid
@@ -303,21 +302,14 @@ class HTTPRecords:
303
302
  initiator = self._initiators[os.environ[envname]]
304
303
  else:
305
304
  fullstack = traceback.format_stack()
306
- if compatible_path("httpdbg/mode_script.py") in "".join(
307
- fullstack
308
- ): # TODO: find another way the detect the mode
309
- stack: List[str] = []
310
- for line in fullstack[6:]:
311
- if in_lib(line):
312
- break
313
- stack.append(line)
314
- long_label = stack[-1]
315
- short_label = long_label.split("\n")[1]
316
- initiator = Initiator(
317
- get_new_uuid(), short_label, None, long_label, stack
318
- )
319
- else:
320
- initiator = Initiator(f"console{self.id}", "console", None, "", [])
305
+ stack: List[str] = []
306
+ for line in fullstack[6:]:
307
+ if in_lib(line):
308
+ break
309
+ stack.append(line)
310
+ long_label = stack[-1]
311
+ short_label = long_label.split("\n")[1]
312
+ initiator = Initiator(get_new_uuid(), short_label, None, long_label, stack)
321
313
 
322
314
  if ("PYTEST_CURRENT_TEST" in os.environ) and (
323
315
  "HTTPDBG_PYTEST_PLUGIN" not in os.environ
@@ -15,4 +15,12 @@
15
15
  min-width: 40vw;
16
16
  width: 50vw;
17
17
  resize: horizontal;
18
+ }
19
+
20
+
21
+ .grid-container-configuration {
22
+ display: grid;
23
+ grid-auto-flow: column;
24
+ grid-auto-columns: 1fr;
25
+
18
26
  }
@@ -8,13 +8,23 @@ function config() {
8
8
  }
9
9
  }
10
10
 
11
- function apply_config_rule(a_config, sheet) {
11
+ function apply_config_rule_css(a_config, sheet) {
12
12
  document.getElementById(a_config.checkbox).checked = a_config.value;
13
13
  if (a_config.value) {
14
14
  sheet.insertRule(a_config.css);
15
15
  }
16
16
  }
17
17
 
18
+ function apply_config_rule_click(a_config) {
19
+ document.getElementById(a_config.checkbox).checked = a_config.value;
20
+ document.getElementsByName(a_config.elt_name).forEach(element => {
21
+ if (element.checked != a_config.value) {
22
+ element.click();
23
+ }
24
+ });
25
+
26
+ }
27
+
18
28
  function apply_config() {
19
29
  var sheet = document.getElementById("configurationcss").sheet;
20
30
 
@@ -22,8 +32,11 @@ function apply_config() {
22
32
  sheet.deleteRule(0);
23
33
  }
24
34
 
25
- apply_config_rule(httpdbgApp.config.hide_netloc, sheet);
26
- apply_config_rule(httpdbgApp.config.hide_initiator, sheet);
35
+ apply_config_rule_css(httpdbgApp.config.hide_netloc, sheet);
36
+ apply_config_rule_css(httpdbgApp.config.hide_initiator, sheet);
37
+
38
+ apply_config_rule_click(httpdbgApp.config.details_wrap_default);
39
+ apply_config_rule_click(httpdbgApp.config.details_raw_default);
27
40
  }
28
41
 
29
42
  function load_config_rule_from_url(a_config, params) {
@@ -35,6 +48,8 @@ function load_config_from_url(apply) {
35
48
 
36
49
  load_config_rule_from_url(httpdbgApp.config.hide_netloc, params);
37
50
  load_config_rule_from_url(httpdbgApp.config.hide_initiator, params);
51
+ load_config_rule_from_url(httpdbgApp.config.details_wrap_default, params);
52
+ load_config_rule_from_url(httpdbgApp.config.details_raw_default, params);
38
53
 
39
54
  if (apply) {
40
55
  apply_config();
@@ -50,6 +65,8 @@ function load_config_from_form(apply) {
50
65
 
51
66
  load_config_rule_from_form(httpdbgApp.config.hide_netloc);
52
67
  load_config_rule_from_form(httpdbgApp.config.hide_initiator);
68
+ load_config_rule_from_form(httpdbgApp.config.details_wrap_default);
69
+ load_config_rule_from_form(httpdbgApp.config.details_raw_default);
53
70
 
54
71
  if (apply) {
55
72
  apply_config();
@@ -55,13 +55,33 @@
55
55
 
56
56
  <form id="configform" onsubmit="return false;">
57
57
 
58
- <input type="checkbox" id="curl" name="hn" onchange="load_config_from_form(true)">
59
- <label for="curl">Hide the netloc in the url</label>
60
-
61
- <br>
62
-
63
- <input type="checkbox" id="cinitiator" name="hi" onchange="load_config_from_form(true)">
64
- <label for="cinitiator">Hide the initiator rows</label>
58
+ <div class="grid-container-configuration">
59
+ <div>
60
+ <fieldset>
61
+ <legend>list of requests</legend>
62
+
63
+ <input type="checkbox" id="curl" name="hn" onchange="load_config_from_form(true)">
64
+ <label for="curl">Hide the netloc in the url</label>
65
+
66
+ <br>
67
+
68
+ <input type="checkbox" id="cinitiator" name="hi" onchange="load_config_from_form(true)">
69
+ <label for="cinitiator">Hide the initiator rows</label>
70
+ </fieldset>
71
+ </div>
72
+ <div>
73
+ <fieldset>
74
+ <legend>request's details</legend>
75
+ <input type="checkbox" id="cwrap" name="wl" onchange="load_config_from_form(true)">
76
+ <label for="cwrap">Wrap lines</label>
77
+
78
+ <br>
79
+
80
+ <input type="checkbox" id="craw" name="rd" onchange="load_config_from_form(true)">
81
+ <label for="craw">Raw data</label>
82
+ </fieldset>
83
+ </div>
84
+ </div>
65
85
 
66
86
  <br>
67
87
 
@@ -283,9 +303,9 @@
283
303
  <button title="copy to clipboard" onclick="navigator.clipboard.writeText({{body.raw_text}});"><img class="icon" src="static/icons/files-papers-outline-icon.svg-+-$**HTTPDBG_VERSION**$"/></button>
284
304
  {{/body.raw_text}}
285
305
 
286
- <label><input type="checkbox" onclick='show_wrap_lines(this.parentNode.parentNode.querySelector(".previewcode"));'>Wrap lines</label>
306
+ <label><input type="checkbox" name="ckwraptext" onclick='show_wrap_lines(this.parentNode.parentNode.querySelector(".previewcode"));'>Wrap lines</label>
287
307
  {{#body.parsed}}
288
- <label><input type="checkbox" onclick='show_raw_data(this.parentNode.parentNode.querySelector(".previewcode"), this.checked, {{body.raw_text}}, {{body.parsed_text}});'>Raw data</label>
308
+ <label><input type="checkbox" name="ckrawdata" onclick='show_raw_data(this.parentNode.parentNode.querySelector(".previewcode"), this.checked, {{body.raw_text}}, {{body.parsed_text}});'>Raw data</label>
289
309
  <pre class="previewcode">{{body.parsed}}</pre>
290
310
  {{/body.parsed}}
291
311
  {{^body.parsed}}
@@ -13,6 +13,18 @@ let httpdbgApp = {
13
13
  "param": "hn",
14
14
  "css": ".netloc {display: none;}",
15
15
  "value": false
16
+ },
17
+ "details_wrap_default": {
18
+ "checkbox": "cwrap",
19
+ "param": "wl",
20
+ "elt_name": "ckwraptext",
21
+ "value": false
22
+ },
23
+ "details_raw_default": {
24
+ "checkbox": "craw",
25
+ "param": "rd",
26
+ "elt_name": "ckrawdata",
27
+ "value": false
16
28
  }
17
29
  }
18
30
  }
@@ -71,7 +83,7 @@ window.addEventListener('keydown', (event) => {
71
83
  select_first_request();
72
84
  }
73
85
 
74
- if (keys_history.endsWith("ll")) {
86
+ if (keys_history.endsWith("ll")) {
75
87
  select_last_request();
76
88
  }
77
89
 
@@ -165,6 +165,8 @@ function fill_content(request_id, name) {
165
165
  update_with_template("template_exception", document.querySelector("#exception > div[name='" + name + "']"), req);
166
166
 
167
167
  update_with_template("template_stack", document.querySelector("#stack > div[name='" + name + "']"), req);
168
+
169
+ apply_config();
168
170
  }
169
171
 
170
172
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: httpdbg
3
- Version: 0.17.3
3
+ Version: 0.18.1
4
4
  Summary: A very simple tool to debug HTTP(S) client requests
5
5
  Author-email: cle-b <cle@tictac.pm>
6
6
  License: Apache-2.0
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