python-multipart 0.0.13__tar.gz → 0.0.14__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 (64) hide show
  1. {python_multipart-0.0.13 → python_multipart-0.0.14}/CHANGELOG.md +4 -0
  2. {python_multipart-0.0.13 → python_multipart-0.0.14}/PKG-INFO +1 -1
  3. {python_multipart-0.0.13 → python_multipart-0.0.14}/pyproject.toml +5 -3
  4. {python_multipart-0.0.13 → python_multipart-0.0.14}/python_multipart/__init__.py +1 -1
  5. python_multipart-0.0.13/_python_multipart.pth +0 -1
  6. python_multipart-0.0.13/_python_multipart_loader.py +0 -37
  7. {python_multipart-0.0.13 → python_multipart-0.0.14}/.gitignore +0 -0
  8. {python_multipart-0.0.13 → python_multipart-0.0.14}/LICENSE.txt +0 -0
  9. {python_multipart-0.0.13 → python_multipart-0.0.14}/README.md +0 -0
  10. {python_multipart-0.0.13 → python_multipart-0.0.14}/python_multipart/decoders.py +0 -0
  11. {python_multipart-0.0.13 → python_multipart-0.0.14}/python_multipart/exceptions.py +0 -0
  12. {python_multipart-0.0.13 → python_multipart-0.0.14}/python_multipart/multipart.py +0 -0
  13. {python_multipart-0.0.13 → python_multipart-0.0.14}/python_multipart/py.typed +0 -0
  14. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/__init__.py +0 -0
  15. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/compat.py +0 -0
  16. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/CRLF_in_header.http +0 -0
  17. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/CRLF_in_header.yaml +0 -0
  18. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/CR_in_header.http +0 -0
  19. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/CR_in_header.yaml +0 -0
  20. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/CR_in_header_value.http +0 -0
  21. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/CR_in_header_value.yaml +0 -0
  22. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary.http +0 -0
  23. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary.yaml +0 -0
  24. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary_without_CR.http +0 -0
  25. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary_without_CR.yaml +0 -0
  26. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary_without_LF.http +0 -0
  27. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary_without_LF.yaml +0 -0
  28. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary_without_final_hyphen.http +0 -0
  29. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary_without_final_hyphen.yaml +0 -0
  30. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_end_of_headers.http +0 -0
  31. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_end_of_headers.yaml +0 -0
  32. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_header_char.http +0 -0
  33. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_header_char.yaml +0 -0
  34. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_initial_boundary.http +0 -0
  35. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_initial_boundary.yaml +0 -0
  36. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/base64_encoding.http +0 -0
  37. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/base64_encoding.yaml +0 -0
  38. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/empty_header.http +0 -0
  39. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/empty_header.yaml +0 -0
  40. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/header_with_number.http +0 -0
  41. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/header_with_number.yaml +0 -0
  42. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/mixed_plain_and_base64_encoding.http +0 -0
  43. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/mixed_plain_and_base64_encoding.yaml +0 -0
  44. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/multiple_fields.http +0 -0
  45. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/multiple_fields.yaml +0 -0
  46. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/multiple_files.http +0 -0
  47. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/multiple_files.yaml +0 -0
  48. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/quoted_printable_encoding.http +0 -0
  49. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/quoted_printable_encoding.yaml +0 -0
  50. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field.http +0 -0
  51. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field.yaml +0 -0
  52. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_blocks.http +0 -0
  53. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_blocks.yaml +0 -0
  54. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_longer.http +0 -0
  55. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_longer.yaml +0 -0
  56. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_single_file.http +0 -0
  57. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_single_file.yaml +0 -0
  58. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_with_leading_newlines.http +0 -0
  59. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_with_leading_newlines.yaml +0 -0
  60. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_file.http +0 -0
  61. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_file.yaml +0 -0
  62. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/utf8_filename.http +0 -0
  63. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/utf8_filename.yaml +0 -0
  64. {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_multipart.py +0 -0
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.0.14 (2024-10-24)
4
+
5
+ * Fix import scheme for `multipart` module ([#168](https://github.com/user/repo/issues/168)).
6
+
3
7
  ## 0.0.13 (2024-10-20)
4
8
 
5
9
  * Rename import to `python_multipart` [#166](https://github.com/Kludex/python-multipart/pull/166).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: python-multipart
3
- Version: 0.0.13
3
+ Version: 0.0.14
4
4
  Summary: A streaming multipart parser for Python
5
5
  Project-URL: Homepage, https://github.com/Kludex/python-multipart
6
6
  Project-URL: Documentation, https://kludex.github.io/python-multipart/
@@ -70,9 +70,8 @@ path = "python_multipart/__init__.py"
70
70
  [tool.hatch.build.targets.sdist]
71
71
  include = ["/python_multipart", "/tests", "CHANGELOG.md", "LICENSE.txt", "_python_multipart.pth", "_python_multipart_loader.py"]
72
72
 
73
- [tool.hatch.build.targets.wheel.force-include]
74
- "_python_multipart.pth" = "_python_multipart.pth"
75
- "_python_multipart_loader.py" = "_python_multipart_loader.py"
73
+ [tool.hatch.build.targets.wheel]
74
+ packages = ["python_multipart", "multipart"]
76
75
 
77
76
  [tool.mypy]
78
77
  strict = true
@@ -91,6 +90,9 @@ skip-magic-trailing-comma = true
91
90
  combine-as-imports = true
92
91
  split-on-trailing-comma = false
93
92
 
93
+ [tool.ruff.lint.per-file-ignores]
94
+ "multipart/*.py" = ["F403"]
95
+
94
96
  [tool.coverage.run]
95
97
  branch = false
96
98
  omit = ["tests/*"]
@@ -2,7 +2,7 @@
2
2
  __author__ = "Andrew Dunham"
3
3
  __license__ = "Apache"
4
4
  __copyright__ = "Copyright (c) 2012-2013, Andrew Dunham"
5
- __version__ = "0.0.13"
5
+ __version__ = "0.0.14"
6
6
 
7
7
  from .multipart import (
8
8
  BaseParser,
@@ -1 +0,0 @@
1
- import _python_multipart_loader
@@ -1,37 +0,0 @@
1
- from __future__ import annotations
2
-
3
- # The purpose of this file is to allow `import multipart` to continue to work
4
- # unless `multipart` (the PyPI package) is also installed, in which case
5
- # a collision is avoided, and `import multipart` is no longer injected.
6
- import importlib
7
- import importlib.abc
8
- import importlib.machinery
9
- import importlib.util
10
- import sys
11
- import warnings
12
-
13
-
14
- class PythonMultipartCompatFinder(importlib.abc.MetaPathFinder):
15
- def find_spec(
16
- self, fullname: str, path: object = None, target: object = None
17
- ) -> importlib.machinery.ModuleSpec | None:
18
- if fullname != "multipart":
19
- return None
20
- old_sys_meta_path = sys.meta_path
21
- try:
22
- sys.meta_path = [p for p in sys.meta_path if not isinstance(p, type(self))]
23
- if multipart := importlib.util.find_spec("multipart"):
24
- return multipart
25
-
26
- warnings.warn("Please use `import python_multipart` instead.", FutureWarning, stacklevel=2)
27
- sys.modules["multipart"] = importlib.import_module("python_multipart")
28
- return importlib.util.find_spec("python_multipart")
29
- finally:
30
- sys.meta_path = old_sys_meta_path
31
-
32
-
33
- def install() -> None:
34
- sys.meta_path.insert(0, PythonMultipartCompatFinder())
35
-
36
-
37
- install()