matchapi 0.2.0__tar.gz → 0.2.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.
- {matchapi-0.2.0 → matchapi-0.2.1}/CHANGELOG.md +9 -0
- {matchapi-0.2.0 → matchapi-0.2.1}/PKG-INFO +10 -3
- {matchapi-0.2.0 → matchapi-0.2.1}/README.md +4 -0
- {matchapi-0.2.0 → matchapi-0.2.1}/pyproject.toml +26 -3
- {matchapi-0.2.0 → matchapi-0.2.1}/.gitignore +0 -0
- {matchapi-0.2.0 → matchapi-0.2.1}/CONTEXT.md +0 -0
- {matchapi-0.2.0 → matchapi-0.2.1}/LICENSE +0 -0
- {matchapi-0.2.0 → matchapi-0.2.1}/bench/README.md +0 -0
- {matchapi-0.2.0 → matchapi-0.2.1}/bench/bare.py +0 -0
- {matchapi-0.2.0 → matchapi-0.2.1}/bench/bare_body.py +0 -0
- {matchapi-0.2.0 → matchapi-0.2.1}/bench/run.py +0 -0
- {matchapi-0.2.0 → matchapi-0.2.1}/bench/service.py +0 -0
- {matchapi-0.2.0 → matchapi-0.2.1}/bench/service_asgi.py +0 -0
- {matchapi-0.2.0 → matchapi-0.2.1}/docs/design.md +0 -0
- {matchapi-0.2.0 → matchapi-0.2.1}/src/matchapi/__init__.py +0 -0
- {matchapi-0.2.0 → matchapi-0.2.1}/src/matchapi/py.typed +0 -0
- {matchapi-0.2.0 → matchapi-0.2.1}/tests/sample.py +0 -0
- {matchapi-0.2.0 → matchapi-0.2.1}/tests/test_matchapi.py +0 -0
|
@@ -6,6 +6,15 @@ and the project adheres to [Semantic Versioning](https://semver.org/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.2.1] - 2026-10-12
|
|
10
|
+
|
|
11
|
+
Package metadata only; the code is unchanged.
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- The PyPI description, keywords and classifiers name granian and RSGI, so the package is found by the stack it
|
|
16
|
+
runs on. The README opens with the same line.
|
|
17
|
+
|
|
9
18
|
## [0.2.0] - 2026-10-12
|
|
10
19
|
|
|
11
20
|
The handler is decorated and granian serves it. The framework loses its command line and its ASGI adapter;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: matchapi
|
|
3
|
-
Version: 0.2.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.2.1
|
|
4
|
+
Summary: One-function HTTP framework for granian over RSGI: match replaces the router
|
|
5
5
|
Project-URL: Homepage, https://github.com/troyan-dy/matchapi
|
|
6
6
|
Project-URL: Repository, https://github.com/troyan-dy/matchapi
|
|
7
7
|
Project-URL: Issues, https://github.com/troyan-dy/matchapi/issues
|
|
@@ -9,8 +9,9 @@ Project-URL: Changelog, https://github.com/troyan-dy/matchapi/blob/master/CHANGE
|
|
|
9
9
|
Author: Dmitriy Troyan
|
|
10
10
|
License-Expression: MIT
|
|
11
11
|
License-File: LICENSE
|
|
12
|
-
Keywords: framework,granian,http,match,microservice,pattern-matching,rsgi,web,webhook
|
|
12
|
+
Keywords: api,async,asyncio,framework,granian,http,json,match,microframework,microservice,pattern-matching,rest,rsgi,rust,single-file,structural-pattern-matching,web,web-framework,webhook
|
|
13
13
|
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Environment :: Web Environment
|
|
14
15
|
Classifier: Framework :: AsyncIO
|
|
15
16
|
Classifier: Intended Audience :: Developers
|
|
16
17
|
Classifier: Operating System :: OS Independent
|
|
@@ -20,6 +21,8 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
20
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
22
|
Classifier: Programming Language :: Python :: 3.13
|
|
22
23
|
Classifier: Programming Language :: Python :: 3.14
|
|
24
|
+
Classifier: Topic :: Internet :: WWW/HTTP
|
|
25
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
|
23
26
|
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
|
|
24
27
|
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
25
28
|
Classifier: Typing :: Typed
|
|
@@ -36,6 +39,10 @@ Description-Content-Type: text/markdown
|
|
|
36
39
|
|
|
37
40
|
An HTTP service is one function. `match` replaces the router.
|
|
38
41
|
|
|
42
|
+
A one-file Python web framework for [granian](https://github.com/emmett-framework/granian) over
|
|
43
|
+
[RSGI](https://github.com/emmett-framework/granian/blob/master/docs/spec/RSGI.md), granian's native Rust-backed
|
|
44
|
+
interface: no router, no middleware, no ASGI adapter. Python 3.11+.
|
|
45
|
+
|
|
39
46
|
```python
|
|
40
47
|
# app.py
|
|
41
48
|
import matchapi
|
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
|
|
8
8
|
An HTTP service is one function. `match` replaces the router.
|
|
9
9
|
|
|
10
|
+
A one-file Python web framework for [granian](https://github.com/emmett-framework/granian) over
|
|
11
|
+
[RSGI](https://github.com/emmett-framework/granian/blob/master/docs/spec/RSGI.md), granian's native Rust-backed
|
|
12
|
+
interface: no router, no middleware, no ASGI adapter. Python 3.11+.
|
|
13
|
+
|
|
10
14
|
```python
|
|
11
15
|
# app.py
|
|
12
16
|
import matchapi
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "matchapi"
|
|
3
|
-
version = "0.2.
|
|
4
|
-
description = "
|
|
3
|
+
version = "0.2.1"
|
|
4
|
+
description = "One-function HTTP framework for granian over RSGI: match replaces the router"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "MIT"
|
|
7
7
|
license-files = ["LICENSE"]
|
|
@@ -10,9 +10,30 @@ requires-python = ">=3.11"
|
|
|
10
10
|
dependencies = [
|
|
11
11
|
"granian>=2.8",
|
|
12
12
|
]
|
|
13
|
-
keywords = [
|
|
13
|
+
keywords = [
|
|
14
|
+
"http",
|
|
15
|
+
"rsgi",
|
|
16
|
+
"granian",
|
|
17
|
+
"web",
|
|
18
|
+
"framework",
|
|
19
|
+
"web-framework",
|
|
20
|
+
"microframework",
|
|
21
|
+
"async",
|
|
22
|
+
"asyncio",
|
|
23
|
+
"api",
|
|
24
|
+
"rest",
|
|
25
|
+
"json",
|
|
26
|
+
"match",
|
|
27
|
+
"pattern-matching",
|
|
28
|
+
"structural-pattern-matching",
|
|
29
|
+
"microservice",
|
|
30
|
+
"webhook",
|
|
31
|
+
"single-file",
|
|
32
|
+
"rust",
|
|
33
|
+
]
|
|
14
34
|
classifiers = [
|
|
15
35
|
"Development Status :: 3 - Alpha",
|
|
36
|
+
"Environment :: Web Environment",
|
|
16
37
|
"Framework :: AsyncIO",
|
|
17
38
|
"Intended Audience :: Developers",
|
|
18
39
|
"Operating System :: OS Independent",
|
|
@@ -22,6 +43,8 @@ classifiers = [
|
|
|
22
43
|
"Programming Language :: Python :: 3.12",
|
|
23
44
|
"Programming Language :: Python :: 3.13",
|
|
24
45
|
"Programming Language :: Python :: 3.14",
|
|
46
|
+
"Topic :: Internet :: WWW/HTTP",
|
|
47
|
+
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
|
|
25
48
|
"Topic :: Internet :: WWW/HTTP :: HTTP Servers",
|
|
26
49
|
"Topic :: Software Development :: Libraries :: Application Frameworks",
|
|
27
50
|
"Typing :: Typed",
|
|
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
|