python-multipart 0.0.14__tar.gz → 0.0.16__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.14 → python_multipart-0.0.16}/CHANGELOG.md +10 -1
- {python_multipart-0.0.14 → python_multipart-0.0.16}/PKG-INFO +1 -1
- python_multipart-0.0.16/multipart/__init__.py +21 -0
- python_multipart-0.0.16/multipart/decoders.py +1 -0
- python_multipart-0.0.16/multipart/exceptions.py +1 -0
- python_multipart-0.0.16/multipart/multipart.py +1 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/pyproject.toml +11 -1
- {python_multipart-0.0.14 → python_multipart-0.0.16}/python_multipart/__init__.py +1 -1
- {python_multipart-0.0.14 → python_multipart-0.0.16}/.gitignore +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/LICENSE.txt +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/README.md +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/python_multipart/decoders.py +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/python_multipart/exceptions.py +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/python_multipart/multipart.py +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/python_multipart/py.typed +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/__init__.py +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/compat.py +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/CRLF_in_header.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/CRLF_in_header.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/CR_in_header.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/CR_in_header.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/CR_in_header_value.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/CR_in_header_value.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/almost_match_boundary.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/almost_match_boundary.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/almost_match_boundary_without_CR.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/almost_match_boundary_without_CR.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/almost_match_boundary_without_LF.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/almost_match_boundary_without_LF.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/almost_match_boundary_without_final_hyphen.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/almost_match_boundary_without_final_hyphen.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/bad_end_of_headers.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/bad_end_of_headers.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/bad_header_char.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/bad_header_char.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/bad_initial_boundary.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/bad_initial_boundary.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/base64_encoding.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/base64_encoding.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/empty_header.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/empty_header.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/header_with_number.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/header_with_number.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/mixed_plain_and_base64_encoding.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/mixed_plain_and_base64_encoding.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/multiple_fields.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/multiple_fields.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/multiple_files.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/multiple_files.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/quoted_printable_encoding.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/quoted_printable_encoding.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/single_field.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/single_field.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/single_field_blocks.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/single_field_blocks.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/single_field_longer.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/single_field_longer.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/single_field_single_file.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/single_field_single_file.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/single_field_with_leading_newlines.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/single_field_with_leading_newlines.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/single_file.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/single_file.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/utf8_filename.http +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/utf8_filename.yaml +0 -0
- {python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_multipart.py +0 -0
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.0.16 (2024-10-27)
|
|
4
|
+
|
|
5
|
+
* Add dunder attributes to `multipart` package [#177](https://github.com/Kludex/python-multipart/pull/177).
|
|
6
|
+
|
|
7
|
+
## 0.0.15 (2024-10-27)
|
|
8
|
+
|
|
9
|
+
* Replace `FutureWarning` to `PendingDeprecationWarning` [#174](https://github.com/Kludex/python-multipart/pull/174).
|
|
10
|
+
* Add missing files to SDist [#171](https://github.com/Kludex/python-multipart/pull/171).
|
|
11
|
+
|
|
3
12
|
## 0.0.14 (2024-10-24)
|
|
4
13
|
|
|
5
|
-
* Fix import scheme for `multipart` module ([#168](https://github.com/
|
|
14
|
+
* Fix import scheme for `multipart` module ([#168](https://github.com/Kludex/python-multipart/pull/168)).
|
|
6
15
|
|
|
7
16
|
## 0.0.13 (2024-10-20)
|
|
8
17
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: python-multipart
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.16
|
|
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/
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# This only works if using a file system, other loaders not implemented.
|
|
2
|
+
|
|
3
|
+
import importlib.util
|
|
4
|
+
import sys
|
|
5
|
+
import warnings
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
for p in sys.path:
|
|
9
|
+
file_path = Path(p, "multipart.py")
|
|
10
|
+
if file_path.is_file():
|
|
11
|
+
spec = importlib.util.spec_from_file_location("multipart", file_path)
|
|
12
|
+
assert spec is not None, f"{file_path} found but not loadable!"
|
|
13
|
+
module = importlib.util.module_from_spec(spec)
|
|
14
|
+
sys.modules["multipart"] = module
|
|
15
|
+
assert spec.loader is not None, f"{file_path} must be loadable!"
|
|
16
|
+
spec.loader.exec_module(module)
|
|
17
|
+
break
|
|
18
|
+
else:
|
|
19
|
+
warnings.warn("Please use `import python_multipart` instead.", PendingDeprecationWarning, stacklevel=2)
|
|
20
|
+
from python_multipart import *
|
|
21
|
+
from python_multipart import __all__, __author__, __copyright__, __license__, __version__
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from python_multipart.decoders import *
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from python_multipart.exceptions import *
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from python_multipart.multipart import *
|
|
@@ -68,7 +68,13 @@ Source = "https://github.com/Kludex/python-multipart"
|
|
|
68
68
|
path = "python_multipart/__init__.py"
|
|
69
69
|
|
|
70
70
|
[tool.hatch.build.targets.sdist]
|
|
71
|
-
include = [
|
|
71
|
+
include = [
|
|
72
|
+
"/python_multipart",
|
|
73
|
+
"/multipart",
|
|
74
|
+
"/tests",
|
|
75
|
+
"CHANGELOG.md",
|
|
76
|
+
"LICENSE.txt",
|
|
77
|
+
]
|
|
72
78
|
|
|
73
79
|
[tool.hatch.build.targets.wheel]
|
|
74
80
|
packages = ["python_multipart", "multipart"]
|
|
@@ -92,6 +98,7 @@ split-on-trailing-comma = false
|
|
|
92
98
|
|
|
93
99
|
[tool.ruff.lint.per-file-ignores]
|
|
94
100
|
"multipart/*.py" = ["F403"]
|
|
101
|
+
"__init__.py" = ["F401"]
|
|
95
102
|
|
|
96
103
|
[tool.coverage.run]
|
|
97
104
|
branch = false
|
|
@@ -113,3 +120,6 @@ exclude_lines = [
|
|
|
113
120
|
"if self\\.debug:",
|
|
114
121
|
"except ImportError:",
|
|
115
122
|
]
|
|
123
|
+
|
|
124
|
+
[tool.check-sdist]
|
|
125
|
+
git-only = ["docs", "fuzz", "scripts", "mkdocs.yml", "uv.lock"]
|
|
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.14 → python_multipart-0.0.16}/tests/test_data/http/CRLF_in_header.http
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/CRLF_in_header.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/CR_in_header_value.http
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/CR_in_header_value.yaml
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/almost_match_boundary.http
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/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.14 → python_multipart-0.0.16}/tests/test_data/http/bad_end_of_headers.http
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/bad_end_of_headers.yaml
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/bad_header_char.http
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/bad_header_char.yaml
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/bad_initial_boundary.http
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/bad_initial_boundary.yaml
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/base64_encoding.http
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/base64_encoding.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/header_with_number.http
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/header_with_number.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/multiple_fields.http
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/multiple_fields.yaml
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/multiple_files.http
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/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.14 → python_multipart-0.0.16}/tests/test_data/http/single_field_blocks.http
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/single_field_blocks.yaml
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/tests/test_data/http/single_field_longer.http
RENAMED
|
File without changes
|
{python_multipart-0.0.14 → python_multipart-0.0.16}/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
|