httpdbg 1.2.5__tar.gz → 1.2.6__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 (92) hide show
  1. {httpdbg-1.2.5 → httpdbg-1.2.6}/PKG-INFO +2 -3
  2. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/__init__.py +1 -1
  3. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/records.py +11 -0
  4. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/api.py +2 -0
  5. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/index.htm +1 -1
  6. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg.egg-info/PKG-INFO +2 -3
  7. {httpdbg-1.2.5 → httpdbg-1.2.6}/pyproject.toml +1 -2
  8. {httpdbg-1.2.5 → httpdbg-1.2.6}/LICENSE +0 -0
  9. {httpdbg-1.2.5 → httpdbg-1.2.6}/README.md +0 -0
  10. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/__main__.py +0 -0
  11. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/args.py +0 -0
  12. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/env.py +0 -0
  13. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/exception.py +0 -0
  14. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/__init__.py +0 -0
  15. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/aiohttp.py +0 -0
  16. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/all.py +0 -0
  17. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/external.py +0 -0
  18. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/fastapi.py +0 -0
  19. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/flask.py +0 -0
  20. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/generic.py +0 -0
  21. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/http.py +0 -0
  22. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/httpx.py +0 -0
  23. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/pytest.py +0 -0
  24. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/requests.py +0 -0
  25. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/socket.py +0 -0
  26. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/starlette.py +0 -0
  27. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/template_sitecustomize.py +0 -0
  28. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/unittest.py +0 -0
  29. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/urllib3.py +0 -0
  30. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/utils.py +0 -0
  31. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/hooks/uvicorn.py +0 -0
  32. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/initiator.py +0 -0
  33. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/log.py +0 -0
  34. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/mode_console.py +0 -0
  35. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/mode_module.py +0 -0
  36. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/mode_script.py +0 -0
  37. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/preview.py +0 -0
  38. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/server.py +0 -0
  39. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/utils.py +0 -0
  40. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/__init__.py +0 -0
  41. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/app.py +0 -0
  42. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/api.js +0 -0
  43. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/column.css +0 -0
  44. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/configuration.css +0 -0
  45. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/configuration.js +0 -0
  46. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/detail.css +0 -0
  47. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/favicon.ico +0 -0
  48. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/filter.js +0 -0
  49. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/icons/chevron-direction-top-outline-icon.svg +0 -0
  50. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/icons/download-install-line-icon.svg +0 -0
  51. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/icons/engine-gears-icon.svg +0 -0
  52. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/icons/eye-blind-icon.svg +0 -0
  53. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/icons/eye-icon.svg +0 -0
  54. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/icons/files-papers-outline-icon.svg +0 -0
  55. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/icons/filter-outline-icon.svg +0 -0
  56. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/icons/information-mark-circle-outline-icon.svg +0 -0
  57. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/icons/lock-line-icon.svg +0 -0
  58. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/icons/lock-open-line-icon.svg +0 -0
  59. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/icons/math-multiplication-icon.svg +0 -0
  60. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/icons/push-pin-green-icon.svg +0 -0
  61. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/icons/question-mark-round-line-icon.svg +0 -0
  62. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/icons/recycle-bin-line-icon.svg +0 -0
  63. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/icons/wait-sandclock-icon.svg +0 -0
  64. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/main.js +0 -0
  65. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/mustache.min.js +0 -0
  66. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/render.js +0 -0
  67. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/style.css +0 -0
  68. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg/webapp/static/table.css +0 -0
  69. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg.egg-info/SOURCES.txt +0 -0
  70. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg.egg-info/dependency_links.txt +0 -0
  71. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg.egg-info/entry_points.txt +0 -0
  72. {httpdbg-1.2.5 → httpdbg-1.2.6}/httpdbg.egg-info/top_level.txt +0 -0
  73. {httpdbg-1.2.5 → httpdbg-1.2.6}/setup.cfg +0 -0
  74. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_api.py +0 -0
  75. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_cli.py +0 -0
  76. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_context_manager.py +0 -0
  77. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_hook_aiohttp.py +0 -0
  78. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_hook_httpx.py +0 -0
  79. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_hook_pytest.py +0 -0
  80. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_hook_requests.py +0 -0
  81. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_hook_unittest.py +0 -0
  82. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_hook_urllib3.py +0 -0
  83. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_initiator.py +0 -0
  84. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_mode_console.py +0 -0
  85. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_mode_module_pytest.py +0 -0
  86. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_mode_script.py +0 -0
  87. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_multiprocess.py +0 -0
  88. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_preview.py +0 -0
  89. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_pyhttpdbg_server.py +0 -0
  90. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_server.py +0 -0
  91. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_server_hook_fastapi.py +0 -0
  92. {httpdbg-1.2.5 → httpdbg-1.2.6}/tests/test_server_hook_flask.py +0 -0
@@ -1,13 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: httpdbg
3
- Version: 1.2.5
3
+ Version: 1.2.6
4
4
  Summary: A very simple tool to debug HTTP(S) client and server requests.
5
5
  Author-email: cle-b <cle@tictac.pm>
6
6
  License: Apache-2.0
7
7
  Project-URL: Source, https://github.com/cle-b/httpdbg/
8
8
  Project-URL: Documentation, https://httpdbg.readthedocs.io/
9
- Classifier: Development Status :: 4 - Beta
10
- Classifier: Environment :: Web Environment
9
+ Classifier: Development Status :: 5 - Production/Stable
11
10
  Classifier: Intended Audience :: Developers
12
11
  Classifier: License :: OSI Approved :: Apache Software License
13
12
  Classifier: Operating System :: OS Independent
@@ -3,6 +3,6 @@ from httpdbg.hooks.all import httprecord
3
3
  from httpdbg.records import HTTPRecords
4
4
 
5
5
 
6
- __version__ = "1.2.5"
6
+ __version__ = "1.2.6"
7
7
 
8
8
  __all__ = ["httprecord", "HTTPRecords"]
@@ -229,6 +229,7 @@ class HTTPRecord:
229
229
  self.is_client: bool = is_client
230
230
  if tbegin:
231
231
  self.tbegin = tbegin
232
+ self.http100: bool = False
232
233
 
233
234
  @property
234
235
  def url(self) -> str:
@@ -298,6 +299,16 @@ class HTTPRecord:
298
299
  def receive_data(self, data: bytes):
299
300
  if self.is_client:
300
301
  self.response.rawdata += data
302
+ if self.response.rawdata.lower() in {
303
+ b"http/1.1 100 continue\r\n\r\n",
304
+ b"http/1.0 100 continue\r\n\r\n",
305
+ }:
306
+ # in case we receive an HTTP 100 code, we do not record it as the final HTTP response headers
307
+ # but we keep the information to display it in the UI
308
+ self.http100 = True
309
+ self.response.rawdata = (
310
+ bytes()
311
+ ) # very important to have the HTTP request body recorded.
301
312
  else:
302
313
  self.request.rawdata += data
303
314
 
@@ -18,6 +18,7 @@ class RequestPayload(JSONEncoder):
18
18
  "urlext": req.urlext,
19
19
  "method": req.method,
20
20
  "status_code": req.status_code,
21
+ "http100": req.http100,
21
22
  "reason": req.reason,
22
23
  "request": None,
23
24
  "response": None,
@@ -90,6 +91,7 @@ class RequestListPayload(JSONEncoder):
90
91
  "netloc": req.netloc,
91
92
  "urlext": req.urlext,
92
93
  "status_code": req.status_code,
94
+ "http100": req.http100,
93
95
  "protocol": req.protocol,
94
96
  "reason": req.reason,
95
97
  "verb": req.method,
@@ -274,7 +274,7 @@
274
274
  <b>{{ method }}</b> <a href="{{ url }}">{{ url }}</a>
275
275
  <hr>
276
276
  <span class="header-cookie-key">status:</span>
277
- <span class="header-cookie-value">{{ status_code }} {{ reason }}</span>
277
+ <span class="header-cookie-value">{{ status_code }} {{ reason }} {{#http100}}(after 100 Continue){{/http100}}</span>
278
278
  <br>
279
279
  {{#protocol}}
280
280
  <span class="header-cookie-key">protocol:</span>
@@ -1,13 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: httpdbg
3
- Version: 1.2.5
3
+ Version: 1.2.6
4
4
  Summary: A very simple tool to debug HTTP(S) client and server requests.
5
5
  Author-email: cle-b <cle@tictac.pm>
6
6
  License: Apache-2.0
7
7
  Project-URL: Source, https://github.com/cle-b/httpdbg/
8
8
  Project-URL: Documentation, https://httpdbg.readthedocs.io/
9
- Classifier: Development Status :: 4 - Beta
10
- Classifier: Environment :: Web Environment
9
+ Classifier: Development Status :: 5 - Production/Stable
11
10
  Classifier: Intended Audience :: Developers
12
11
  Classifier: License :: OSI Approved :: Apache Software License
13
12
  Classifier: Operating System :: OS Independent
@@ -12,8 +12,7 @@ readme="README.md"
12
12
  requires-python = ">=3.9"
13
13
  license = {text = "Apache-2.0"}
14
14
  classifiers = [
15
- "Development Status :: 4 - Beta",
16
- "Environment :: Web Environment",
15
+ "Development Status :: 5 - Production/Stable",
17
16
  "Intended Audience :: Developers",
18
17
  "License :: OSI Approved :: Apache Software License",
19
18
  "Operating System :: OS Independent",
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