python-hwpx-automation 6.0.3__py3-none-any.whl
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.
- hwpx_automation/__init__.py +61 -0
- hwpx_automation/__init__.pyi +27 -0
- hwpx_automation/__main__.py +8 -0
- hwpx_automation/agent_document.py +392 -0
- hwpx_automation/api.py +136 -0
- hwpx_automation/blind_eval.py +407 -0
- hwpx_automation/capabilities.py +110 -0
- hwpx_automation/compat.py +48 -0
- hwpx_automation/configuration.py +60 -0
- hwpx_automation/core/__init__.py +2 -0
- hwpx_automation/core/content.py +762 -0
- hwpx_automation/core/context.py +111 -0
- hwpx_automation/core/diff.py +53 -0
- hwpx_automation/core/document.py +37 -0
- hwpx_automation/core/formatting.py +513 -0
- hwpx_automation/core/handles.py +24 -0
- hwpx_automation/core/locations.py +205 -0
- hwpx_automation/core/locator.py +162 -0
- hwpx_automation/core/plan.py +680 -0
- hwpx_automation/core/resources.py +42 -0
- hwpx_automation/core/search.py +296 -0
- hwpx_automation/core/transactions.py +434 -0
- hwpx_automation/core/txn.py +48 -0
- hwpx_automation/document_state.py +95 -0
- hwpx_automation/errors.py +174 -0
- hwpx_automation/execution_lock.py +15 -0
- hwpx_automation/fastmcp_adapter.py +672 -0
- hwpx_automation/form_fill.py +1177 -0
- hwpx_automation/form_output_models.py +223 -0
- hwpx_automation/handlers/__init__.py +2 -0
- hwpx_automation/handlers/_shared.py +377 -0
- hwpx_automation/handlers/agent_document.py +257 -0
- hwpx_automation/handlers/authoring.py +750 -0
- hwpx_automation/handlers/content_edit.py +1078 -0
- hwpx_automation/handlers/form_fill.py +607 -0
- hwpx_automation/handlers/layout_style.py +660 -0
- hwpx_automation/handlers/quality_render.py +566 -0
- hwpx_automation/handlers/read_export.py +1295 -0
- hwpx_automation/handlers/specialized.py +624 -0
- hwpx_automation/handlers/tracked_changes.py +589 -0
- hwpx_automation/handlers/workflow.py +105 -0
- hwpx_automation/hwp_converter.py +227 -0
- hwpx_automation/hwp_support.py +94 -0
- hwpx_automation/hwpx_ops.py +1439 -0
- hwpx_automation/identity.json +263 -0
- hwpx_automation/identity.py +18 -0
- hwpx_automation/ingest_adapters.py +85 -0
- hwpx_automation/markdown_plan.py +216 -0
- hwpx_automation/mcp_cli.py +29 -0
- hwpx_automation/metadata/tools_meta.py +40 -0
- hwpx_automation/mixed_form.py +3007 -0
- hwpx_automation/mutation_models.py +401 -0
- hwpx_automation/network_policy.py +232 -0
- hwpx_automation/office/__init__.py +14 -0
- hwpx_automation/office/agent/__init__.py +125 -0
- hwpx_automation/office/agent/_batch_verification.py +383 -0
- hwpx_automation/office/agent/blueprint/__init__.py +58 -0
- hwpx_automation/office/agent/blueprint/bundle.py +282 -0
- hwpx_automation/office/agent/blueprint/catalog.py +136 -0
- hwpx_automation/office/agent/blueprint/dump.py +520 -0
- hwpx_automation/office/agent/blueprint/mapping.py +312 -0
- hwpx_automation/office/agent/blueprint/model.py +722 -0
- hwpx_automation/office/agent/blueprint/native.py +621 -0
- hwpx_automation/office/agent/blueprint/replay.py +622 -0
- hwpx_automation/office/agent/catalog.py +252 -0
- hwpx_automation/office/agent/cli.py +647 -0
- hwpx_automation/office/agent/commands.py +1383 -0
- hwpx_automation/office/agent/document.py +801 -0
- hwpx_automation/office/agent/form_plan.py +1760 -0
- hwpx_automation/office/agent/model.py +808 -0
- hwpx_automation/office/agent/path.py +155 -0
- hwpx_automation/office/agent/query.py +230 -0
- hwpx_automation/office/agent/story.py +207 -0
- hwpx_automation/office/authoring/__init__.py +3542 -0
- hwpx_automation/office/authoring/advanced_generators.py +154 -0
- hwpx_automation/office/authoring/builder/__init__.py +52 -0
- hwpx_automation/office/authoring/builder/core.py +996 -0
- hwpx_automation/office/authoring/builder/report.py +195 -0
- hwpx_automation/office/authoring/design/__init__.py +30 -0
- hwpx_automation/office/authoring/design/_support.py +144 -0
- hwpx_automation/office/authoring/design/composer.py +282 -0
- hwpx_automation/office/authoring/design/harvest.py +305 -0
- hwpx_automation/office/authoring/design/plan.py +69 -0
- hwpx_automation/office/authoring/design/profile.py +88 -0
- hwpx_automation/office/authoring/design/profiles/application_form/fragments/body.xml +1 -0
- hwpx_automation/office/authoring/design/profiles/application_form/fragments/heading.xml +1 -0
- hwpx_automation/office/authoring/design/profiles/application_form/fragments/info_table.xml +1 -0
- hwpx_automation/office/authoring/design/profiles/application_form/fragments/title.xml +1 -0
- hwpx_automation/office/authoring/design/profiles/application_form/profile.json +25 -0
- hwpx_automation/office/authoring/design/profiles/application_form/template.hwpx +0 -0
- hwpx_automation/office/authoring/design/profiles/home_notice/fragments/body.xml +1 -0
- hwpx_automation/office/authoring/design/profiles/home_notice/fragments/heading.xml +1 -0
- hwpx_automation/office/authoring/design/profiles/home_notice/fragments/title.xml +1 -0
- hwpx_automation/office/authoring/design/profiles/home_notice/profile.json +24 -0
- hwpx_automation/office/authoring/design/profiles/home_notice/template.hwpx +0 -0
- hwpx_automation/office/authoring/design/profiles/official_notice/fragments/body.xml +1 -0
- hwpx_automation/office/authoring/design/profiles/official_notice/fragments/heading.xml +1 -0
- hwpx_automation/office/authoring/design/profiles/official_notice/fragments/info_table.xml +1 -0
- hwpx_automation/office/authoring/design/profiles/official_notice/fragments/title.xml +1 -0
- hwpx_automation/office/authoring/design/profiles/official_notice/profile.json +25 -0
- hwpx_automation/office/authoring/design/profiles/official_notice/template.hwpx +0 -0
- hwpx_automation/office/authoring/design/profiles/report/fragments/body.xml +1 -0
- hwpx_automation/office/authoring/design/profiles/report/fragments/heading.xml +1 -0
- hwpx_automation/office/authoring/design/profiles/report/fragments/info_table.xml +1 -0
- hwpx_automation/office/authoring/design/profiles/report/fragments/title.xml +1 -0
- hwpx_automation/office/authoring/design/profiles/report/profile.json +25 -0
- hwpx_automation/office/authoring/design/profiles/report/template.hwpx +0 -0
- hwpx_automation/office/authoring/design/validator.py +107 -0
- hwpx_automation/office/authoring/presets/__init__.py +22 -0
- hwpx_automation/office/authoring/presets/proposal.py +538 -0
- hwpx_automation/office/authoring/report_parser.py +141 -0
- hwpx_automation/office/authoring/style_profile.py +437 -0
- hwpx_automation/office/authoring/template_analyzer.py +657 -0
- hwpx_automation/office/compliance/__init__.py +38 -0
- hwpx_automation/office/compliance/official_lint.py +478 -0
- hwpx_automation/office/compliance/pii.py +388 -0
- hwpx_automation/office/document_ops/__init__.py +13 -0
- hwpx_automation/office/document_ops/comparison.py +62 -0
- hwpx_automation/office/document_ops/mail_merge.py +73 -0
- hwpx_automation/office/document_ops/redline.py +35 -0
- hwpx_automation/office/evalplan/__init__.py +36 -0
- hwpx_automation/office/evalplan/runtime.py +2762 -0
- hwpx_automation/office/exam/__init__.py +44 -0
- hwpx_automation/office/exam/compose.py +282 -0
- hwpx_automation/office/exam/ir.py +44 -0
- hwpx_automation/office/exam/measure.py +163 -0
- hwpx_automation/office/exam/parser.py +150 -0
- hwpx_automation/office/exam/profile.py +123 -0
- hwpx_automation/office/form_fill/__init__.py +66 -0
- hwpx_automation/office/form_fill/classification.py +108 -0
- hwpx_automation/office/form_fill/fill_residue.py +242 -0
- hwpx_automation/office/form_fill/fit/__init__.py +36 -0
- hwpx_automation/office/form_fill/fit/apply.py +24 -0
- hwpx_automation/office/form_fill/fit/engine.py +24 -0
- hwpx_automation/office/form_fill/fit/measure.py +50 -0
- hwpx_automation/office/form_fill/fit/policy.py +28 -0
- hwpx_automation/office/form_fill/fit/report.py +28 -0
- hwpx_automation/office/form_fill/fit/seal.py +457 -0
- hwpx_automation/office/form_fill/fit/wordbox.py +1343 -0
- hwpx_automation/office/form_fill/guidance.py +704 -0
- hwpx_automation/office/form_fill/quality.py +961 -0
- hwpx_automation/office/form_fill/split_run.py +333 -0
- hwpx_automation/office/form_fill/template_formfit.py +656 -0
- hwpx_automation/office/house_style/__init__.py +196 -0
- hwpx_automation/office/house_style/composition.py +68 -0
- hwpx_automation/office/house_style/data/bank.json +625 -0
- hwpx_automation/office/house_style/data/genres.json +43 -0
- hwpx_automation/office/quality/__init__.py +14 -0
- hwpx_automation/office/quality/page_guard.py +277 -0
- hwpx_automation/office/rendering/__init__.py +145 -0
- hwpx_automation/office/rendering/_hancom_open_rate.ps1 +374 -0
- hwpx_automation/office/rendering/_refresh_hwpx_mac.applescript +162 -0
- hwpx_automation/office/rendering/_render_hwpx.ps1 +72 -0
- hwpx_automation/office/rendering/_render_hwpx_mac.applescript +249 -0
- hwpx_automation/office/rendering/block_splits.py +76 -0
- hwpx_automation/office/rendering/detectors.py +151 -0
- hwpx_automation/office/rendering/diff.py +153 -0
- hwpx_automation/office/rendering/fixture_corpus.py +215 -0
- hwpx_automation/office/rendering/oracle.py +909 -0
- hwpx_automation/office/rendering/page_qa.py +245 -0
- hwpx_automation/office/rendering/qa_contracts.py +293 -0
- hwpx_automation/office/rendering/qa_metrics.py +241 -0
- hwpx_automation/office/rendering/worker.py +290 -0
- hwpx_automation/office/utilities/__init__.py +12 -0
- hwpx_automation/office/utilities/table_compute.py +477 -0
- hwpx_automation/ops_services/__init__.py +1 -0
- hwpx_automation/ops_services/_border_fill.py +283 -0
- hwpx_automation/ops_services/composition.py +55 -0
- hwpx_automation/ops_services/content_layout.py +322 -0
- hwpx_automation/ops_services/context.py +213 -0
- hwpx_automation/ops_services/form_fields.py +557 -0
- hwpx_automation/ops_services/media.py +178 -0
- hwpx_automation/ops_services/memo_style.py +477 -0
- hwpx_automation/ops_services/package_validation.py +166 -0
- hwpx_automation/ops_services/planning.py +201 -0
- hwpx_automation/ops_services/preview_export.py +585 -0
- hwpx_automation/ops_services/read_query.py +601 -0
- hwpx_automation/ops_services/save_policy.py +604 -0
- hwpx_automation/ops_services/tables.py +539 -0
- hwpx_automation/ops_services/transactions.py +616 -0
- hwpx_automation/preview_output_models.py +69 -0
- hwpx_automation/public-modules.json +206 -0
- hwpx_automation/py.typed +1 -0
- hwpx_automation/quality.py +351 -0
- hwpx_automation/quality_generation.py +725 -0
- hwpx_automation/runtime.py +321 -0
- hwpx_automation/runtime_services.py +100 -0
- hwpx_automation/server.py +259 -0
- hwpx_automation/storage.py +747 -0
- hwpx_automation/tool_bindings.py +170 -0
- hwpx_automation/tool_contract.py +982 -0
- hwpx_automation/upstream.py +755 -0
- hwpx_automation/utils/__init__.py +2 -0
- hwpx_automation/utils/helpers.py +29 -0
- hwpx_automation/visual_qa.py +667 -0
- hwpx_automation/workflow/__init__.py +55 -0
- hwpx_automation/workflow/adapters.py +482 -0
- hwpx_automation/workflow/dispatcher.py +213 -0
- hwpx_automation/workflow/models.py +243 -0
- hwpx_automation/workflow/policy.py +198 -0
- hwpx_automation/workflow/render_contracts.py +173 -0
- hwpx_automation/workflow/render_metrics.py +196 -0
- hwpx_automation/workflow/render_queue.py +482 -0
- hwpx_automation/workflow/render_security.py +172 -0
- hwpx_automation/workflow/render_transport.py +369 -0
- hwpx_automation/workflow/rendering.py +206 -0
- hwpx_automation/workflow/service.py +758 -0
- hwpx_automation/workflow/state_machine.py +65 -0
- hwpx_automation/workflow/store.py +747 -0
- hwpx_automation/workspace.py +1694 -0
- python_hwpx_automation-6.0.3.dist-info/METADATA +279 -0
- python_hwpx_automation-6.0.3.dist-info/RECORD +217 -0
- python_hwpx_automation-6.0.3.dist-info/WHEEL +5 -0
- python_hwpx_automation-6.0.3.dist-info/entry_points.txt +3 -0
- python_hwpx_automation-6.0.3.dist-info/licenses/LICENSE +178 -0
- python_hwpx_automation-6.0.3.dist-info/licenses/NOTICE +14 -0
- python_hwpx_automation-6.0.3.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: python-hwpx-automation
|
|
3
|
+
Version: 6.0.3
|
|
4
|
+
Summary: Task-oriented HWPX document automation for Python, with an optional MCP adapter.
|
|
5
|
+
Author: Kohkyuhyun
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/airmang/python-hwpx-automation
|
|
8
|
+
Project-URL: Issues, https://github.com/airmang/python-hwpx-automation/issues
|
|
9
|
+
Keywords: hwpx,hancom,document-automation,workflow,mcp,ai-agent
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
License-File: NOTICE
|
|
18
|
+
Requires-Dist: python-hwpx<6,>=5.0.0
|
|
19
|
+
Requires-Dist: pydantic<3,>=2.11
|
|
20
|
+
Requires-Dist: cryptography>=42.0
|
|
21
|
+
Requires-Dist: anyio>=4.0
|
|
22
|
+
Requires-Dist: tomli>=2.0; python_version < "3.11"
|
|
23
|
+
Provides-Extra: mcp
|
|
24
|
+
Requires-Dist: mcp==1.28.1; extra == "mcp"
|
|
25
|
+
Provides-Extra: hwp
|
|
26
|
+
Requires-Dist: olefile>=0.47; extra == "hwp"
|
|
27
|
+
Provides-Extra: http
|
|
28
|
+
Requires-Dist: uvicorn>=0.30; extra == "http"
|
|
29
|
+
Provides-Extra: ingest
|
|
30
|
+
Requires-Dist: markitdown[docx,pdf,xlsx]<0.2,>=0.1.6; extra == "ingest"
|
|
31
|
+
Provides-Extra: oracle
|
|
32
|
+
Requires-Dist: pymupdf>=1.24; extra == "oracle"
|
|
33
|
+
Requires-Dist: pillow>=10.0; extra == "oracle"
|
|
34
|
+
Requires-Dist: numpy>=1.26; extra == "oracle"
|
|
35
|
+
Provides-Extra: vision
|
|
36
|
+
Requires-Dist: pymupdf>=1.24; extra == "vision"
|
|
37
|
+
Requires-Dist: pillow>=10.0; extra == "vision"
|
|
38
|
+
Requires-Dist: numpy>=1.26; extra == "vision"
|
|
39
|
+
Provides-Extra: test
|
|
40
|
+
Requires-Dist: pytest>=8.0; extra == "test"
|
|
41
|
+
Requires-Dist: build>=1.2; extra == "test"
|
|
42
|
+
Requires-Dist: packaging>=23.0; extra == "test"
|
|
43
|
+
Requires-Dist: pytest-cov>=5.0; extra == "test"
|
|
44
|
+
Requires-Dist: jsonschema>=4.22; extra == "test"
|
|
45
|
+
Requires-Dist: pyyaml>=6.0; extra == "test"
|
|
46
|
+
Requires-Dist: olefile>=0.47; extra == "test"
|
|
47
|
+
Requires-Dist: uvicorn>=0.30; extra == "test"
|
|
48
|
+
Requires-Dist: numpy>=1.26; extra == "test"
|
|
49
|
+
Requires-Dist: pillow>=10.0; extra == "test"
|
|
50
|
+
Requires-Dist: ruff>=0.12; extra == "test"
|
|
51
|
+
Provides-Extra: typecheck
|
|
52
|
+
Requires-Dist: mypy<3,>=1.10; extra == "typecheck"
|
|
53
|
+
Requires-Dist: pyright<2,>=1.1.390; extra == "typecheck"
|
|
54
|
+
Dynamic: license-file
|
|
55
|
+
|
|
56
|
+
<p align="center">
|
|
57
|
+
<h1 align="center">python-hwpx-automation</h1>
|
|
58
|
+
<p align="center">
|
|
59
|
+
<strong>HWPX 저작·양식 채움·업무 워크플로를 위한 Python 자동화 계층</strong>
|
|
60
|
+
</p>
|
|
61
|
+
<p align="center">
|
|
62
|
+
<a href="https://pypi.org/project/python-hwpx-automation/"><img src="https://img.shields.io/pypi/v/python-hwpx-automation?color=blue&label=PyPI" alt="PyPI"></a>
|
|
63
|
+
<a href="https://pepy.tech/project/python-hwpx-automation"><img src="https://static.pepy.tech/badge/python-hwpx-automation/month" alt="Downloads"></a>
|
|
64
|
+
<a href="https://pypi.org/project/python-hwpx-automation/"><img src="https://img.shields.io/pypi/pyversions/python-hwpx-automation" alt="Python"></a>
|
|
65
|
+
<a href="https://github.com/airmang/python-hwpx-automation/actions/workflows/tests.yml"><img src="https://img.shields.io/github/actions/workflow/status/airmang/python-hwpx-automation/tests.yml?branch=main&label=tests" alt="Tests"></a>
|
|
66
|
+
<a href="https://github.com/airmang/python-hwpx-automation/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue" alt="License"></a>
|
|
67
|
+
</p>
|
|
68
|
+
</p>
|
|
69
|
+
|
|
70
|
+
<!-- release-state: release-approved -->
|
|
71
|
+
> [!WARNING]
|
|
72
|
+
> **릴리스 상태 — `release-approved`: 6.0.3 train 발행이 승인되어 진행
|
|
73
|
+
> 중입니다(2026-07-28).** 이 checkout은
|
|
74
|
+
> `python-hwpx 5.0.1 → python-hwpx-automation 6.0.3 → hwpx-plugin 1.0.0`
|
|
75
|
+
> train과 계약 해시 `0ce938371f0b55a6`을 설명하지만, **원격 truth는 아직
|
|
76
|
+
> 관찰 전**입니다. 마지막으로 plugin 설치까지 함께 검증한 완전한 공개
|
|
77
|
+
> 트레인은 여전히
|
|
78
|
+
> `python-hwpx 4.2.0 → hwpx-mcp-server 5.1.0 → hwpx-plugin 0.8.0`,
|
|
79
|
+
> 계약 해시 `429cb6706323e762`입니다. 아래 canonical 설치 명령은 발행
|
|
80
|
+
> readback이 끝나기 전에는 공개 설치로 간주하지 마세요.
|
|
81
|
+
> 상태 승격은 `unreleased-candidate → release-approved → released` 세 단계이며,
|
|
82
|
+
> `released`와 current-public 좌표는 core·canonical·compatibility와 plugin GitHub
|
|
83
|
+
> Release·marketplace·실제 marketplace 설치까지 3스택 전체 원격 정본을 관찰한 뒤
|
|
84
|
+
> 후속 commit에서만 바꿉니다. 절차는
|
|
85
|
+
> [릴리스 상태 runbook](docs/release-runbook.md)에 있습니다.
|
|
86
|
+
|
|
87
|
+
[python-hwpx](https://github.com/airmang/python-hwpx)의 format/object-model 위에서
|
|
88
|
+
저작·양식 채움·시험지 조판·평가계획·안전한 에이전트 워크플로를 제공합니다.
|
|
89
|
+
기본 설치는 MCP SDK 없이 Python API와 `hwpx` CLI를 사용할 수 있습니다.
|
|
90
|
+
[모델 컨텍스트 프로토콜(MCP)](https://modelcontextprotocol.io)은 `[mcp]` extra로
|
|
91
|
+
추가하는 선택 어댑터입니다.
|
|
92
|
+
|
|
93
|
+
한컴오피스도 Windows도 필요하지 않으므로 **ChatGPT 채팅 환경에서도 HWPX
|
|
94
|
+
문서를 다룰 수 있습니다.** 파이썬이 도는 곳이면 저작·양식 채움 워크플로가
|
|
95
|
+
그대로 동작합니다.
|
|
96
|
+
|
|
97
|
+
| 계층 | 저장소 | 정본 책임 |
|
|
98
|
+
|---|---|---|
|
|
99
|
+
| Core | [`python-hwpx`](https://github.com/airmang/python-hwpx) | HWPX package/object model·OPC/OXML·직렬화·재사용 primitive |
|
|
100
|
+
| Automation | [`python-hwpx-automation`](https://github.com/airmang/python-hwpx-automation) | Python 자동화·워크플로·profile/policy·렌더·선택형 MCP adapter |
|
|
101
|
+
| Judgment | [`hwpx-plugins`](https://github.com/airmang/hwpx-plugins) | 에이전트 intent/genre 판단·ambiguity 처리·plugin/skill 가이드 |
|
|
102
|
+
|
|
103
|
+
이 저장소는 위 표의 Automation 정본입니다.
|
|
104
|
+
|
|
105
|
+
## Python 자동화 시작하기 (6.0 후보)
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
pip install python-hwpx-automation
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
```python
|
|
112
|
+
from hwpx_automation import create_document_from_plan
|
|
113
|
+
|
|
114
|
+
document = create_document_from_plan(
|
|
115
|
+
{
|
|
116
|
+
"schemaVersion": "hwpx.document_plan.v1",
|
|
117
|
+
"title": "회의 결과",
|
|
118
|
+
"blocks": [{"type": "paragraph", "text": "결정 사항"}],
|
|
119
|
+
}
|
|
120
|
+
)
|
|
121
|
+
document.save_to_path("meeting-result.hwpx")
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
`python -m hwpx_automation --help`와 `hwpx help`는 같은 task CLI를 실행합니다.
|
|
125
|
+
|
|
126
|
+
## MCP 어댑터 시작하기 (6.0 후보)
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
pip install "python-hwpx-automation[mcp]"
|
|
130
|
+
hwpx-automation-mcp
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
6.x 호환 기간에는 `pip install hwpx-mcp-server`와 `hwpx-mcp-server`도
|
|
134
|
+
동작합니다. 옛 distribution/import/console 제거는 7.0 이전에는 하지 않으며,
|
|
135
|
+
최소 90일 공개 관찰과 별도 오너 승인이 필요합니다.
|
|
136
|
+
|
|
137
|
+
MCP 클라이언트 설정 파일에 아래 블록 하나면 `hwpx` 서버를 잡습니다 — Claude Desktop은
|
|
138
|
+
`claude_desktop_config.json`, VS Code는 `.vscode/mcp.json`(키가 `mcpServers` 대신 `servers`),
|
|
139
|
+
Gemini CLI는 `~/.gemini/settings.json`, Cursor·Windsurf는 각 에디터의 MCP 설정 파일입니다.
|
|
140
|
+
|
|
141
|
+
```json
|
|
142
|
+
{
|
|
143
|
+
"mcpServers": {
|
|
144
|
+
"hwpx": {
|
|
145
|
+
"command": "uvx",
|
|
146
|
+
"args": [
|
|
147
|
+
"--from",
|
|
148
|
+
"python-hwpx-automation[mcp]==6.0.3",
|
|
149
|
+
"hwpx-automation-mcp"
|
|
150
|
+
],
|
|
151
|
+
"env": {
|
|
152
|
+
"HWPX_AUTOMATION_WORKSPACE_ROOTS": "[\"~/Documents\"]"
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
`HWPX_AUTOMATION_WORKSPACE_ROOTS`에는 문서가 있는 폴더(절대경로 또는 `~`)를 지정하세요. Windows는
|
|
160
|
+
`"[\"C:\\\\hwpx\"]"`처럼 씁니다. 값을 비워 두면 서버는 실행 위치(cwd)를 root로 쓰려 하지만,
|
|
161
|
+
Claude Desktop 같은 GUI 클라이언트는 서버를 시스템 디렉터리(Windows `C:\Windows\System32`,
|
|
162
|
+
macOS `/`)에서 띄우므로 이런 degenerate cwd는 거부되고 모든 문서 경로가 막힙니다. 그래서 처음부터
|
|
163
|
+
이 값을 설정하는 것을 권장합니다. 나머지 옵션은 [환경 변수](#환경-변수) 표를 참고하세요.
|
|
164
|
+
|
|
165
|
+
> 비-HWPX 문서(PDF/DOCX/XLSX/HTML/TXT)를 `document_to_markdown`으로 읽으려면
|
|
166
|
+
> `pip install "python-hwpx-automation[ingest]"`(또는 옛 이름 `"hwpx-mcp-server[ingest]"`)로
|
|
167
|
+
> MarkItDown adapter를 함께 설치합니다.
|
|
168
|
+
> 요구 사항: `Python >= 3.10` · `python-hwpx >= 5.0.0`.
|
|
169
|
+
|
|
170
|
+
## 무엇을 하나
|
|
171
|
+
|
|
172
|
+
기본 모드에서 다수의 HWPX 도구를 제공하며, 고급 모드(`HWPX_AUTOMATION_ADVANCED=1`)에서 점검·검증용 도구가 추가됩니다.
|
|
173
|
+
|
|
174
|
+
- **읽기·탐색** — `get_document_info`, `get_document_map`(아웃라인·표 지도·앵커를 한 호출로), `find_text` (저장하지 않음)
|
|
175
|
+
- **검색·치환·편집** — `search_and_replace`, `apply_document_commands`(이종 편집 원자 적용·dry-run·롤백·멱등키), `add_tracked_edit`(변경 추적)
|
|
176
|
+
- **표·양식 채움** — `analyze_form_fill` → `apply_form_fill` → `verify_form_fill` 바이트 보존 트랜잭션, `table_compute`(합계·소계)
|
|
177
|
+
- **문서 생성·공문** — 선언형 `create_document_from_plan`, `inspect_official_document_style`(행정 규정 lint), `mail_merge`
|
|
178
|
+
- **서식·그림·생성기** — `set_paragraph_format`·`set_page_setup`, `insert_picture`, 사진대지·명패·조직도
|
|
179
|
+
- **프리뷰·추출·복구·진단** — `render_preview`(HTML/PNG 자기검증), `hwpx_to_markdown`, `repair_hwpx`, `mcp_server_health`
|
|
180
|
+
|
|
181
|
+
자세한 내용: [사용 사례](docs/use-cases.md) · [스킬 우선 워크플로](docs/skill-first-workflows.md)
|
|
182
|
+
|
|
183
|
+
### 하나의 흐름부터
|
|
184
|
+
|
|
185
|
+
처음부터 모든 도구를 외울 필요는 없습니다. 보통 아래 하나로 시작합니다.
|
|
186
|
+
|
|
187
|
+
1. **읽기** — `get_document_info` → `get_document_outline`/`get_document_text` → `find_text`, `get_table_map`으로 필요한 부분만. (저장하지 않음)
|
|
188
|
+
2. **안전 수정** — `copy_document`로 사본 생성 → 읽기 도구로 대상 확인 → `search_and_replace`, `set_table_cell_text` 같은 전문 도구나 `apply_document_commands`로 가장 작은 변경 → 다시 읽어 확인 → 검토가 끝난 복사본을 handoff.
|
|
189
|
+
|
|
190
|
+
핵심은 **copy first · smallest edit · re-read after edits**입니다.
|
|
191
|
+
|
|
192
|
+
## 안전과 품질 게이트
|
|
193
|
+
|
|
194
|
+
- **read first** — 먼저 읽기 도구로 문서를 파악합니다.
|
|
195
|
+
- **copy before risky edits** — 결과물을 보존해야 하면 `copy_document`를 먼저 호출합니다.
|
|
196
|
+
- **mutating tools persist immediately** — 수정 도구는 호출 즉시 저장되므로 검토용은 복사본에서 작업합니다.
|
|
197
|
+
- **explicit handoff uses the reviewed copy** — 납품·handoff는 검토가 끝난 복사본 파일 기준입니다.
|
|
198
|
+
|
|
199
|
+
모델은 operation/plan만 보내고 raw XML을 직접 편집하지 않습니다. 일반 저장 경로는 python-hwpx의
|
|
200
|
+
단일 `SavePipeline` 게이트를 통과해 무결성·XML·OPC/ID·열림안전을 검사하고, `quality`에 따라
|
|
201
|
+
`visualComplete` 블록(`ok`·`status`·`errorCodes`)을 응답에 실으며, 게이트가 실패하면 아무것도 쓰지 않고
|
|
202
|
+
소유 후보만 원복합니다. capability handshake가 core/automation/plugin
|
|
203
|
+
버전+해시 skew를 fail-closed로 차단합니다. 6.x 응답의 `versions.mcp`와
|
|
204
|
+
`minMcpVersion`은 기존 소비자를 위한 alias로만 유지됩니다.
|
|
205
|
+
같은 이유로 `MIN_MCP_VERSION`, 공개 오류 schema `hwpx.mcp-error/v1`,
|
|
206
|
+
동결된 architecture receipt ID `hwpx-mcp.*`, parity receipt 필드
|
|
207
|
+
`mcpRuntimeMembers`도 6.x에서 정확히 보존합니다. canonical 표기는
|
|
208
|
+
`versions.automation`·`minAutomationVersion`·`MIN_AUTOMATION_VERSION`이며,
|
|
209
|
+
보존된 MCP 철자는 제품 소유권이 아니라 wire/receipt 호환 식별자입니다.
|
|
210
|
+
보안 상세는 [하드닝 가이드](docs/hardening_guide_ko.md)에 있습니다.
|
|
211
|
+
|
|
212
|
+
> **위치 계약** — `paragraph_index`는 본문 직속 문단의 0-based 인덱스입니다. 표 안 문단은 여기 섞지 않고
|
|
213
|
+
> `{"kind":"table_cell_paragraph","table_index":0,"row":0,"col":1,"cell_paragraph_index":0}` 같은 `location`
|
|
214
|
+
> 객체로 지정하며, `get_table_map`/`find_text`가 반환한 값을 그대로 넘길 수 있습니다.
|
|
215
|
+
|
|
216
|
+
## 환경 변수
|
|
217
|
+
|
|
218
|
+
| 변수 | 설명 | 기본값 |
|
|
219
|
+
|---|---|---|
|
|
220
|
+
| `HWPX_AUTOMATION_WORKSPACE_ROOTS` | 허용할 workspace 절대경로의 JSON 배열(복수 root 지원). 상대경로는 첫 root 기준 | unset → 프로세스 cwd. degenerate cwd는 `WORKSPACE_ROOT_INVALID`로 거부 |
|
|
221
|
+
| `HWPX_AUTOMATION_MAX_CHARS` | 텍스트 반환 도구 기본 최대 길이 | `10000` |
|
|
222
|
+
| `HWPX_AUTOMATION_AUTOBACKUP` | `1`이면 저장 전 `.bak` 백업 생성 | `1` |
|
|
223
|
+
| `HWPX_AUTOMATION_ADVANCED` | `1`이면 고급 도구 활성화 | `0` |
|
|
224
|
+
| `HWPX_AUTOMATION_FETCH_TIMEOUT_SECONDS` | URL 기반 HWPX fetch timeout | `20.0` |
|
|
225
|
+
| `HWPX_AUTOMATION_ALLOW_PRIVATE_NETWORK` | `1`이면 신뢰된 사설/루프백 HTTPS 대상 허용. 링크로컬·metadata·예약 주소는 계속 차단 | `0` |
|
|
226
|
+
| `HWPX_AUTOMATION_QUALITY` | 전역 기본 저장 게이트 정책(`transparent`/`strict`). 도구별 `quality`가 우선 | `transparent` |
|
|
227
|
+
| `HWPX_AUTOMATION_REQUIRE_CAPABILITY` | `0`이면 capability skew fail-closed를 끔(진단/전문가용) | `1` |
|
|
228
|
+
| `HWPX_AUTOMATION_WORKFLOW_STORE` | durable workflow SQLite 경로. 기존 `HWPX_WORKFLOW_STORE`보다 우선 | 기존 6.x 상태 경로 |
|
|
229
|
+
| `LOG_LEVEL` | 로그 레벨 | `INFO` |
|
|
230
|
+
|
|
231
|
+
동일 suffix의 기존 `HWPX_MCP_*` 키는 6.x 동안 fallback으로 유지됩니다.
|
|
232
|
+
두 키가 함께 있으면 `HWPX_AUTOMATION_*`이 우선합니다. workflow DB의 기존
|
|
233
|
+
`.../hwpx-mcp-server/workflows.sqlite3` 기본 경로도 6.x에서는 데이터 유실을
|
|
234
|
+
막기 위해 그대로 사용합니다.
|
|
235
|
+
|
|
236
|
+
제품-neutral integration/capability 키는 옛 MCP 제품명을 담지 않으므로 이름을
|
|
237
|
+
바꾸지 않습니다.
|
|
238
|
+
|
|
239
|
+
| 분류 | 보존하는 정확한 키 |
|
|
240
|
+
|---|---|
|
|
241
|
+
| render integration | `HWPX_RENDER_QUEUE_ROOT`, `HWPX_RENDER_QUEUE_URL`, `HWPX_RENDER_QUEUE_SECRET`, `HWPX_RENDER_TRANSPORT_AUTH`, `HWPX_RENDER_CA_FILE`, `HWPX_RENDER_CLIENT_CERT_FILE`, `HWPX_RENDER_CLIENT_KEY_FILE` |
|
|
242
|
+
| workflow security | `HWPX_WORKFLOW_ENCRYPTION_KEY` |
|
|
243
|
+
| oracle capability | `HWPX_ORACLE_STRUCTURAL_ONLY`, `HWPX_ORACLE_BUDGET_SECONDS` |
|
|
244
|
+
| plugin integration | `HWPX_SKILL_VERSION`, `HWPX_PLUGIN_ROOT` |
|
|
245
|
+
|
|
246
|
+
이 키들은 `integration-preserved` 또는 `capability-preserved` 정본이며
|
|
247
|
+
`HWPX_AUTOMATION_*` alias를 새로 만들지 않습니다.
|
|
248
|
+
|
|
249
|
+
경로는 기본적으로 workspace 밖 traversal과 symlink escape를 거부하고, URL 입력은 HTTPS·공개 IP만
|
|
250
|
+
허용합니다. 원자 rename을 제공하지 않는 호스트의 동시성 주의사항은 [하드닝 가이드](docs/hardening_guide_ko.md)를 보세요.
|
|
251
|
+
|
|
252
|
+
## 기여하기
|
|
253
|
+
|
|
254
|
+
[good first issue](https://github.com/airmang/python-hwpx-automation/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) ·
|
|
255
|
+
[마일스톤](https://github.com/airmang/python-hwpx-automation/milestones) ·
|
|
256
|
+
[Discussions](https://github.com/airmang/python-hwpx-automation/discussions) ·
|
|
257
|
+
[CONTRIBUTING](CONTRIBUTING.md) ·
|
|
258
|
+
[CHANGELOG](CHANGELOG.md)
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
python -m pip install -e ".[test]" # 테스트 의존성
|
|
262
|
+
python -m pytest -q # 전체 테스트
|
|
263
|
+
python scripts/run_conformance.py run \
|
|
264
|
+
--tier structural --check tests/conformance/golden/structural.json
|
|
265
|
+
# 공개 합성 코퍼스를 다시 만들 때만:
|
|
266
|
+
python scripts/conformance_corpus_build.py
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
## 감사의 말
|
|
270
|
+
|
|
271
|
+
코어 라이브러리 [python-hwpx](https://github.com/airmang/python-hwpx) 위에서 동작하며, 아래 공개 표준·프로젝트에 빚지고 있습니다.
|
|
272
|
+
|
|
273
|
+
- **[OWPML — 개방형 워드프로세서 마크업 언어 (KS X 6101)](https://www.kssn.net/search/stddetail.do?itemNo=K001010119985)** — HWPX가 기반하는 한국 산업 표준
|
|
274
|
+
- **[hancom-io/hwpx-owpml-model](https://github.com/hancom-io/hwpx-owpml-model)** — OWPML 요소 구조 참조 모델 · **[neolord0/hwpxlib](https://github.com/neolord0/hwpxlib)** — 오라클 샘플 코퍼스
|
|
275
|
+
- **[edwardkim/rhwp](https://github.com/edwardkim/rhwp)** — 멱등성·검증 게이트 설계 영감
|
|
276
|
+
|
|
277
|
+
## License · Maintainer
|
|
278
|
+
|
|
279
|
+
Apache-2.0 ([LICENSE](LICENSE) · [NOTICE](NOTICE)) — **Kohkyuhyun** [@airmang](https://github.com/airmang) · [kokyuhyun@hotmail.com](mailto:kokyuhyun@hotmail.com)
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
hwpx_automation/__init__.py,sha256=cP3hnu-uFB11_xx70uLrVaO5qYkERnZEPycDrykIfcM,1666
|
|
2
|
+
hwpx_automation/__init__.pyi,sha256=CUvi-wb42-vogxUUxFB21uBW8snLMINkpCZzWYpUpPs,964
|
|
3
|
+
hwpx_automation/__main__.py,sha256=L3gcZM4iu1ZsuY3FD7XGKl6Cg7hWL5ySaxt7c-ASd_E,210
|
|
4
|
+
hwpx_automation/agent_document.py,sha256=-_i9sANJ_wuNriO1SNeo95q6_HGTo5bL-a6aVkUpjRU,12478
|
|
5
|
+
hwpx_automation/api.py,sha256=iNNuzgWRtWK0NAtlLtp0U8qIFCu3zd1ES0Ya3LO2jTQ,3902
|
|
6
|
+
hwpx_automation/blind_eval.py,sha256=cSaGeIwZx-5swd8ebltcyz3p1i7afgDo9-QtN9ut_xg,18892
|
|
7
|
+
hwpx_automation/capabilities.py,sha256=mghTQdsnhVYOuzU0dpCP7OpjEwqaH9fA8NdfOa1ZFOA,3694
|
|
8
|
+
hwpx_automation/compat.py,sha256=c08KFbs1IzbXAZbVAUOzuoWoR8BXnBad313rL8e-WcM,1582
|
|
9
|
+
hwpx_automation/configuration.py,sha256=kZmkeDPTDgvl1l-QMkdD2vg4rwZsvfk9pMESrpgoMPI,1371
|
|
10
|
+
hwpx_automation/document_state.py,sha256=18ihSR9i062BaVnni24BEBUPyDIBVwPvKGWFMIVDmjw,2979
|
|
11
|
+
hwpx_automation/errors.py,sha256=gkLLie0xWuHGaxZpf8DMy6Ul-J2tUa3vuqeAd-8x26g,10511
|
|
12
|
+
hwpx_automation/execution_lock.py,sha256=-KEYeY7iNaGVV6MwKHA7uacmnLkm_BPzSODLLGnBgMY,459
|
|
13
|
+
hwpx_automation/fastmcp_adapter.py,sha256=Nmui6XnB5Ud4X0xqnzUBXJiyDL1LphNG6nLfd7UQsaQ,27006
|
|
14
|
+
hwpx_automation/form_fill.py,sha256=1V2Mi5lBNS-JHXjQE8foPlJCM21FwAl60DTWESZv9qY,46724
|
|
15
|
+
hwpx_automation/form_output_models.py,sha256=qRNtqNjsmTynMWRU6p7SWIfcqglWyAxffmOubXZmKrM,7537
|
|
16
|
+
hwpx_automation/hwp_converter.py,sha256=6i1dVntfbAl1esGicvIhquJKDldg0PxGaIdfiE2VzK8,7611
|
|
17
|
+
hwpx_automation/hwp_support.py,sha256=EbM5PQiK9QDJDwFhA1dCxh3I7-5wst5pJXgcr4VK3tY,3371
|
|
18
|
+
hwpx_automation/hwpx_ops.py,sha256=bYzo7RHecssueYjxlG9Pj57VzKtRKE6RPv69RTnf-aM,48559
|
|
19
|
+
hwpx_automation/identity.json,sha256=ymqzFIWKJ7tqJF2ufCX4C1bZ0Kzeq2Bkt-aCdFtiQZw,9004
|
|
20
|
+
hwpx_automation/identity.py,sha256=g62OiZ_Bvo3wL8NCHFPmAEfwDSJY4AG_cc6aBipU9zI,473
|
|
21
|
+
hwpx_automation/ingest_adapters.py,sha256=7Lm1Pc__tPKdso0rRORLyy1pmUScr8VVmnTnleSYMXo,2726
|
|
22
|
+
hwpx_automation/markdown_plan.py,sha256=n2H_vhRM-el6Y5KLi21tz-4WzK78-wlE8i8hsUVWu2Y,6886
|
|
23
|
+
hwpx_automation/mcp_cli.py,sha256=rgLgj4bhOyYMHCpSGMy-KgryVieH4nFbV1Y4sV98Slo,798
|
|
24
|
+
hwpx_automation/mixed_form.py,sha256=jmBcIgly3hGxN_viYXEi6PIEVim1qWeUfr-sd2LFNMk,108614
|
|
25
|
+
hwpx_automation/mutation_models.py,sha256=SEIZYPxlp2FvnFClOsWS08KWBIL7kiMsvX1n6STpJTE,11690
|
|
26
|
+
hwpx_automation/network_policy.py,sha256=ZemScVr_7w1XbAtuBjVVhO3XMiditjyn5FzQjcaER40,7512
|
|
27
|
+
hwpx_automation/preview_output_models.py,sha256=eKreT-GLLxsUnz3I7nqRjAvMOwbBAbHJsACSVPr5ma0,2490
|
|
28
|
+
hwpx_automation/public-modules.json,sha256=JwRGFiAsWpoV0VLpLGKHgiF0kQManMsWXZwpWiPbxFg,8876
|
|
29
|
+
hwpx_automation/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
30
|
+
hwpx_automation/quality.py,sha256=D4S1Zx57V2yEzLPADGk9n_PxuNnxgC5Qw0gnu_72AEQ,13052
|
|
31
|
+
hwpx_automation/quality_generation.py,sha256=YqQh7n8lN2y58AAwOEAd7WYIv1EFCTF9pqazNDgn_BA,30065
|
|
32
|
+
hwpx_automation/runtime.py,sha256=lgOK27SrksfApQUkuDrcLg8eW8tqA9839f668s-BEYc,11441
|
|
33
|
+
hwpx_automation/runtime_services.py,sha256=E74uv1RWasAF93hk-g1zIcWZVvgsOB1nL77zmTmFhYM,3567
|
|
34
|
+
hwpx_automation/server.py,sha256=nbo_Cu4cYxI0ViWUf2JrSwEDVP7xhkQnlmk3ISi7--U,11743
|
|
35
|
+
hwpx_automation/storage.py,sha256=LsIZpp5nc3E9MlG3Wwmewr-527vjO8UDA0w7P2Mgkt8,28969
|
|
36
|
+
hwpx_automation/tool_bindings.py,sha256=GGSwbBvIp3DreiPhbqWo2TssAPU3DjMypUnFjgVQ0fA,9292
|
|
37
|
+
hwpx_automation/tool_contract.py,sha256=q0scfwQrUbrST5R2e2rf5VR0hdhiynoSxa4jfvytJT0,38303
|
|
38
|
+
hwpx_automation/upstream.py,sha256=AuegV0eNtZCXExQvi6cNh_j8YM9dLR8fpITbyNl5Rdk,25175
|
|
39
|
+
hwpx_automation/visual_qa.py,sha256=ei2WnH0YvXrCQKa0WmnxaWNX_whRQfSLyDoClEHk0Qs,29813
|
|
40
|
+
hwpx_automation/workspace.py,sha256=exroccZ_RVepwwjU4Eiz_oOg1Bt85KQIJaH8JTE_H-c,66876
|
|
41
|
+
hwpx_automation/core/__init__.py,sha256=OHgM3he4rGageZEFB4iNv2ni7c6mr1xNNVfMGO1bzz4,74
|
|
42
|
+
hwpx_automation/core/content.py,sha256=ppwROSxoQjbi1iDXbskcbdzZr7U5I5ci9m7-fa8U0nQ,29077
|
|
43
|
+
hwpx_automation/core/context.py,sha256=cG6XC5TpCB-_D8QDnqRsOwpxdstQWfb0gtmYBDzNV50,2966
|
|
44
|
+
hwpx_automation/core/diff.py,sha256=9_YLUyO88Yepvq-Hdr35fakjJ0plc1Krkc0IErMvGMo,1522
|
|
45
|
+
hwpx_automation/core/document.py,sha256=_7jLJOfU4WdVnOk9tqzhk-bnVqE95-PYueUskCsUT5M,1179
|
|
46
|
+
hwpx_automation/core/formatting.py,sha256=vDL9VHpOC11cSVjO-jtzSVQqoKmyWE1xA1RYiYXfwIA,15753
|
|
47
|
+
hwpx_automation/core/handles.py,sha256=v7HCAW2cWVu3OarPiDFRSixNncP1FIVRcTIPp5MeWAA,705
|
|
48
|
+
hwpx_automation/core/locations.py,sha256=FVbgLhGka9jaUeU2lG8illML15cxi31ouWP05oQBzI4,7634
|
|
49
|
+
hwpx_automation/core/locator.py,sha256=Q3CfVniPaMSXQ2ABV0JXmTNROkHtKZLz5VR4mCmlJs8,5122
|
|
50
|
+
hwpx_automation/core/plan.py,sha256=sNFIko5USDhvs7NA_gy4hSUV40q4vIQTc_dZ2d-nFXE,22744
|
|
51
|
+
hwpx_automation/core/resources.py,sha256=PNPhcGEwq4BrRdMrytgIfeT2_4nrDFB9z97OfxCaQBc,1198
|
|
52
|
+
hwpx_automation/core/search.py,sha256=OmUs0wLPxMrmkhbBiiiQQC-YKG8zjz4bHvJbmCae_eU,12280
|
|
53
|
+
hwpx_automation/core/transactions.py,sha256=wViQxRy0FPlPQKtDZSeFSKxjnK632RtQYN7XI5bRrlU,16452
|
|
54
|
+
hwpx_automation/core/txn.py,sha256=gXbv3JFRnYnWY3L57YeTdpFyQaBBMlvLd-dix7NVFog,1449
|
|
55
|
+
hwpx_automation/handlers/__init__.py,sha256=iLzNXNd-ernCvKTi4V8h2XzvFDoM4biZp34KIL0fgsg,83
|
|
56
|
+
hwpx_automation/handlers/_shared.py,sha256=DShvk2vhvtc6Ufy-gVol_S9yP-u_2Gj-iuxArQVne4o,13009
|
|
57
|
+
hwpx_automation/handlers/agent_document.py,sha256=4ZtJOIxFrimYoIAPgVXH8jMUmT4xDzMCBct9wuiAYkA,8195
|
|
58
|
+
hwpx_automation/handlers/authoring.py,sha256=7qcFFViTUZQyjhpvNbE6zD8QOsMpDOOMTV8sUKV9MZs,26209
|
|
59
|
+
hwpx_automation/handlers/content_edit.py,sha256=en9xjvKZWEq1yUE_RdM4dPNYFSJLT5peI2Lxjv1qLHA,35756
|
|
60
|
+
hwpx_automation/handlers/form_fill.py,sha256=FMYJZ3cU8HTWA37uNd5uN-gzi0_7eL_N_bhgd3Sh1U4,19986
|
|
61
|
+
hwpx_automation/handlers/layout_style.py,sha256=Zw9BkHEuATEUnpbtp16SjryzQC6MeTVt8M-FW_7O4uY,22427
|
|
62
|
+
hwpx_automation/handlers/quality_render.py,sha256=fl-NEdEYnCl0WeJg-PbvmPIqVK4P6x8OPYqyeFDW-Hg,21941
|
|
63
|
+
hwpx_automation/handlers/read_export.py,sha256=mewYmvfTA0ZHvc4A1kIJYBDegk6VpYYj3xi78Cwnyos,44713
|
|
64
|
+
hwpx_automation/handlers/specialized.py,sha256=8VU4s3HcpkYMGhcepTX19wLNIs-fdjpfglnBUmu6K8s,23051
|
|
65
|
+
hwpx_automation/handlers/tracked_changes.py,sha256=d4l4AyRJdiZ_Q0UkPoxTwgrO-yNgZdGHVFA_tyjVBPM,20152
|
|
66
|
+
hwpx_automation/handlers/workflow.py,sha256=xjkuocWyFKFFdPYX2sQDxtwyGZwn1hqX2SZ6e-TpIBI,2988
|
|
67
|
+
hwpx_automation/metadata/tools_meta.py,sha256=5WVKUSjUZ0IL2LKi_QBNJtaShSkE2zGsciwlxKB0qwY,933
|
|
68
|
+
hwpx_automation/office/__init__.py,sha256=yxkHAe77b1InlWmoAUD8cDxPbs7RB196Dkch0HSKJR8,325
|
|
69
|
+
hwpx_automation/office/agent/__init__.py,sha256=jMMxl9cvGrRtdX669yNmLzrk_CK3UlhXGjXQHy4ERpo,3400
|
|
70
|
+
hwpx_automation/office/agent/_batch_verification.py,sha256=WRK6pnfv3QMBm5G8oH1paIlYvkQ3OdgMtJk2CJXh5tw,15060
|
|
71
|
+
hwpx_automation/office/agent/catalog.py,sha256=jGznYSSmVIQZTCVxBX_CTdOe8nfjIRHpoe5oxleI0AA,9260
|
|
72
|
+
hwpx_automation/office/agent/cli.py,sha256=jnQ8MUm203dLJnRFpUqqj5Q2AnhiT7OEGaYKHsqSFGQ,24933
|
|
73
|
+
hwpx_automation/office/agent/commands.py,sha256=IYVNBmcBoQ88BoEUkZIyuWdHa0eiBylTIihRHB3ZdSc,56894
|
|
74
|
+
hwpx_automation/office/agent/document.py,sha256=aN2nh4f_CjeOlAd61Nk6oBDvLRIBYHkukiGtCANNaCQ,33977
|
|
75
|
+
hwpx_automation/office/agent/form_plan.py,sha256=LKFjtxgQUBOrROKhfvVupMjhJ5QBfmx_sWOyc5mJGJE,67500
|
|
76
|
+
hwpx_automation/office/agent/model.py,sha256=LZnsu5mbgxWxVSyWDADMEwhn4lod28yaFxwC4rndW2s,31671
|
|
77
|
+
hwpx_automation/office/agent/path.py,sha256=ui0gtBmgmwOrgZIgl9uZVofx22dMrVxIPkRu2p-lPQ4,5794
|
|
78
|
+
hwpx_automation/office/agent/query.py,sha256=m4h_vRAnYAGMmh9j85hovuSIMjRwsAfIp2LY428KoGo,7907
|
|
79
|
+
hwpx_automation/office/agent/story.py,sha256=Y0UEzIgJU6xO8K0aGfSw6B-49MwcxD6EypdVtGIyp34,6871
|
|
80
|
+
hwpx_automation/office/agent/blueprint/__init__.py,sha256=72KfSaJOcJcR66TjoLpKUUZve55c0JM2E1Zs1PfilA8,1507
|
|
81
|
+
hwpx_automation/office/agent/blueprint/bundle.py,sha256=K9-lcCgx2j1EsHzdP0cFn3ejn-YcLQ1NnNiPZNjq25Q,11544
|
|
82
|
+
hwpx_automation/office/agent/blueprint/catalog.py,sha256=D2ax7gQxhoqqtL70LWjcUME6I9TMb2Q7MqR48c19_tc,4669
|
|
83
|
+
hwpx_automation/office/agent/blueprint/dump.py,sha256=HgEMr5dI5ozXwZn9tH-2IlFtWphxT_qz7hlZmSn49MU,21745
|
|
84
|
+
hwpx_automation/office/agent/blueprint/mapping.py,sha256=bzSYbTrNEumBkP74nEY5M20-BEC4rBGCRvo3QZNQKxc,12761
|
|
85
|
+
hwpx_automation/office/agent/blueprint/model.py,sha256=7CegZTyVxFtzeDXHQrAogwS5Hf-MEBSEzcarUl1gNbE,31204
|
|
86
|
+
hwpx_automation/office/agent/blueprint/native.py,sha256=8gzuYlNXUk8MsYexlnEpRGfUBF88GCS_8pk87fKeBz4,28822
|
|
87
|
+
hwpx_automation/office/agent/blueprint/replay.py,sha256=03VPFnO_WQip0txrlCYexOz0s5sxhklkOdmB3asVMI8,24084
|
|
88
|
+
hwpx_automation/office/authoring/__init__.py,sha256=SVy5dKS4cnjbUCN_7hONxS7nPrOJE33Cue3mh0_yiOc,130081
|
|
89
|
+
hwpx_automation/office/authoring/advanced_generators.py,sha256=ucUNnT2Pkto2jiyCU5_c1abbiskO65WOimgH0l-3Tv0,5164
|
|
90
|
+
hwpx_automation/office/authoring/report_parser.py,sha256=Z4y8yANrZUNP6gXyAuhvG1RG9D6M0GcVsdTOwqbZ61M,4651
|
|
91
|
+
hwpx_automation/office/authoring/style_profile.py,sha256=IHwmTQDXcqwaAxn9z7eqW00cw69HdAY_n8jsN2CNHLM,17220
|
|
92
|
+
hwpx_automation/office/authoring/template_analyzer.py,sha256=vOmj39C-lBG6K1yd528wzf-tuGqqZZMfZQpn9-8HXVQ,23817
|
|
93
|
+
hwpx_automation/office/authoring/builder/__init__.py,sha256=8tcxClbeuNle_R_2nDAauyy518OCegG8qVPjwIKRUZA,849
|
|
94
|
+
hwpx_automation/office/authoring/builder/core.py,sha256=Y30bL5oBk_0iInVj2IqoqwXQZTKX8JOcjo9n6faT87s,36050
|
|
95
|
+
hwpx_automation/office/authoring/builder/report.py,sha256=nPzxADknM1oT4mS908uUU_WVZgtcW_HBpaIUnnMPgcI,8269
|
|
96
|
+
hwpx_automation/office/authoring/design/__init__.py,sha256=JpJRF6Z21H4x8mx2j-jKP-1kijQ05aP-BMgICpLcdnE,1101
|
|
97
|
+
hwpx_automation/office/authoring/design/_support.py,sha256=7P7UijR9e1ptkzBEBdwyMfDtBSiXXNvpXHiTIc2Dg44,4633
|
|
98
|
+
hwpx_automation/office/authoring/design/composer.py,sha256=Wr8H-BSCxYEkqmHsT_2056S1WL-eyV6yGNZF4vPE5Dc,10883
|
|
99
|
+
hwpx_automation/office/authoring/design/harvest.py,sha256=5PGQ-Mz5ENdlnEH0dSyc0qOJIqjbVhSnVTVzBQAqRyc,10583
|
|
100
|
+
hwpx_automation/office/authoring/design/plan.py,sha256=1MpaLaa_qQwSfLdjsC-vWmfBCHWOX3rCF3pZdtRz8hw,2279
|
|
101
|
+
hwpx_automation/office/authoring/design/profile.py,sha256=XdDEypDwhr8jz7ctGIpQ-JcjF_9sCG7kXCGv5ov5UZI,2782
|
|
102
|
+
hwpx_automation/office/authoring/design/validator.py,sha256=f7Wr8asamnh2yjvVQefvQRsJQvJhLNqImuvDgf-iLRQ,3464
|
|
103
|
+
hwpx_automation/office/authoring/design/profiles/application_form/profile.json,sha256=QUzDRIwHarv5STzFbVHuZqnFkdBE44ZNUVEhhnDlM0I,810
|
|
104
|
+
hwpx_automation/office/authoring/design/profiles/application_form/template.hwpx,sha256=970gIURI1u5coAbQWPLZxK7okEBTB6-CV8NZChbM_YA,22376
|
|
105
|
+
hwpx_automation/office/authoring/design/profiles/application_form/fragments/body.xml,sha256=a93VW8s0Eh2PvcbftnTH2qjOUBNReewmowbmvLVoqaE,550
|
|
106
|
+
hwpx_automation/office/authoring/design/profiles/application_form/fragments/heading.xml,sha256=p9e0IX6L0SYlAhNAGC252pELqoU8Zv-MWE9jz9XLmt0,207
|
|
107
|
+
hwpx_automation/office/authoring/design/profiles/application_form/fragments/info_table.xml,sha256=rLlCeWTEIAwK3v-5KU1CGR2dq4zdECG8HEugfG4ecd4,5727
|
|
108
|
+
hwpx_automation/office/authoring/design/profiles/application_form/fragments/title.xml,sha256=wL2RusOksJ8Z0MBkbOfiQ5krmSkcvo1sMdM1pP8yasI,216
|
|
109
|
+
hwpx_automation/office/authoring/design/profiles/home_notice/profile.json,sha256=u-Hz3AYZqqf313cv2qtHbo79AhoEb8KQgb2ROLzZOps,524
|
|
110
|
+
hwpx_automation/office/authoring/design/profiles/home_notice/template.hwpx,sha256=TZeOV77NrhB9kVdUasXweKSSlQylqbI3zQTd-UDekfQ,9507
|
|
111
|
+
hwpx_automation/office/authoring/design/profiles/home_notice/fragments/body.xml,sha256=A8M2S1fe7QIdyl5KK0tg6HjbksBD5hioOl8tOM25if0,212
|
|
112
|
+
hwpx_automation/office/authoring/design/profiles/home_notice/fragments/heading.xml,sha256=FWPCjuAbsR7j6qYVd1-8c0sxyo6JDY5vkM-LV3ZWzEw,215
|
|
113
|
+
hwpx_automation/office/authoring/design/profiles/home_notice/fragments/title.xml,sha256=6BybxZE8h4h370iB-ZJzM7fKqw1M_Y_J_TGuTzXEIRM,214
|
|
114
|
+
hwpx_automation/office/authoring/design/profiles/official_notice/profile.json,sha256=pk3aFFW7d35SNwxhFXuj4GYHFxMMpGHS1JjdYIdmeaM,595
|
|
115
|
+
hwpx_automation/office/authoring/design/profiles/official_notice/template.hwpx,sha256=y84XEouqC9SMVW7hMucsiYBp9zg2OdzlIgVy0i81Nr8,10343
|
|
116
|
+
hwpx_automation/office/authoring/design/profiles/official_notice/fragments/body.xml,sha256=nEWh0GQfbtOKpu3NkjULZ72t7va7rNHxU4QG0LN6OLg,213
|
|
117
|
+
hwpx_automation/office/authoring/design/profiles/official_notice/fragments/heading.xml,sha256=OUlxKAhHt3Dg55HMyZ-4C1L36dLx_1Ta-MFezipsQhI,207
|
|
118
|
+
hwpx_automation/office/authoring/design/profiles/official_notice/fragments/info_table.xml,sha256=oJJTfykyeg693Kv9jzj8wn1VT9pGOoHYX44_rGcdCj0,5104
|
|
119
|
+
hwpx_automation/office/authoring/design/profiles/official_notice/fragments/title.xml,sha256=Sge2TlPrlmXkSooX3gkbDxiF099_NQ7Xeth08HOTtUQ,205
|
|
120
|
+
hwpx_automation/office/authoring/design/profiles/report/profile.json,sha256=7mR5kiCgY20KTmhvPHTfw_bu4wZUcqnsuvRl8x5ZAeg,615
|
|
121
|
+
hwpx_automation/office/authoring/design/profiles/report/template.hwpx,sha256=LL0ySwNopCcDkca1ude0UUjkhW3gYhNI_N2mJ3AFBWQ,12869
|
|
122
|
+
hwpx_automation/office/authoring/design/profiles/report/fragments/body.xml,sha256=aBtpX0lUcNr8SwCQLpf5y2CGe3uC_A3PwwseijmFFuQ,203
|
|
123
|
+
hwpx_automation/office/authoring/design/profiles/report/fragments/heading.xml,sha256=W1UpXp0_WYuO5WwpK5CvetRRNpAwutCJxxg1NabH7y4,233
|
|
124
|
+
hwpx_automation/office/authoring/design/profiles/report/fragments/info_table.xml,sha256=M9-Bweo9Wi291KgxvovrfHhSd0Pq6PIcOUlW79FXeYE,6065
|
|
125
|
+
hwpx_automation/office/authoring/design/profiles/report/fragments/title.xml,sha256=Mk0jfkfiWPr-CJUywqBDD_frjlnAMad2GwiNQLqc5nw,261
|
|
126
|
+
hwpx_automation/office/authoring/presets/__init__.py,sha256=I3gSJDT2tuvxXbw3FOmI3CnbxvjDMPZfppyg6OlMHOI,535
|
|
127
|
+
hwpx_automation/office/authoring/presets/proposal.py,sha256=ouRVatVO8MZG5Zwt3Cyh6dwoq0n0ISWPwXH6VKsaFLk,21179
|
|
128
|
+
hwpx_automation/office/compliance/__init__.py,sha256=Z4dHVSGCkhD6AL4RFeZAOSQT91tUhS18CpHfu7SOyY8,771
|
|
129
|
+
hwpx_automation/office/compliance/official_lint.py,sha256=9iszI4CAAEMGdPCOhmQ6XonO1jc1XE2BJXMHgv9hIvY,18600
|
|
130
|
+
hwpx_automation/office/compliance/pii.py,sha256=YEzMdTZF68zhyL5BVX6D9Dx95I5g3vUrCK7LMfrbhWg,12616
|
|
131
|
+
hwpx_automation/office/document_ops/__init__.py,sha256=vLrzq-8NLPcVKQWyiNP_66jmWIVshYSdBVO1Jzc0hBI,416
|
|
132
|
+
hwpx_automation/office/document_ops/comparison.py,sha256=92nvgg5nB3FsANNFgEhQpoXtQRN1SNq0A_XGn6zTI-Y,1636
|
|
133
|
+
hwpx_automation/office/document_ops/mail_merge.py,sha256=-Y2VqwtN1QM4AVBrNV7JOGPomyZVJVr81_DUkxtbWwY,2174
|
|
134
|
+
hwpx_automation/office/document_ops/redline.py,sha256=EZj2NwQiFF9Y3Ojh8tv37CGhgO6-wGs5ASIqxV1rZSA,1299
|
|
135
|
+
hwpx_automation/office/evalplan/__init__.py,sha256=WbN5PWUZfJfEmMtE_tIro3-nLOCyHCsssYPMUrIERI0,783
|
|
136
|
+
hwpx_automation/office/evalplan/runtime.py,sha256=qbZ-YSWKAEOiphsvopvukd7n9xcKT_RcStUnI_fRUpU,131521
|
|
137
|
+
hwpx_automation/office/exam/__init__.py,sha256=y__Bm5B7cPO2RLF969n9dYZ3peZVUK_3v24O7uYieWw,1077
|
|
138
|
+
hwpx_automation/office/exam/compose.py,sha256=sHshSroR3HtSK3PFLIDm_K9iCipOx5niZxlhCqa9Un0,9999
|
|
139
|
+
hwpx_automation/office/exam/ir.py,sha256=A9cJtDuk7btPDL0bLGeIq44Basi8_Oo0z4_q0KB4mDI,1324
|
|
140
|
+
hwpx_automation/office/exam/measure.py,sha256=1kWZoylbKISoBdC3aZP4UTEoKHSG8p9lW6ObWaHLSwk,5852
|
|
141
|
+
hwpx_automation/office/exam/parser.py,sha256=FwGMG8GF2Wvh3mVC5_1raLvGUBMpGr57-mWewBaeP8I,5087
|
|
142
|
+
hwpx_automation/office/exam/profile.py,sha256=NlvZCdEPEV7o8dwsmrOA2MlHRZQXGfRvFHCrRClVIfk,4142
|
|
143
|
+
hwpx_automation/office/form_fill/__init__.py,sha256=l6VdhtVWcj2r3cGu0T8bQLqNkR9TiOZlPQNlsD3NVLo,1389
|
|
144
|
+
hwpx_automation/office/form_fill/classification.py,sha256=TLSa8bypjpacYdyzMo4k0i5qw1ilj70Pp3wW5KLLlVA,3604
|
|
145
|
+
hwpx_automation/office/form_fill/fill_residue.py,sha256=IKs7iMz21RfAhZPsAJhFJU2ebusUPxY-hQExqMOu4Yc,8937
|
|
146
|
+
hwpx_automation/office/form_fill/guidance.py,sha256=APin4DFz1nc7xi-DxVY1bXd98gZwN4iTIMeBlCp29rA,28189
|
|
147
|
+
hwpx_automation/office/form_fill/quality.py,sha256=yuHcXEEm1hxvwtH_Q8hFbOEP4TFm7K32r3MsUDy00KU,36194
|
|
148
|
+
hwpx_automation/office/form_fill/split_run.py,sha256=qPzEE2mvtKphDt9eHGtDtodnaTWzbWWIYMImKh81lm8,9921
|
|
149
|
+
hwpx_automation/office/form_fill/template_formfit.py,sha256=lBjN3cs5Mzqf95HAT3qWOz0oEpCDBZ89ZgtilReNJ48,23787
|
|
150
|
+
hwpx_automation/office/form_fill/fit/__init__.py,sha256=WY8xiT0Boyx_pGyAk9mbeNkMAO4hdfwumP927QbWia0,875
|
|
151
|
+
hwpx_automation/office/form_fill/fit/apply.py,sha256=lZjIRMkjdOKeBWJabBOyTQe6qbX1-P9xzXxZxnZhAcU,949
|
|
152
|
+
hwpx_automation/office/form_fill/fit/engine.py,sha256=m3TrTo1-ADyQ4-iYkxJEPucJCtXfG3HbML4i41CvM4w,942
|
|
153
|
+
hwpx_automation/office/form_fill/fit/measure.py,sha256=Si3iUkZdtcnIKVRfXKRRNi1AvY75OV5nvKT5akT9AIE,1545
|
|
154
|
+
hwpx_automation/office/form_fill/fit/policy.py,sha256=kCJloO0Wvis_RzlnfcmEhu7UmJkzxkaljY4pEz6xOIk,1002
|
|
155
|
+
hwpx_automation/office/form_fill/fit/report.py,sha256=e0RmkITbki5IYBoOnv9DBZSYlOcPKJ5hmf45BPyBwaA,1018
|
|
156
|
+
hwpx_automation/office/form_fill/fit/seal.py,sha256=pA58Sj7x4fPF3z8s7ysB8vpc8aD775RRLYx6qObEBwQ,17725
|
|
157
|
+
hwpx_automation/office/form_fill/fit/wordbox.py,sha256=fLIo66RtKhgGw8IZoSzcxLnLkVhJrMBuHdEWPpmsUmE,51997
|
|
158
|
+
hwpx_automation/office/house_style/__init__.py,sha256=JPc55DGvPCODMJhLbD_tRHQ35zaVkE28GvWxjC6NlSQ,5788
|
|
159
|
+
hwpx_automation/office/house_style/composition.py,sha256=HJr8Q3e-EXpCNXR9Ab_s7IIh-RKJn24xWgfovAMlwjc,1976
|
|
160
|
+
hwpx_automation/office/house_style/data/bank.json,sha256=AYkyCCBqH0WKIx-AkgfrUkhk8IziGC_G8heUmcJ8uqo,19953
|
|
161
|
+
hwpx_automation/office/house_style/data/genres.json,sha256=scZgG-CgrJTMiQrTZ8M01lEeqMyYjtcO2lPFkx8rzns,3047
|
|
162
|
+
hwpx_automation/office/quality/__init__.py,sha256=zfnSsl-Rr_H-zq_PiYAonyvpHmBKnqgXtcElbX7rUdo,269
|
|
163
|
+
hwpx_automation/office/quality/page_guard.py,sha256=_1Jf3DRIzNewx2GkFEb-0I2D6EHBPPmEbjnTFMen-SE,9694
|
|
164
|
+
hwpx_automation/office/rendering/__init__.py,sha256=qZo-RdIRIDstZ2KbHpdLY80J7U-4O4vSYRgVSbjDwIg,4439
|
|
165
|
+
hwpx_automation/office/rendering/_hancom_open_rate.ps1,sha256=stgE7ID2DuIpHWZHi414hmPuvPKnbecPO-oLrFWYBSg,16016
|
|
166
|
+
hwpx_automation/office/rendering/_refresh_hwpx_mac.applescript,sha256=N26GN5hYjXUwhh_LYI-wt3DWTFwshUX4hBpCDrODEXc,4684
|
|
167
|
+
hwpx_automation/office/rendering/_render_hwpx.ps1,sha256=r7bUPQvMMwVhz5YiUIEZPSAO18GbPPfnaK8iZb67d3w,2412
|
|
168
|
+
hwpx_automation/office/rendering/_render_hwpx_mac.applescript,sha256=6iCabMkPmuXmff6ydb7UfF7QKEhFD2JSM86S9R9535s,8807
|
|
169
|
+
hwpx_automation/office/rendering/block_splits.py,sha256=a9cqD3Tz6Z89phDNaOqw3vqv8u1_2QBk4ZzgbbUZelo,2028
|
|
170
|
+
hwpx_automation/office/rendering/detectors.py,sha256=k7t79nWIBSqStNNdwPohmUG2zwr12Mz-JG22jHlsGdA,4825
|
|
171
|
+
hwpx_automation/office/rendering/diff.py,sha256=LCUwPCPaBsCvfMVSJPJMKpJ-3p8zET5jYRnRSvieaXE,5721
|
|
172
|
+
hwpx_automation/office/rendering/fixture_corpus.py,sha256=fqx9rRwLCBZ0unhgWCm8V-_xs5597AbBdiDaW5ey5M8,7595
|
|
173
|
+
hwpx_automation/office/rendering/oracle.py,sha256=l-SFDSGa29pOtGeerMLNEZ8n4mAp8wrHYyp8Od_Qr6E,35971
|
|
174
|
+
hwpx_automation/office/rendering/page_qa.py,sha256=BG5kqboMg7SyAi6tAi78LYq1ZmRh30uo72JpPN4Hk2Q,7352
|
|
175
|
+
hwpx_automation/office/rendering/qa_contracts.py,sha256=1cjoiRTAWgi7NgE8SPc6bKxdoUfKx9nyou1mgC47TxY,10506
|
|
176
|
+
hwpx_automation/office/rendering/qa_metrics.py,sha256=ijskhoieoEGk4bwos70XAvA8qDVTOOu4CJUH783cB9w,9859
|
|
177
|
+
hwpx_automation/office/rendering/worker.py,sha256=mgT7aO8KfN_j-s5Ck0AVkzpykVYp_vViqRNqdRoTEas,10270
|
|
178
|
+
hwpx_automation/office/utilities/__init__.py,sha256=GGjNEiBIrdtXy6Bvi90ormPY2XfY-8mktNvjBsh9WPc,269
|
|
179
|
+
hwpx_automation/office/utilities/table_compute.py,sha256=A1BVn_of8f54lRgo5hYrmTqRoa5xpJA4Um2a0lmhifw,16311
|
|
180
|
+
hwpx_automation/ops_services/__init__.py,sha256=OUtolsBwPX7kzfmOmanHZK98HFU5ylYwmjCw8czMo2I,86
|
|
181
|
+
hwpx_automation/ops_services/_border_fill.py,sha256=2ruoojd7xLvbC829O95mYnE75RgjbAHcYRZ0HymTMWw,9143
|
|
182
|
+
hwpx_automation/ops_services/composition.py,sha256=xMWDquck6Ii8YQlUZwS3oW5F753FgN64tbSv8O32xWA,1944
|
|
183
|
+
hwpx_automation/ops_services/content_layout.py,sha256=NihkhsUXJZSZ5cc-0KLZ7mTyVT9GW5b9fq1_Pbqkv_4,10892
|
|
184
|
+
hwpx_automation/ops_services/context.py,sha256=9-p-uQ9KtG7NlZfK64gCDiU0ZwobeYApBqb3x4EAdUM,8397
|
|
185
|
+
hwpx_automation/ops_services/form_fields.py,sha256=nCXU_f2ozWxEgCeTRunQ-uuOmOAFpJiOLl3xjcghU98,23276
|
|
186
|
+
hwpx_automation/ops_services/media.py,sha256=8WhL5K1MvoNgnxHj4NdVtp_Y3NYX_8k1UR4g81MJZDg,6198
|
|
187
|
+
hwpx_automation/ops_services/memo_style.py,sha256=G1LLaS8mHWzCyWihORonFXunIO0tiTFFYUU35etgucw,15783
|
|
188
|
+
hwpx_automation/ops_services/package_validation.py,sha256=Wd425FytD_4k7KjekcxeExBc7Y4oHtaOeI-hhJLvAeM,6239
|
|
189
|
+
hwpx_automation/ops_services/planning.py,sha256=_ZNerdBZ_DERzSsJ5WMJF5Z6xgl6yHjbgJNIuXxSGy8,6625
|
|
190
|
+
hwpx_automation/ops_services/preview_export.py,sha256=1NAQT3j1Ej98MIv4pCDDnYd83w4tTemHmoFWTidRWHw,23504
|
|
191
|
+
hwpx_automation/ops_services/read_query.py,sha256=hy2ZooaoMGmxClfCNC-qA1b8W6H7jU2AmOxugYgL9kg,23174
|
|
192
|
+
hwpx_automation/ops_services/save_policy.py,sha256=wy9gUN6Eezrljk8BAimAMDbEybnFYIwpdDrKc92rlNU,23018
|
|
193
|
+
hwpx_automation/ops_services/tables.py,sha256=Cm18M9cpE0BXcU2vGbN3XyARJ94UlE2y8pACOTun0LA,19235
|
|
194
|
+
hwpx_automation/ops_services/transactions.py,sha256=9fSoUFibrSjhfVm8-No789BUwTa3-EMII9Bbof_lgYc,26310
|
|
195
|
+
hwpx_automation/utils/__init__.py,sha256=MIE-UrcJ-Trz80UxicViKiGCXNqe3L5lC1f0acVZwUM,65
|
|
196
|
+
hwpx_automation/utils/helpers.py,sha256=nTuzGdXmhDJFODSs2pQZNNOdvrKeU457rJq4Vo3W5cY,762
|
|
197
|
+
hwpx_automation/workflow/__init__.py,sha256=AH-k3SlSD4mqnqh7jLXFr-he5BUwMqO00XyTDFQNBkA,1361
|
|
198
|
+
hwpx_automation/workflow/adapters.py,sha256=58GYOMrdPMDFaBhMzx3bm0XmBhk5UWrJ1Bhy1uGSpcs,19697
|
|
199
|
+
hwpx_automation/workflow/dispatcher.py,sha256=bMa2JAUlfsMOT8BN2odp2MGCXgEroKBAEw0q1QwoYZ0,8690
|
|
200
|
+
hwpx_automation/workflow/models.py,sha256=W9-s6w9jC76EjTh56bTuxkTrxnWs7Ci6cQjoGTj-YEI,8038
|
|
201
|
+
hwpx_automation/workflow/policy.py,sha256=0BNYlXhc_hQQxqVEMXtW2azopELyJsXWDdWKe9p-15c,8426
|
|
202
|
+
hwpx_automation/workflow/render_contracts.py,sha256=81Vbn9VDuE6KcQm_b28xxRkMg63FuoJhJNEL9gmwNyY,7481
|
|
203
|
+
hwpx_automation/workflow/render_metrics.py,sha256=D0QqQ7XqZwPTsUhBqmrqTyKCaIWX0XVh2X0XhHd23ns,7192
|
|
204
|
+
hwpx_automation/workflow/render_queue.py,sha256=XJ1BOU8yYLnmpKtOFxbnucOv_p3e7HbKcAMOHbT_Nq4,22243
|
|
205
|
+
hwpx_automation/workflow/render_security.py,sha256=9Hj8Xf0jEqocE6rmqEvKtzaNWg1QGPammBYG0p3RFtY,6438
|
|
206
|
+
hwpx_automation/workflow/render_transport.py,sha256=s1X2KKp1y9a_cMYe6b1-DmbUltO7EwwdiDwebySAXHo,13819
|
|
207
|
+
hwpx_automation/workflow/rendering.py,sha256=MAuL3vSS0vfo-R8ws55E52ddnBrtoYmYikTCG7Z0aLQ,6872
|
|
208
|
+
hwpx_automation/workflow/service.py,sha256=k48J2KILuuAN-JVCqQn7w040L58u-YSJ78uFnPQPoxw,35483
|
|
209
|
+
hwpx_automation/workflow/state_machine.py,sha256=8nFj3WPoqBj0H2j9WRbdAUCT7tm3q_ieQsaEX7LPnE4,2230
|
|
210
|
+
hwpx_automation/workflow/store.py,sha256=S2BTR5g21WgFYfi8ZwvgWQCv7wxUSA8ttlMS9-zNeoU,31663
|
|
211
|
+
python_hwpx_automation-6.0.3.dist-info/licenses/LICENSE,sha256=_ubz4wv-BkkT3l3gu-QuH7JGeVjuRYGZoZK95eNsCHU,9688
|
|
212
|
+
python_hwpx_automation-6.0.3.dist-info/licenses/NOTICE,sha256=B6vl9SzBdZ0LlAeEd89Q3P6r_rlXZWD6ZJK6Ntz3s6A,644
|
|
213
|
+
python_hwpx_automation-6.0.3.dist-info/METADATA,sha256=P4PWiZUC_T4jU1ZOB_WvKczvxeq1xVVYOEV25O8nP-k,15917
|
|
214
|
+
python_hwpx_automation-6.0.3.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
|
|
215
|
+
python_hwpx_automation-6.0.3.dist-info/entry_points.txt,sha256=6YDtwFKwyk9BNTR_iCVV0XTwtDRVwENVNvv3wHM81KQ,114
|
|
216
|
+
python_hwpx_automation-6.0.3.dist-info/top_level.txt,sha256=jQZZqF1u9rVIJvragSUf8HCHkm0gFVaCViNDZEKfh1A,16
|
|
217
|
+
python_hwpx_automation-6.0.3.dist-info/RECORD,,
|