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.
- {python_multipart-0.0.13 → python_multipart-0.0.14}/CHANGELOG.md +4 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/PKG-INFO +1 -1
- {python_multipart-0.0.13 → python_multipart-0.0.14}/pyproject.toml +5 -3
- {python_multipart-0.0.13 → python_multipart-0.0.14}/python_multipart/__init__.py +1 -1
- python_multipart-0.0.13/_python_multipart.pth +0 -1
- python_multipart-0.0.13/_python_multipart_loader.py +0 -37
- {python_multipart-0.0.13 → python_multipart-0.0.14}/.gitignore +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/LICENSE.txt +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/README.md +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/python_multipart/decoders.py +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/python_multipart/exceptions.py +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/python_multipart/multipart.py +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/python_multipart/py.typed +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/__init__.py +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/compat.py +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/CRLF_in_header.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/CRLF_in_header.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/CR_in_header.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/CR_in_header.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/CR_in_header_value.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/CR_in_header_value.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary_without_CR.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary_without_CR.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary_without_LF.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary_without_LF.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary_without_final_hyphen.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary_without_final_hyphen.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_end_of_headers.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_end_of_headers.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_header_char.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_header_char.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_initial_boundary.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_initial_boundary.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/base64_encoding.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/base64_encoding.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/empty_header.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/empty_header.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/header_with_number.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/header_with_number.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/mixed_plain_and_base64_encoding.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/mixed_plain_and_base64_encoding.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/multiple_fields.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/multiple_fields.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/multiple_files.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/multiple_files.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/quoted_printable_encoding.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/quoted_printable_encoding.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_blocks.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_blocks.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_longer.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_longer.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_single_file.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_single_file.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_with_leading_newlines.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_with_leading_newlines.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_file.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_file.yaml +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/utf8_filename.http +0 -0
- {python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/utf8_filename.yaml +0 -0
- {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.
|
|
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
|
|
74
|
-
|
|
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/*"]
|
|
@@ -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()
|
|
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
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/CRLF_in_header.http
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/CRLF_in_header.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/CR_in_header_value.http
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/CR_in_header_value.yaml
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary.http
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/almost_match_boundary.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_end_of_headers.http
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_end_of_headers.yaml
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_header_char.http
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_header_char.yaml
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_initial_boundary.http
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/bad_initial_boundary.yaml
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/base64_encoding.http
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/base64_encoding.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/header_with_number.http
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/header_with_number.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/multiple_fields.http
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/multiple_fields.yaml
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/multiple_files.http
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/multiple_files.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_blocks.http
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_blocks.yaml
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_longer.http
RENAMED
|
File without changes
|
{python_multipart-0.0.13 → python_multipart-0.0.14}/tests/test_data/http/single_field_longer.yaml
RENAMED
|
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
|