cas-parser-python 1.1.0__tar.gz → 1.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.
- cas_parser_python-1.2.1/.release-please-manifest.json +3 -0
- cas_parser_python-1.2.1/CHANGELOG.md +94 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/LICENSE +1 -1
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/PKG-INFO +17 -7
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/README.md +13 -3
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/api.md +0 -12
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/pyproject.toml +19 -13
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/requirements-dev.lock +65 -50
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/requirements.lock +23 -19
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/__init__.py +3 -1
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_base_client.py +154 -22
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_client.py +75 -35
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_compat.py +3 -3
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_models.py +62 -19
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_qs.py +7 -7
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_streaming.py +12 -12
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_types.py +30 -13
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_utils/_compat.py +1 -1
- cas_parser_python-1.2.1/src/cas_parser/_utils/_json.py +35 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_utils/_sync.py +3 -31
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_utils/_transform.py +2 -2
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_utils/_utils.py +5 -5
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_version.py +1 -1
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/resources/__init__.py +0 -14
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/resources/cas_parser.py +49 -49
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/types/__init__.py +0 -2
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/types/cas_parser_cams_kfintech_params.py +2 -2
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/types/cas_parser_cdsl_params.py +2 -2
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/types/cas_parser_nsdl_params.py +2 -2
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/types/cas_parser_smart_parse_params.py +2 -2
- cas_parser_python-1.2.1/src/cas_parser/types/unified_response.py +1084 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/test_client.py +383 -166
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/test_models.py +4 -4
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/test_transform.py +9 -2
- cas_parser_python-1.2.1/tests/test_utils/test_json.py +126 -0
- cas_parser_python-1.1.0/.release-please-manifest.json +0 -3
- cas_parser_python-1.1.0/CHANGELOG.md +0 -55
- cas_parser_python-1.1.0/src/cas_parser/resources/cas_generator.py +0 -225
- cas_parser_python-1.1.0/src/cas_parser/types/cas_generator_generate_cas_params.py +0 -30
- cas_parser_python-1.1.0/src/cas_parser/types/cas_generator_generate_cas_response.py +0 -13
- cas_parser_python-1.1.0/src/cas_parser/types/unified_response.py +0 -432
- cas_parser_python-1.1.0/tests/api_resources/test_cas_generator.py +0 -136
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/.gitignore +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/CONTRIBUTING.md +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/SECURITY.md +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/bin/check-release-environment +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/bin/publish-pypi +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/examples/.keep +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/noxfile.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/release-please-config.json +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_constants.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_exceptions.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_files.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_resource.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_response.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_utils/__init__.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_utils/_datetime_parse.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_utils/_logs.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_utils/_proxy.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_utils/_reflection.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_utils/_resources_proxy.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_utils/_streams.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/_utils/_typing.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/lib/.keep +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/src/cas_parser/py.typed +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/__init__.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/api_resources/__init__.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/api_resources/test_cas_parser.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/conftest.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/sample_file.txt +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/test_deepcopy.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/test_extract_files.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/test_files.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/test_qs.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/test_required_args.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/test_response.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/test_streaming.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/test_utils/test_datetime_parse.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/test_utils/test_proxy.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/test_utils/test_typing.py +0 -0
- {cas_parser_python-1.1.0 → cas_parser_python-1.2.1}/tests/utils.py +0 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 1.2.1 (2026-02-14)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v1.2.0...v1.2.1](https://github.com/CASParser/cas-parser-python/compare/v1.2.0...v1.2.1)
|
|
6
|
+
|
|
7
|
+
### Chores
|
|
8
|
+
|
|
9
|
+
* update SDK settings ([0231f54](https://github.com/CASParser/cas-parser-python/commit/0231f540b484945a3bbc5d023a11197913e56642))
|
|
10
|
+
|
|
11
|
+
## 1.2.0 (2026-02-03)
|
|
12
|
+
|
|
13
|
+
Full Changelog: [v1.1.0...v1.2.0](https://github.com/CASParser/cas-parser-python/compare/v1.1.0...v1.2.0)
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* **api:** api update ([bce15d3](https://github.com/CASParser/cas-parser-python/commit/bce15d3f55a18db8d0c6447b6537fbdf831a5816))
|
|
18
|
+
* **api:** api update ([c265056](https://github.com/CASParser/cas-parser-python/commit/c265056c6b8f5b346172d89e9da82315976dc44f))
|
|
19
|
+
* **api:** api update ([93a9613](https://github.com/CASParser/cas-parser-python/commit/93a9613c79ec70869cf11dd0b9bac0a8c6194a31))
|
|
20
|
+
* **api:** api update ([bd6977a](https://github.com/CASParser/cas-parser-python/commit/bd6977a8a78c4a1633e4e6a1dc1d3335b1aa6611))
|
|
21
|
+
* **api:** api update ([3fda81d](https://github.com/CASParser/cas-parser-python/commit/3fda81deb938a9b689cbb04f839e3b815259a9c5))
|
|
22
|
+
* **api:** api update ([f1838dc](https://github.com/CASParser/cas-parser-python/commit/f1838dcb901635626cc87cb55dfaa4ef33ba5092))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* **client:** close streams without requiring full consumption ([7090ef5](https://github.com/CASParser/cas-parser-python/commit/7090ef51af296fa6d6be8af8137543ef2023cbd7))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Chores
|
|
31
|
+
|
|
32
|
+
* bump `httpx-aiohttp` version to 0.1.9 ([e1b65fb](https://github.com/CASParser/cas-parser-python/commit/e1b65fb2bd146a68ef50438899406ae2fb6178c3))
|
|
33
|
+
* do not install brew dependencies in ./scripts/bootstrap by default ([35b17eb](https://github.com/CASParser/cas-parser-python/commit/35b17eb26264ab66e24b074bcb1790f6c33b7b9c))
|
|
34
|
+
* **internal/tests:** avoid race condition with implicit client cleanup ([2a58fc0](https://github.com/CASParser/cas-parser-python/commit/2a58fc0e260b52ee314ac6d14676b2140711bd0b))
|
|
35
|
+
* **internal:** codegen related update ([8e6c5b2](https://github.com/CASParser/cas-parser-python/commit/8e6c5b210e14602af113fa9fef5c789d6238419a))
|
|
36
|
+
* **internal:** codegen related update ([20bcea0](https://github.com/CASParser/cas-parser-python/commit/20bcea057ce1974149394c899581ed31ffb56a4a))
|
|
37
|
+
* **internal:** detect missing future annotations with ruff ([8c35489](https://github.com/CASParser/cas-parser-python/commit/8c354893c00887af1da9c197dc21dd4d6f0033af))
|
|
38
|
+
* **internal:** grammar fix (it's -> its) ([d2d29bc](https://github.com/CASParser/cas-parser-python/commit/d2d29bcc46989573e27c2178785c6b38df65bd90))
|
|
39
|
+
* **internal:** update pydantic dependency ([1c3104b](https://github.com/CASParser/cas-parser-python/commit/1c3104b27350f4c906973bb56f89d5a16f55d35e))
|
|
40
|
+
* **types:** change optional parameter type from NotGiven to Omit ([e739e12](https://github.com/CASParser/cas-parser-python/commit/e739e12ade4f91e52f0285c866354e970195aacf))
|
|
41
|
+
|
|
42
|
+
## 1.1.0 (2025-09-06)
|
|
43
|
+
|
|
44
|
+
Full Changelog: [v1.0.2...v1.1.0](https://github.com/CASParser/cas-parser-python/compare/v1.0.2...v1.1.0)
|
|
45
|
+
|
|
46
|
+
### Features
|
|
47
|
+
|
|
48
|
+
* improve future compat with pydantic v3 ([39d5f4a](https://github.com/CASParser/cas-parser-python/commit/39d5f4a6f631f01627f9e0ad3846431b2f36410d))
|
|
49
|
+
* **types:** replace List[str] with SequenceNotStr in params ([ffdac79](https://github.com/CASParser/cas-parser-python/commit/ffdac79d2ac8394afc09f540c6b89c01675946d9))
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
### Chores
|
|
53
|
+
|
|
54
|
+
* **internal:** add Sequence related utils ([cffd684](https://github.com/CASParser/cas-parser-python/commit/cffd6844655dfe7f52a1c85140dc4ab2a370e8f7))
|
|
55
|
+
* **internal:** move mypy configurations to `pyproject.toml` file ([2f7e6bc](https://github.com/CASParser/cas-parser-python/commit/2f7e6bccf82f65c0b753a909654ba1ee7cc61157))
|
|
56
|
+
* **tests:** simplify `get_platform` test ([7c54665](https://github.com/CASParser/cas-parser-python/commit/7c546655385360b8ba97e20e79fbdedb43af07d5))
|
|
57
|
+
|
|
58
|
+
## 1.0.2 (2025-08-27)
|
|
59
|
+
|
|
60
|
+
Full Changelog: [v1.0.1...v1.0.2](https://github.com/CASParser/cas-parser-python/compare/v1.0.1...v1.0.2)
|
|
61
|
+
|
|
62
|
+
### Bug Fixes
|
|
63
|
+
|
|
64
|
+
* avoid newer type syntax ([2ad1ea6](https://github.com/CASParser/cas-parser-python/commit/2ad1ea633d5c9d69de09045f97968aa961ccc6f3))
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
### Chores
|
|
68
|
+
|
|
69
|
+
* **internal:** change ci workflow machines ([f38494c](https://github.com/CASParser/cas-parser-python/commit/f38494c9f9f0df5069d8dd1ff23728a47f0e934c))
|
|
70
|
+
* **internal:** update pyright exclude list ([d3f9237](https://github.com/CASParser/cas-parser-python/commit/d3f9237f030f0087d0f92741836aa8674d9b5287))
|
|
71
|
+
* update github action ([83a551a](https://github.com/CASParser/cas-parser-python/commit/83a551a025d281efa4edaa89a9e4daed0f8aaa8e))
|
|
72
|
+
|
|
73
|
+
## 1.0.1 (2025-08-18)
|
|
74
|
+
|
|
75
|
+
Full Changelog: [v1.0.0...v1.0.1](https://github.com/CASParser/cas-parser-python/compare/v1.0.0...v1.0.1)
|
|
76
|
+
|
|
77
|
+
### Chores
|
|
78
|
+
|
|
79
|
+
* update SDK settings ([83e97ee](https://github.com/CASParser/cas-parser-python/commit/83e97eef5fe5c02d181c8eeea271f661cd4b8830))
|
|
80
|
+
|
|
81
|
+
## 1.0.0 (2025-08-18)
|
|
82
|
+
|
|
83
|
+
Full Changelog: [v0.0.1...v1.0.0](https://github.com/CASParser/cas-parser-python/compare/v0.0.1...v1.0.0)
|
|
84
|
+
|
|
85
|
+
### Features
|
|
86
|
+
|
|
87
|
+
* **api:** manual updates ([635bd26](https://github.com/CASParser/cas-parser-python/commit/635bd26431623f00d3af06a3256c2b7085c83487))
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
### Chores
|
|
91
|
+
|
|
92
|
+
* configure new SDK language ([5748dab](https://github.com/CASParser/cas-parser-python/commit/5748dab8b8241dc537456d9b8c1dae3c0e4a5d5a))
|
|
93
|
+
* update SDK settings ([13b5c47](https://github.com/CASParser/cas-parser-python/commit/13b5c470a31ac72d95078236e0e16b76e753939e))
|
|
94
|
+
* update SDK settings ([25126eb](https://github.com/CASParser/cas-parser-python/commit/25126eb2330f0e84bd4dd9e814e6a2e5b2ebbddc))
|
|
@@ -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
|
|
189
|
+
Copyright 2026 Cas Parser
|
|
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.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: cas-parser-python
|
|
3
|
-
Version: 1.1
|
|
3
|
+
Version: 1.2.1
|
|
4
4
|
Summary: The official Python library for the CAS Parser API
|
|
5
5
|
Project-URL: Homepage, https://github.com/CASParser/cas-parser-python
|
|
6
6
|
Project-URL: Repository, https://github.com/CASParser/cas-parser-python
|
|
@@ -13,15 +13,15 @@ Classifier: Operating System :: Microsoft :: Windows
|
|
|
13
13
|
Classifier: Operating System :: OS Independent
|
|
14
14
|
Classifier: Operating System :: POSIX
|
|
15
15
|
Classifier: Operating System :: POSIX :: Linux
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.9
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
22
22
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
23
|
Classifier: Typing :: Typed
|
|
24
|
-
Requires-Python: >=3.
|
|
24
|
+
Requires-Python: >=3.9
|
|
25
25
|
Requires-Dist: anyio<5,>=3.5.0
|
|
26
26
|
Requires-Dist: distro<2,>=1.7.0
|
|
27
27
|
Requires-Dist: httpx<1,>=0.23.0
|
|
@@ -30,7 +30,7 @@ Requires-Dist: sniffio
|
|
|
30
30
|
Requires-Dist: typing-extensions<5,>=4.10
|
|
31
31
|
Provides-Extra: aiohttp
|
|
32
32
|
Requires-Dist: aiohttp; extra == 'aiohttp'
|
|
33
|
-
Requires-Dist: httpx-aiohttp>=0.1.
|
|
33
|
+
Requires-Dist: httpx-aiohttp>=0.1.9; extra == 'aiohttp'
|
|
34
34
|
Description-Content-Type: text/markdown
|
|
35
35
|
|
|
36
36
|
# Cas Parser Python API library
|
|
@@ -38,12 +38,21 @@ Description-Content-Type: text/markdown
|
|
|
38
38
|
<!-- prettier-ignore -->
|
|
39
39
|
[)](https://pypi.org/project/cas-parser-python/)
|
|
40
40
|
|
|
41
|
-
The Cas Parser Python library provides convenient access to the Cas Parser REST API from any Python 3.
|
|
41
|
+
The Cas Parser Python library provides convenient access to the Cas Parser REST API from any Python 3.9+
|
|
42
42
|
application. The library includes type definitions for all request params and response fields,
|
|
43
43
|
and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).
|
|
44
44
|
|
|
45
45
|
It is generated with [Stainless](https://www.stainless.com/).
|
|
46
46
|
|
|
47
|
+
## MCP Server
|
|
48
|
+
|
|
49
|
+
Use the Cas Parser MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.
|
|
50
|
+
|
|
51
|
+
[](https://cursor.com/en-US/install-mcp?name=cas-parser-node-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImNhcy1wYXJzZXItbm9kZS1tY3AiXSwiZW52Ijp7IkNBU19QQVJTRVJfQVBJX0tFWSI6Ik15IEFQSSBLZXkifX0)
|
|
52
|
+
[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22cas-parser-node-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22cas-parser-node-mcp%22%5D%2C%22env%22%3A%7B%22CAS_PARSER_API_KEY%22%3A%22My%20API%20Key%22%7D%7D)
|
|
53
|
+
|
|
54
|
+
> Note: You may need to set environment variables in your MCP client.
|
|
55
|
+
|
|
47
56
|
## Documentation
|
|
48
57
|
|
|
49
58
|
The REST API documentation can be found on [docs.casparser.in](https://docs.casparser.in/reference). The full API of this library can be found in [api.md](https://github.com/CASParser/cas-parser-python/tree/main/api.md).
|
|
@@ -120,6 +129,7 @@ pip install cas-parser-python[aiohttp]
|
|
|
120
129
|
Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
|
|
121
130
|
|
|
122
131
|
```python
|
|
132
|
+
import os
|
|
123
133
|
import asyncio
|
|
124
134
|
from cas_parser import DefaultAioHttpClient
|
|
125
135
|
from cas_parser import AsyncCasParser
|
|
@@ -127,7 +137,7 @@ from cas_parser import AsyncCasParser
|
|
|
127
137
|
|
|
128
138
|
async def main() -> None:
|
|
129
139
|
async with AsyncCasParser(
|
|
130
|
-
api_key="
|
|
140
|
+
api_key=os.environ.get("CAS_PARSER_API_KEY"), # This is the default and can be omitted
|
|
131
141
|
http_client=DefaultAioHttpClient(),
|
|
132
142
|
) as client:
|
|
133
143
|
unified_response = await client.cas_parser.smart_parse(
|
|
@@ -415,7 +425,7 @@ print(cas_parser.__version__)
|
|
|
415
425
|
|
|
416
426
|
## Requirements
|
|
417
427
|
|
|
418
|
-
Python 3.
|
|
428
|
+
Python 3.9 or higher.
|
|
419
429
|
|
|
420
430
|
## Contributing
|
|
421
431
|
|
|
@@ -3,12 +3,21 @@
|
|
|
3
3
|
<!-- prettier-ignore -->
|
|
4
4
|
[)](https://pypi.org/project/cas-parser-python/)
|
|
5
5
|
|
|
6
|
-
The Cas Parser Python library provides convenient access to the Cas Parser REST API from any Python 3.
|
|
6
|
+
The Cas Parser Python library provides convenient access to the Cas Parser REST API from any Python 3.9+
|
|
7
7
|
application. The library includes type definitions for all request params and response fields,
|
|
8
8
|
and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).
|
|
9
9
|
|
|
10
10
|
It is generated with [Stainless](https://www.stainless.com/).
|
|
11
11
|
|
|
12
|
+
## MCP Server
|
|
13
|
+
|
|
14
|
+
Use the Cas Parser MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.
|
|
15
|
+
|
|
16
|
+
[](https://cursor.com/en-US/install-mcp?name=cas-parser-node-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImNhcy1wYXJzZXItbm9kZS1tY3AiXSwiZW52Ijp7IkNBU19QQVJTRVJfQVBJX0tFWSI6Ik15IEFQSSBLZXkifX0)
|
|
17
|
+
[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22cas-parser-node-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22cas-parser-node-mcp%22%5D%2C%22env%22%3A%7B%22CAS_PARSER_API_KEY%22%3A%22My%20API%20Key%22%7D%7D)
|
|
18
|
+
|
|
19
|
+
> Note: You may need to set environment variables in your MCP client.
|
|
20
|
+
|
|
12
21
|
## Documentation
|
|
13
22
|
|
|
14
23
|
The REST API documentation can be found on [docs.casparser.in](https://docs.casparser.in/reference). The full API of this library can be found in [api.md](api.md).
|
|
@@ -85,6 +94,7 @@ pip install cas-parser-python[aiohttp]
|
|
|
85
94
|
Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
|
|
86
95
|
|
|
87
96
|
```python
|
|
97
|
+
import os
|
|
88
98
|
import asyncio
|
|
89
99
|
from cas_parser import DefaultAioHttpClient
|
|
90
100
|
from cas_parser import AsyncCasParser
|
|
@@ -92,7 +102,7 @@ from cas_parser import AsyncCasParser
|
|
|
92
102
|
|
|
93
103
|
async def main() -> None:
|
|
94
104
|
async with AsyncCasParser(
|
|
95
|
-
api_key="
|
|
105
|
+
api_key=os.environ.get("CAS_PARSER_API_KEY"), # This is the default and can be omitted
|
|
96
106
|
http_client=DefaultAioHttpClient(),
|
|
97
107
|
) as client:
|
|
98
108
|
unified_response = await client.cas_parser.smart_parse(
|
|
@@ -380,7 +390,7 @@ print(cas_parser.__version__)
|
|
|
380
390
|
|
|
381
391
|
## Requirements
|
|
382
392
|
|
|
383
|
-
Python 3.
|
|
393
|
+
Python 3.9 or higher.
|
|
384
394
|
|
|
385
395
|
## Contributing
|
|
386
396
|
|
|
@@ -12,15 +12,3 @@ Methods:
|
|
|
12
12
|
- <code title="post /v4/cdsl/parse">client.cas_parser.<a href="./src/cas_parser/resources/cas_parser.py">cdsl</a>(\*\*<a href="src/cas_parser/types/cas_parser_cdsl_params.py">params</a>) -> <a href="./src/cas_parser/types/unified_response.py">UnifiedResponse</a></code>
|
|
13
13
|
- <code title="post /v4/nsdl/parse">client.cas_parser.<a href="./src/cas_parser/resources/cas_parser.py">nsdl</a>(\*\*<a href="src/cas_parser/types/cas_parser_nsdl_params.py">params</a>) -> <a href="./src/cas_parser/types/unified_response.py">UnifiedResponse</a></code>
|
|
14
14
|
- <code title="post /v4/smart/parse">client.cas_parser.<a href="./src/cas_parser/resources/cas_parser.py">smart_parse</a>(\*\*<a href="src/cas_parser/types/cas_parser_smart_parse_params.py">params</a>) -> <a href="./src/cas_parser/types/unified_response.py">UnifiedResponse</a></code>
|
|
15
|
-
|
|
16
|
-
# CasGenerator
|
|
17
|
-
|
|
18
|
-
Types:
|
|
19
|
-
|
|
20
|
-
```python
|
|
21
|
-
from cas_parser.types import CasGeneratorGenerateCasResponse
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
Methods:
|
|
25
|
-
|
|
26
|
-
- <code title="post /v4/generate">client.cas_generator.<a href="./src/cas_parser/resources/cas_generator.py">generate_cas</a>(\*\*<a href="src/cas_parser/types/cas_generator_generate_cas_params.py">params</a>) -> <a href="./src/cas_parser/types/cas_generator_generate_cas_response.py">CasGeneratorGenerateCasResponse</a></code>
|
|
@@ -1,30 +1,32 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "cas-parser-python"
|
|
3
|
-
version = "1.1
|
|
3
|
+
version = "1.2.1"
|
|
4
4
|
description = "The official Python library for the CAS Parser API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "Apache-2.0"
|
|
7
7
|
authors = [
|
|
8
8
|
{ name = "Cas Parser", email = "sameer@casparser.in" },
|
|
9
9
|
]
|
|
10
|
+
|
|
10
11
|
dependencies = [
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
"httpx>=0.23.0, <1",
|
|
13
|
+
"pydantic>=1.9.0, <3",
|
|
14
|
+
"typing-extensions>=4.10, <5",
|
|
15
|
+
"anyio>=3.5.0, <5",
|
|
16
|
+
"distro>=1.7.0, <2",
|
|
17
|
+
"sniffio",
|
|
17
18
|
]
|
|
18
|
-
|
|
19
|
+
|
|
20
|
+
requires-python = ">= 3.9"
|
|
19
21
|
classifiers = [
|
|
20
22
|
"Typing :: Typed",
|
|
21
23
|
"Intended Audience :: Developers",
|
|
22
|
-
"Programming Language :: Python :: 3.8",
|
|
23
24
|
"Programming Language :: Python :: 3.9",
|
|
24
25
|
"Programming Language :: Python :: 3.10",
|
|
25
26
|
"Programming Language :: Python :: 3.11",
|
|
26
27
|
"Programming Language :: Python :: 3.12",
|
|
27
28
|
"Programming Language :: Python :: 3.13",
|
|
29
|
+
"Programming Language :: Python :: 3.14",
|
|
28
30
|
"Operating System :: OS Independent",
|
|
29
31
|
"Operating System :: POSIX",
|
|
30
32
|
"Operating System :: MacOS",
|
|
@@ -39,14 +41,14 @@ Homepage = "https://github.com/CASParser/cas-parser-python"
|
|
|
39
41
|
Repository = "https://github.com/CASParser/cas-parser-python"
|
|
40
42
|
|
|
41
43
|
[project.optional-dependencies]
|
|
42
|
-
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.
|
|
44
|
+
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.9"]
|
|
43
45
|
|
|
44
46
|
[tool.rye]
|
|
45
47
|
managed = true
|
|
46
48
|
# version pins are in requirements-dev.lock
|
|
47
49
|
dev-dependencies = [
|
|
48
50
|
"pyright==1.1.399",
|
|
49
|
-
"mypy",
|
|
51
|
+
"mypy==1.17",
|
|
50
52
|
"respx",
|
|
51
53
|
"pytest",
|
|
52
54
|
"pytest-asyncio",
|
|
@@ -67,7 +69,7 @@ format = { chain = [
|
|
|
67
69
|
# run formatting again to fix any inconsistencies when imports are stripped
|
|
68
70
|
"format:ruff",
|
|
69
71
|
]}
|
|
70
|
-
"format:docs" = "python scripts/utils/ruffen-docs.py README.md api.md"
|
|
72
|
+
"format:docs" = "bash -c 'python scripts/utils/ruffen-docs.py README.md $(find . -type f -name api.md)'"
|
|
71
73
|
"format:ruff" = "ruff format"
|
|
72
74
|
|
|
73
75
|
"lint" = { chain = [
|
|
@@ -141,7 +143,7 @@ filterwarnings = [
|
|
|
141
143
|
# there are a couple of flags that are still disabled by
|
|
142
144
|
# default in strict mode as they are experimental and niche.
|
|
143
145
|
typeCheckingMode = "strict"
|
|
144
|
-
pythonVersion = "3.
|
|
146
|
+
pythonVersion = "3.9"
|
|
145
147
|
|
|
146
148
|
exclude = [
|
|
147
149
|
"_dev",
|
|
@@ -224,6 +226,8 @@ select = [
|
|
|
224
226
|
"B",
|
|
225
227
|
# remove unused imports
|
|
226
228
|
"F401",
|
|
229
|
+
# check for missing future annotations
|
|
230
|
+
"FA102",
|
|
227
231
|
# bare except statements
|
|
228
232
|
"E722",
|
|
229
233
|
# unused arguments
|
|
@@ -246,6 +250,8 @@ unfixable = [
|
|
|
246
250
|
"T203",
|
|
247
251
|
]
|
|
248
252
|
|
|
253
|
+
extend-safe-fixes = ["FA102"]
|
|
254
|
+
|
|
249
255
|
[tool.ruff.lint.flake8-tidy-imports.banned-api]
|
|
250
256
|
"functools.lru_cache".msg = "This function does not retain type information for the wrapped function's arguments; The `lru_cache` function from `_utils` should be used instead"
|
|
251
257
|
|
|
@@ -12,40 +12,45 @@
|
|
|
12
12
|
-e file:.
|
|
13
13
|
aiohappyeyeballs==2.6.1
|
|
14
14
|
# via aiohttp
|
|
15
|
-
aiohttp==3.
|
|
15
|
+
aiohttp==3.13.3
|
|
16
16
|
# via cas-parser-python
|
|
17
17
|
# via httpx-aiohttp
|
|
18
|
-
aiosignal==1.
|
|
18
|
+
aiosignal==1.4.0
|
|
19
19
|
# via aiohttp
|
|
20
|
-
annotated-types==0.
|
|
20
|
+
annotated-types==0.7.0
|
|
21
21
|
# via pydantic
|
|
22
|
-
anyio==4.
|
|
22
|
+
anyio==4.12.1
|
|
23
23
|
# via cas-parser-python
|
|
24
24
|
# via httpx
|
|
25
|
-
argcomplete==3.
|
|
25
|
+
argcomplete==3.6.3
|
|
26
26
|
# via nox
|
|
27
27
|
async-timeout==5.0.1
|
|
28
28
|
# via aiohttp
|
|
29
|
-
attrs==25.
|
|
29
|
+
attrs==25.4.0
|
|
30
30
|
# via aiohttp
|
|
31
|
-
|
|
31
|
+
# via nox
|
|
32
|
+
backports-asyncio-runner==1.2.0
|
|
33
|
+
# via pytest-asyncio
|
|
34
|
+
certifi==2026.1.4
|
|
32
35
|
# via httpcore
|
|
33
36
|
# via httpx
|
|
34
|
-
colorlog==6.
|
|
37
|
+
colorlog==6.10.1
|
|
38
|
+
# via nox
|
|
39
|
+
dependency-groups==1.3.1
|
|
35
40
|
# via nox
|
|
36
|
-
dirty-equals==0.
|
|
37
|
-
distlib==0.
|
|
41
|
+
dirty-equals==0.11
|
|
42
|
+
distlib==0.4.0
|
|
38
43
|
# via virtualenv
|
|
39
|
-
distro==1.
|
|
44
|
+
distro==1.9.0
|
|
40
45
|
# via cas-parser-python
|
|
41
|
-
exceptiongroup==1.
|
|
46
|
+
exceptiongroup==1.3.1
|
|
42
47
|
# via anyio
|
|
43
48
|
# via pytest
|
|
44
|
-
execnet==2.1.
|
|
49
|
+
execnet==2.1.2
|
|
45
50
|
# via pytest-xdist
|
|
46
|
-
filelock==3.
|
|
51
|
+
filelock==3.19.1
|
|
47
52
|
# via virtualenv
|
|
48
|
-
frozenlist==1.
|
|
53
|
+
frozenlist==1.8.0
|
|
49
54
|
# via aiohttp
|
|
50
55
|
# via aiosignal
|
|
51
56
|
h11==0.16.0
|
|
@@ -56,79 +61,89 @@ httpx==0.28.1
|
|
|
56
61
|
# via cas-parser-python
|
|
57
62
|
# via httpx-aiohttp
|
|
58
63
|
# via respx
|
|
59
|
-
httpx-aiohttp==0.1.
|
|
64
|
+
httpx-aiohttp==0.1.12
|
|
60
65
|
# via cas-parser-python
|
|
61
|
-
|
|
66
|
+
humanize==4.13.0
|
|
67
|
+
# via nox
|
|
68
|
+
idna==3.11
|
|
62
69
|
# via anyio
|
|
63
70
|
# via httpx
|
|
64
71
|
# via yarl
|
|
65
|
-
importlib-metadata==7.
|
|
66
|
-
iniconfig==2.
|
|
72
|
+
importlib-metadata==8.7.1
|
|
73
|
+
iniconfig==2.1.0
|
|
67
74
|
# via pytest
|
|
68
75
|
markdown-it-py==3.0.0
|
|
69
76
|
# via rich
|
|
70
77
|
mdurl==0.1.2
|
|
71
78
|
# via markdown-it-py
|
|
72
|
-
multidict==6.
|
|
79
|
+
multidict==6.7.0
|
|
73
80
|
# via aiohttp
|
|
74
81
|
# via yarl
|
|
75
|
-
mypy==1.
|
|
76
|
-
mypy-extensions==1.
|
|
82
|
+
mypy==1.17.0
|
|
83
|
+
mypy-extensions==1.1.0
|
|
77
84
|
# via mypy
|
|
78
|
-
nodeenv==1.
|
|
85
|
+
nodeenv==1.10.0
|
|
79
86
|
# via pyright
|
|
80
|
-
nox==
|
|
81
|
-
packaging==
|
|
87
|
+
nox==2025.11.12
|
|
88
|
+
packaging==25.0
|
|
89
|
+
# via dependency-groups
|
|
82
90
|
# via nox
|
|
83
91
|
# via pytest
|
|
84
|
-
|
|
92
|
+
pathspec==1.0.3
|
|
93
|
+
# via mypy
|
|
94
|
+
platformdirs==4.4.0
|
|
85
95
|
# via virtualenv
|
|
86
|
-
pluggy==1.
|
|
96
|
+
pluggy==1.6.0
|
|
87
97
|
# via pytest
|
|
88
|
-
propcache==0.
|
|
98
|
+
propcache==0.4.1
|
|
89
99
|
# via aiohttp
|
|
90
100
|
# via yarl
|
|
91
|
-
pydantic==2.
|
|
101
|
+
pydantic==2.12.5
|
|
92
102
|
# via cas-parser-python
|
|
93
|
-
pydantic-core==2.
|
|
103
|
+
pydantic-core==2.41.5
|
|
94
104
|
# via pydantic
|
|
95
|
-
pygments==2.
|
|
105
|
+
pygments==2.19.2
|
|
106
|
+
# via pytest
|
|
96
107
|
# via rich
|
|
97
108
|
pyright==1.1.399
|
|
98
|
-
pytest==8.
|
|
109
|
+
pytest==8.4.2
|
|
99
110
|
# via pytest-asyncio
|
|
100
111
|
# via pytest-xdist
|
|
101
|
-
pytest-asyncio==
|
|
102
|
-
pytest-xdist==3.
|
|
103
|
-
python-dateutil==2.
|
|
112
|
+
pytest-asyncio==1.2.0
|
|
113
|
+
pytest-xdist==3.8.0
|
|
114
|
+
python-dateutil==2.9.0.post0
|
|
104
115
|
# via time-machine
|
|
105
|
-
pytz==2023.3.post1
|
|
106
|
-
# via dirty-equals
|
|
107
116
|
respx==0.22.0
|
|
108
|
-
rich==
|
|
109
|
-
ruff==0.
|
|
110
|
-
|
|
111
|
-
# via nodeenv
|
|
112
|
-
six==1.16.0
|
|
117
|
+
rich==14.2.0
|
|
118
|
+
ruff==0.14.13
|
|
119
|
+
six==1.17.0
|
|
113
120
|
# via python-dateutil
|
|
114
|
-
sniffio==1.3.
|
|
115
|
-
# via anyio
|
|
121
|
+
sniffio==1.3.1
|
|
116
122
|
# via cas-parser-python
|
|
117
|
-
time-machine==2.
|
|
118
|
-
tomli==2.0
|
|
123
|
+
time-machine==2.19.0
|
|
124
|
+
tomli==2.4.0
|
|
125
|
+
# via dependency-groups
|
|
119
126
|
# via mypy
|
|
127
|
+
# via nox
|
|
120
128
|
# via pytest
|
|
121
|
-
typing-extensions==4.
|
|
129
|
+
typing-extensions==4.15.0
|
|
130
|
+
# via aiosignal
|
|
122
131
|
# via anyio
|
|
123
132
|
# via cas-parser-python
|
|
133
|
+
# via exceptiongroup
|
|
124
134
|
# via multidict
|
|
125
135
|
# via mypy
|
|
126
136
|
# via pydantic
|
|
127
137
|
# via pydantic-core
|
|
128
138
|
# via pyright
|
|
129
|
-
|
|
139
|
+
# via pytest-asyncio
|
|
140
|
+
# via typing-inspection
|
|
141
|
+
# via virtualenv
|
|
142
|
+
typing-inspection==0.4.2
|
|
143
|
+
# via pydantic
|
|
144
|
+
virtualenv==20.36.1
|
|
130
145
|
# via nox
|
|
131
|
-
yarl==1.
|
|
146
|
+
yarl==1.22.0
|
|
132
147
|
# via aiohttp
|
|
133
|
-
zipp==3.
|
|
148
|
+
zipp==3.23.0
|
|
134
149
|
# via importlib-metadata
|
|
@@ -12,28 +12,28 @@
|
|
|
12
12
|
-e file:.
|
|
13
13
|
aiohappyeyeballs==2.6.1
|
|
14
14
|
# via aiohttp
|
|
15
|
-
aiohttp==3.
|
|
15
|
+
aiohttp==3.13.3
|
|
16
16
|
# via cas-parser-python
|
|
17
17
|
# via httpx-aiohttp
|
|
18
|
-
aiosignal==1.
|
|
18
|
+
aiosignal==1.4.0
|
|
19
19
|
# via aiohttp
|
|
20
|
-
annotated-types==0.
|
|
20
|
+
annotated-types==0.7.0
|
|
21
21
|
# via pydantic
|
|
22
|
-
anyio==4.
|
|
22
|
+
anyio==4.12.1
|
|
23
23
|
# via cas-parser-python
|
|
24
24
|
# via httpx
|
|
25
25
|
async-timeout==5.0.1
|
|
26
26
|
# via aiohttp
|
|
27
|
-
attrs==25.
|
|
27
|
+
attrs==25.4.0
|
|
28
28
|
# via aiohttp
|
|
29
|
-
certifi==
|
|
29
|
+
certifi==2026.1.4
|
|
30
30
|
# via httpcore
|
|
31
31
|
# via httpx
|
|
32
|
-
distro==1.
|
|
32
|
+
distro==1.9.0
|
|
33
33
|
# via cas-parser-python
|
|
34
|
-
exceptiongroup==1.
|
|
34
|
+
exceptiongroup==1.3.1
|
|
35
35
|
# via anyio
|
|
36
|
-
frozenlist==1.
|
|
36
|
+
frozenlist==1.8.0
|
|
37
37
|
# via aiohttp
|
|
38
38
|
# via aiosignal
|
|
39
39
|
h11==0.16.0
|
|
@@ -43,30 +43,34 @@ httpcore==1.0.9
|
|
|
43
43
|
httpx==0.28.1
|
|
44
44
|
# via cas-parser-python
|
|
45
45
|
# via httpx-aiohttp
|
|
46
|
-
httpx-aiohttp==0.1.
|
|
46
|
+
httpx-aiohttp==0.1.12
|
|
47
47
|
# via cas-parser-python
|
|
48
|
-
idna==3.
|
|
48
|
+
idna==3.11
|
|
49
49
|
# via anyio
|
|
50
50
|
# via httpx
|
|
51
51
|
# via yarl
|
|
52
|
-
multidict==6.
|
|
52
|
+
multidict==6.7.0
|
|
53
53
|
# via aiohttp
|
|
54
54
|
# via yarl
|
|
55
|
-
propcache==0.
|
|
55
|
+
propcache==0.4.1
|
|
56
56
|
# via aiohttp
|
|
57
57
|
# via yarl
|
|
58
|
-
pydantic==2.
|
|
58
|
+
pydantic==2.12.5
|
|
59
59
|
# via cas-parser-python
|
|
60
|
-
pydantic-core==2.
|
|
60
|
+
pydantic-core==2.41.5
|
|
61
61
|
# via pydantic
|
|
62
|
-
sniffio==1.3.
|
|
63
|
-
# via anyio
|
|
62
|
+
sniffio==1.3.1
|
|
64
63
|
# via cas-parser-python
|
|
65
|
-
typing-extensions==4.
|
|
64
|
+
typing-extensions==4.15.0
|
|
65
|
+
# via aiosignal
|
|
66
66
|
# via anyio
|
|
67
67
|
# via cas-parser-python
|
|
68
|
+
# via exceptiongroup
|
|
68
69
|
# via multidict
|
|
69
70
|
# via pydantic
|
|
70
71
|
# via pydantic-core
|
|
71
|
-
|
|
72
|
+
# via typing-inspection
|
|
73
|
+
typing-inspection==0.4.2
|
|
74
|
+
# via pydantic
|
|
75
|
+
yarl==1.22.0
|
|
72
76
|
# via aiohttp
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import typing as _t
|
|
4
4
|
|
|
5
5
|
from . import types
|
|
6
|
-
from ._types import NOT_GIVEN, Omit, NoneType, NotGiven, Transport, ProxiesTypes
|
|
6
|
+
from ._types import NOT_GIVEN, Omit, NoneType, NotGiven, Transport, ProxiesTypes, omit, not_given
|
|
7
7
|
from ._utils import file_from_path
|
|
8
8
|
from ._client import (
|
|
9
9
|
Client,
|
|
@@ -48,7 +48,9 @@ __all__ = [
|
|
|
48
48
|
"ProxiesTypes",
|
|
49
49
|
"NotGiven",
|
|
50
50
|
"NOT_GIVEN",
|
|
51
|
+
"not_given",
|
|
51
52
|
"Omit",
|
|
53
|
+
"omit",
|
|
52
54
|
"CasParserError",
|
|
53
55
|
"APIError",
|
|
54
56
|
"APIStatusError",
|