ccflow-http 0.0.0__tar.gz → 0.1.0__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.
- ccflow_http-0.1.0/.gitignore +157 -0
- {ccflow_http-0.0.0 → ccflow_http-0.1.0}/LICENSE +1 -1
- ccflow_http-0.1.0/PKG-INFO +74 -0
- ccflow_http-0.1.0/README.md +33 -0
- ccflow_http-0.1.0/ccflow_http/__init__.py +3 -0
- ccflow_http-0.1.0/ccflow_http/base.py +542 -0
- ccflow_http-0.1.0/ccflow_http/tests/test_all.py +5 -0
- ccflow_http-0.1.0/ccflow_http/tests/test_model.py +524 -0
- ccflow_http-0.1.0/pyproject.toml +150 -0
- ccflow_http-0.0.0/PKG-INFO +0 -225
- ccflow_http-0.0.0/README.md +0 -1
- ccflow_http-0.0.0/ccflow_http.egg-info/PKG-INFO +0 -225
- ccflow_http-0.0.0/ccflow_http.egg-info/SOURCES.txt +0 -8
- ccflow_http-0.0.0/ccflow_http.egg-info/dependency_links.txt +0 -1
- ccflow_http-0.0.0/ccflow_http.egg-info/top_level.txt +0 -1
- ccflow_http-0.0.0/pyproject.toml +0 -29
- ccflow_http-0.0.0/setup.cfg +0 -4
- ccflow_http-0.0.0/setup.py +0 -1
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.a
|
|
8
|
+
*.o
|
|
9
|
+
*.dSYM
|
|
10
|
+
*.so
|
|
11
|
+
*.obj
|
|
12
|
+
*.dll
|
|
13
|
+
*.exp
|
|
14
|
+
*.lib
|
|
15
|
+
|
|
16
|
+
# Rust
|
|
17
|
+
target
|
|
18
|
+
target-capi
|
|
19
|
+
|
|
20
|
+
# Distribution / packaging
|
|
21
|
+
.Python
|
|
22
|
+
build/
|
|
23
|
+
develop-eggs/
|
|
24
|
+
dist/
|
|
25
|
+
downloads/
|
|
26
|
+
eggs/
|
|
27
|
+
.eggs/
|
|
28
|
+
lib/
|
|
29
|
+
lib64/
|
|
30
|
+
parts/
|
|
31
|
+
sdist/
|
|
32
|
+
var/
|
|
33
|
+
wheels/
|
|
34
|
+
pip-wheel-metadata/
|
|
35
|
+
share/python-wheels/
|
|
36
|
+
*.egg-info/
|
|
37
|
+
.installed.cfg
|
|
38
|
+
*.egg
|
|
39
|
+
MANIFEST
|
|
40
|
+
|
|
41
|
+
# PyInstaller
|
|
42
|
+
*.manifest
|
|
43
|
+
*.spec
|
|
44
|
+
|
|
45
|
+
# Installer logs
|
|
46
|
+
pip-log.txt
|
|
47
|
+
pip-delete-this-directory.txt
|
|
48
|
+
|
|
49
|
+
# Unit test / coverage reports
|
|
50
|
+
htmlcov/
|
|
51
|
+
.tox/
|
|
52
|
+
.nox/
|
|
53
|
+
.coverage
|
|
54
|
+
.coverage.*
|
|
55
|
+
.cache
|
|
56
|
+
nosetests.xml
|
|
57
|
+
coverage.xml
|
|
58
|
+
junit.xml
|
|
59
|
+
*.cover
|
|
60
|
+
*.py,cover
|
|
61
|
+
.hypothesis/
|
|
62
|
+
.pytest_cache/
|
|
63
|
+
|
|
64
|
+
# Django
|
|
65
|
+
*.log
|
|
66
|
+
local_settings.py
|
|
67
|
+
db.sqlite3
|
|
68
|
+
db.sqlite3-journal
|
|
69
|
+
|
|
70
|
+
# IPython
|
|
71
|
+
profile_default/
|
|
72
|
+
ipython_config.py
|
|
73
|
+
|
|
74
|
+
# pyenv
|
|
75
|
+
.python-version
|
|
76
|
+
|
|
77
|
+
# pipenv
|
|
78
|
+
Pipfile.lock
|
|
79
|
+
|
|
80
|
+
# Celery
|
|
81
|
+
celerybeat-schedule
|
|
82
|
+
celerybeat.pid
|
|
83
|
+
|
|
84
|
+
# Airspeed Velocity
|
|
85
|
+
.asv
|
|
86
|
+
|
|
87
|
+
# Environments
|
|
88
|
+
.env
|
|
89
|
+
.venv
|
|
90
|
+
env/
|
|
91
|
+
venv/
|
|
92
|
+
ENV/
|
|
93
|
+
env.bak/
|
|
94
|
+
venv.bak/
|
|
95
|
+
|
|
96
|
+
# Spyder project settings
|
|
97
|
+
.spyderproject
|
|
98
|
+
.spyproject
|
|
99
|
+
|
|
100
|
+
# Rope project settings
|
|
101
|
+
.ropeproject
|
|
102
|
+
|
|
103
|
+
# mkdocs documentation
|
|
104
|
+
/site
|
|
105
|
+
|
|
106
|
+
# mypy
|
|
107
|
+
.mypy_cache/
|
|
108
|
+
.dmypy.json
|
|
109
|
+
dmypy.json
|
|
110
|
+
|
|
111
|
+
# Pyre type checker
|
|
112
|
+
.pyre/
|
|
113
|
+
|
|
114
|
+
# Documentation
|
|
115
|
+
/site
|
|
116
|
+
index.md
|
|
117
|
+
docs/_build/
|
|
118
|
+
docs/api
|
|
119
|
+
docs/html
|
|
120
|
+
docs/index.md
|
|
121
|
+
docs/jupyter_execute
|
|
122
|
+
docs/src/_build/
|
|
123
|
+
docs/superpowers
|
|
124
|
+
index.md
|
|
125
|
+
|
|
126
|
+
# JS
|
|
127
|
+
js/coverage
|
|
128
|
+
js/dist
|
|
129
|
+
js/lib
|
|
130
|
+
js/node_modules
|
|
131
|
+
js/test-results
|
|
132
|
+
js/playwright-report
|
|
133
|
+
js/*.tgz
|
|
134
|
+
|
|
135
|
+
# Jupyter
|
|
136
|
+
.ipynb_checkpoints
|
|
137
|
+
.autoversion
|
|
138
|
+
Untitled*.ipynb
|
|
139
|
+
ccflow_http/extension
|
|
140
|
+
ccflow_http/nbextension
|
|
141
|
+
ccflow_http/labextension
|
|
142
|
+
|
|
143
|
+
# Emscripten SDK (locally installed)
|
|
144
|
+
emsdk
|
|
145
|
+
|
|
146
|
+
# Mac
|
|
147
|
+
.DS_Store
|
|
148
|
+
|
|
149
|
+
# Hydra
|
|
150
|
+
outputs/
|
|
151
|
+
multirun/
|
|
152
|
+
|
|
153
|
+
# AI
|
|
154
|
+
ROADMAP.md
|
|
155
|
+
AGENTS.md
|
|
156
|
+
.github/hooks/sdlc.json
|
|
157
|
+
.superpowers
|
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
|
187
187
|
identification within third-party archives.
|
|
188
188
|
|
|
189
|
-
Copyright 2025
|
|
189
|
+
Copyright 2025 1kbgz
|
|
190
190
|
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
192
|
you may not use this file except in compliance with the License.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ccflow-http
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: ccflow models for HTTP
|
|
5
|
+
Project-URL: Repository, https://github.com/1kbgz/ccflow-http
|
|
6
|
+
Project-URL: Homepage, https://github.com/1kbgz/ccflow-http
|
|
7
|
+
Author-email: 1kbgz <dev@1kbgz.com>
|
|
8
|
+
License: Apache-2.0
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Programming Language :: Python
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
18
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
19
|
+
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
20
|
+
Requires-Python: >=3.10
|
|
21
|
+
Requires-Dist: ccflow-etl>=0.1.0
|
|
22
|
+
Requires-Dist: ccflow>=0.8.5
|
|
23
|
+
Requires-Dist: httpx
|
|
24
|
+
Requires-Dist: jinja2
|
|
25
|
+
Provides-Extra: develop
|
|
26
|
+
Requires-Dist: build; extra == 'develop'
|
|
27
|
+
Requires-Dist: bump-my-version; extra == 'develop'
|
|
28
|
+
Requires-Dist: check-dist; extra == 'develop'
|
|
29
|
+
Requires-Dist: codespell; extra == 'develop'
|
|
30
|
+
Requires-Dist: hatchling; extra == 'develop'
|
|
31
|
+
Requires-Dist: mdformat; extra == 'develop'
|
|
32
|
+
Requires-Dist: mdformat-tables>=1; extra == 'develop'
|
|
33
|
+
Requires-Dist: pytest; extra == 'develop'
|
|
34
|
+
Requires-Dist: pytest-cov; extra == 'develop'
|
|
35
|
+
Requires-Dist: ruff; extra == 'develop'
|
|
36
|
+
Requires-Dist: twine; extra == 'develop'
|
|
37
|
+
Requires-Dist: ty; extra == 'develop'
|
|
38
|
+
Requires-Dist: uv; extra == 'develop'
|
|
39
|
+
Requires-Dist: wheel; extra == 'develop'
|
|
40
|
+
Description-Content-Type: text/markdown
|
|
41
|
+
|
|
42
|
+
# ccflow-http
|
|
43
|
+
|
|
44
|
+
ccflow models for HTTP
|
|
45
|
+
|
|
46
|
+
[](https://github.com/1kbgz/ccflow-http/actions/workflows/build.yaml)
|
|
47
|
+
[](https://codecov.io/gh/1kbgz/ccflow-http)
|
|
48
|
+
[](https://github.com/1kbgz/ccflow-http)
|
|
49
|
+
[](https://pypi.python.org/pypi/ccflow-http)
|
|
50
|
+
|
|
51
|
+
## Overview
|
|
52
|
+
|
|
53
|
+
`ccflow-http` provides public, domain-neutral HTTP callable models for `ccflow` workflows. It should own request configuration, auth strategies, request templating, pagination, response parsing, timeout handling, retry/rate-limit integration, and HTTP result metadata.
|
|
54
|
+
|
|
55
|
+
It should not contain provider-specific endpoint catalogs. Domain packages can configure or subclass these generic models for particular APIs.
|
|
56
|
+
|
|
57
|
+
## Current Status
|
|
58
|
+
|
|
59
|
+
- Implemented: `HTTPConfig`, `HTTPAuth`, `HTTPContext`, `HTTPRequestContext`, `HTTPRequest`, `HTTPRetryPolicy`, `HTTPResponseResult`, compatibility `HTTPResult`, `HTTPModel`, templated path/query/header rendering, request explanation through `build_request`, no-auth/bearer/API-key/basic auth helpers, JSON/text/bytes/CSV/gzip response parsing, HTTP status retry classification over `ccflow` retry semantics, retry event summaries on HTTP results, `ccflow-etl` `ExecutionPolicy` request spacing, `next_url`/cursor/page/offset pagination, rate-limit header capture, and mocked `httpx` transport tests.
|
|
60
|
+
- Partial: the shared execution policy is currently consumed inside `HTTPModel` for sequential request spacing; broader evaluator-level concurrency coordination still belongs in evaluator integrations.
|
|
61
|
+
- Missing: broader integration examples and provider-specific subclasses/configs in downstream packages.
|
|
62
|
+
|
|
63
|
+
## Dependency Contract
|
|
64
|
+
|
|
65
|
+
- Depends on `ccflow` for callable model, context, and result interfaces.
|
|
66
|
+
- Depends on `ccflow` retry policy semantics and `ccflow-etl` execution policy models.
|
|
67
|
+
- Must not depend on finance packages or application-specific packages.
|
|
68
|
+
|
|
69
|
+
## Test Convention
|
|
70
|
+
|
|
71
|
+
Default tests should use mocked `httpx` transports or local fixtures. They should not require live network calls or provider credentials.
|
|
72
|
+
|
|
73
|
+
> [!NOTE]
|
|
74
|
+
> This library was generated using [copier](https://copier.readthedocs.io/en/stable/) from the [Base Python Project Template repository](https://github.com/python-project-templates/base).
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# ccflow-http
|
|
2
|
+
|
|
3
|
+
ccflow models for HTTP
|
|
4
|
+
|
|
5
|
+
[](https://github.com/1kbgz/ccflow-http/actions/workflows/build.yaml)
|
|
6
|
+
[](https://codecov.io/gh/1kbgz/ccflow-http)
|
|
7
|
+
[](https://github.com/1kbgz/ccflow-http)
|
|
8
|
+
[](https://pypi.python.org/pypi/ccflow-http)
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
`ccflow-http` provides public, domain-neutral HTTP callable models for `ccflow` workflows. It should own request configuration, auth strategies, request templating, pagination, response parsing, timeout handling, retry/rate-limit integration, and HTTP result metadata.
|
|
13
|
+
|
|
14
|
+
It should not contain provider-specific endpoint catalogs. Domain packages can configure or subclass these generic models for particular APIs.
|
|
15
|
+
|
|
16
|
+
## Current Status
|
|
17
|
+
|
|
18
|
+
- Implemented: `HTTPConfig`, `HTTPAuth`, `HTTPContext`, `HTTPRequestContext`, `HTTPRequest`, `HTTPRetryPolicy`, `HTTPResponseResult`, compatibility `HTTPResult`, `HTTPModel`, templated path/query/header rendering, request explanation through `build_request`, no-auth/bearer/API-key/basic auth helpers, JSON/text/bytes/CSV/gzip response parsing, HTTP status retry classification over `ccflow` retry semantics, retry event summaries on HTTP results, `ccflow-etl` `ExecutionPolicy` request spacing, `next_url`/cursor/page/offset pagination, rate-limit header capture, and mocked `httpx` transport tests.
|
|
19
|
+
- Partial: the shared execution policy is currently consumed inside `HTTPModel` for sequential request spacing; broader evaluator-level concurrency coordination still belongs in evaluator integrations.
|
|
20
|
+
- Missing: broader integration examples and provider-specific subclasses/configs in downstream packages.
|
|
21
|
+
|
|
22
|
+
## Dependency Contract
|
|
23
|
+
|
|
24
|
+
- Depends on `ccflow` for callable model, context, and result interfaces.
|
|
25
|
+
- Depends on `ccflow` retry policy semantics and `ccflow-etl` execution policy models.
|
|
26
|
+
- Must not depend on finance packages or application-specific packages.
|
|
27
|
+
|
|
28
|
+
## Test Convention
|
|
29
|
+
|
|
30
|
+
Default tests should use mocked `httpx` transports or local fixtures. They should not require live network calls or provider credentials.
|
|
31
|
+
|
|
32
|
+
> [!NOTE]
|
|
33
|
+
> This library was generated using [copier](https://copier.readthedocs.io/en/stable/) from the [Base Python Project Template repository](https://github.com/python-project-templates/base).
|