python3-capsolver 1.0.0a0__py3-none-any.whl → 1.0.1__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.
@@ -1 +1 @@
1
- __version__ = "1.0.0a"
1
+ __version__ = "1.0.1"
@@ -79,6 +79,42 @@ class Cloudflare(CaptchaParams):
79
79
  }
80
80
  }
81
81
 
82
+ >>> import asyncio
83
+ >>> from python3_capsolver.cloudflare import Cloudflare
84
+ >>> from python3_capsolver.core.enum import CaptchaTypeEnm
85
+ >>> asyncio.run(Cloudflare(api_key="CAI-12345....",
86
+ ... captcha_type=CaptchaTypeEnm.AntiCloudflareTask)
87
+ ... .aio_captcha_handler(task_payload={
88
+ ... "websiteURL": "https://www.yourwebsite.com",
89
+ ... "proxy": "ip:port:user:pass",
90
+ ... }))
91
+ {
92
+ "errorId":0,
93
+ "errorCode":"None",
94
+ "errorDescription":"None",
95
+ "taskId":"db0a3153-621d-4f5e-8554-a1c032597ee7",
96
+ "status":"ready",
97
+ "solution":{
98
+ "cookies": "cf_clearance=_VPxxxx",
99
+ "headers": {
100
+ "sec-ch-ua": "\"Chromium\";v=\"130\", \"Google Chrome\";v=\"130\", \"Not?A_Brand\";v=\"99\"",
101
+ "sec-ch-ua-platform": "\"Windows\"",
102
+ "accept": "text/html,axxxx",
103
+ "User-Agent": "Mozilla/5.0xxxx",
104
+ "sec-ch-ua-mobile": "?0",
105
+ "sec-fetch-user": "?1",
106
+ "referer": "https://www.yourwebsite.com",
107
+ "Sec-Fetch-Dest": "document",
108
+ "Sec-Fetch-Mode": "navigate",
109
+ "Sec-Fetch-Site": "same-origin",
110
+ "accept-language": "en",
111
+ },
112
+ "page_url": "https://www.yourwebsite.com",
113
+ "proxy": "your proxyxxxx",
114
+ "token": "_VPCTZXP5bhinxxxx"
115
+ }
116
+ }
117
+
82
118
  Notes:
83
119
  https://docs.capsolver.com/en/guide/captcha/cloudflare_turnstile/
84
120
 
@@ -1,4 +1,4 @@
1
- from typing import Dict
1
+ from typing import Any, Dict
2
2
 
3
3
  from python3_capsolver.core.enum import CaptchaTypeEnm
4
4
  from python3_capsolver.core.serializer import TaskSer
@@ -41,15 +41,15 @@ class CaptchaParams(SIOContextManager, AIOContextManager):
41
41
  self._captcha_handling_instrument = CaptchaInstrument()
42
42
  self.sleep_time = sleep_time
43
43
 
44
- def captcha_handler(self, task_payload: Dict) -> Dict[str, str]:
44
+ def captcha_handler(self, task_payload: Dict) -> Dict[str, Any]:
45
45
  """
46
46
  Synchronous method for captcha solving
47
47
 
48
48
  Args:
49
49
  task_payload: Some additional parameters that will be used in creating the task
50
- and will be passed to the payload under ``task`` key.
51
- Like ``proxyLogin``, ``proxyPassword`` and etc. - more info in service docs
52
-
50
+ and will be passed to the payload under ``task`` key.
51
+ Like ``websiteURL``, ``image``, ``proxyPassword``, ``websiteKey`` and etc.
52
+ more info in service docs
53
53
 
54
54
  Returns:
55
55
  Dict with full server response
@@ -61,14 +61,15 @@ class CaptchaParams(SIOContextManager, AIOContextManager):
61
61
  self._captcha_handling_instrument = SIOCaptchaInstrument(captcha_params=self)
62
62
  return self._captcha_handling_instrument.processing_captcha()
63
63
 
64
- async def aio_captcha_handler(self, task_payload: Dict) -> Dict[str, str]:
64
+ async def aio_captcha_handler(self, task_payload: Dict) -> Dict[str, Any]:
65
65
  """
66
66
  Asynchronous method for captcha solving
67
67
 
68
68
  Args:
69
69
  task_payload: Some additional parameters that will be used in creating the task
70
- and will be passed to the payload under ``task`` key.
71
- Like ``proxyLogin``, ``proxyPassword`` and etc. - more info in service docs
70
+ and will be passed to the payload under ``task`` key.
71
+ Like ``websiteURL``, ``image``, ``proxyPassword``, ``websiteKey`` and etc.
72
+ more info in service docs
72
73
 
73
74
  Returns:
74
75
  Dict with full server response
@@ -10,7 +10,7 @@ __all__ = ("PostRequestSer", "TaskSer", "RequestCreateTaskSer", "CaptchaResponse
10
10
 
11
11
 
12
12
  class MyBaseModel(Struct):
13
- def to_dict(self) -> Dict[str, str]:
13
+ def to_dict(self) -> Dict[str, Any]:
14
14
  result = {}
15
15
  for f in self.__struct_fields__:
16
16
  if isinstance(getattr(self, f), Enum):
@@ -39,6 +39,28 @@ class DatadomeSlider(CaptchaParams):
39
39
  }
40
40
  }
41
41
 
42
+ >>> import asyncio
43
+ >>> from python3_capsolver.datadome_slider import DatadomeSlider
44
+ >>> from python3_capsolver.core.enum import CaptchaTypeEnm
45
+ >>> asyncio.run(DatadomeSlider(api_key="CAI-12345....",
46
+ ... captcha_type=CaptchaTypeEnm.DatadomeSliderTask)
47
+ ... .aio_captcha_handler(task_payload={
48
+ ... "captchaUrl": "https://geo.captchaxxxxxx",
49
+ ... "userAgent": "Mozilla/5.0 xxxx",
50
+ ... "proxy": "0.0.0.0:334:user:pass"
51
+ ... }))
52
+ {
53
+ "errorId":0,
54
+ "errorCode":"None",
55
+ "errorDescription":"None",
56
+ "taskId":"db0a3153-621d-4f5e-8554-a1c032597ee7",
57
+ "status":"ready",
58
+ "solution":{
59
+ "userAgent": "Mozilla/5.0 xxxx",
60
+ "cookie": "datadome=yzj_BK..xxxx"
61
+ }
62
+ }
63
+
42
64
  Notes:
43
65
  https://docs.capsolver.com/en/guide/captcha/datadome/
44
66
  """
@@ -55,6 +55,42 @@ class FriendlyCaptcha(CaptchaParams):
55
55
  }
56
56
  }
57
57
 
58
+ >>> import asyncio
59
+ >>> from python3_capsolver.core.enum import CaptchaTypeEnm
60
+ >>> from python3_capsolver.friendly_captcha import FriendlyCaptcha
61
+ >>> asyncio.run(FriendlyCaptcha(api_key="CAP-XXXXX",
62
+ ... captcha_type=CaptchaTypeEnm.FriendlyCaptchaTaskProxyless,
63
+ ... ).aio_captcha_handler(task_payload={
64
+ ... "websiteURL": "https://www.yourwebsite.com",
65
+ ... "proxy": "ip:port:user:pass"
66
+ ... }))
67
+ {
68
+ "errorId":0,
69
+ "errorCode":"None",
70
+ "errorDescription":"None",
71
+ "taskId":"db0a3153-621d-4f5e-8554-a1c032597ee7",
72
+ "status":"ready",
73
+ "solution":{
74
+ "cookies": "cf_clearance=_VPxxxx",
75
+ "headers": {
76
+ "sec-ch-ua": "\"Chromium\";v=\"130\", \"Google Chrome\";v=\"130\", \"Not?A_Brand\";v=\"99\"",
77
+ "sec-ch-ua-platform": "\"Windows\"",
78
+ "accept": "text/html,axxxx",
79
+ "User-Agent": "Mozilla/5.0xxxx",
80
+ "sec-ch-ua-mobile": "?0",
81
+ "sec-fetch-user": "?1",
82
+ "referer": "https://www.yourwebsite.com",
83
+ "Sec-Fetch-Dest": "document",
84
+ "Sec-Fetch-Mode": "navigate",
85
+ "Sec-Fetch-Site": "same-origin",
86
+ "accept-language": "en",
87
+ },
88
+ "page_url": "https://www.yourwebsite.com",
89
+ "proxy": "your proxyxxxx",
90
+ "token": "_VPCTZXP5bhinxxxx"
91
+ }
92
+ }
93
+
58
94
  Notes:
59
95
  https://docs.capsolver.com/en/guide/captcha/FriendlyCaptcha/
60
96
  """
@@ -1,4 +1,4 @@
1
- from typing import Dict
1
+ from typing import Any, Dict
2
2
 
3
3
  from .core.base import CaptchaParams
4
4
  from .core.enum import CaptchaTypeEnm
@@ -88,7 +88,7 @@ class ImageToText(CaptchaParams):
88
88
 
89
89
  super().__init__(api_key=api_key, captcha_type=CaptchaTypeEnm.ImageToTextTask, **kwargs)
90
90
 
91
- def captcha_handler(self, task_payload: Dict) -> Dict[str, str]:
91
+ def captcha_handler(self, task_payload: Dict) -> Dict[str, Any]:
92
92
  """
93
93
  Synchronous method for captcha solving
94
94
 
@@ -104,7 +104,7 @@ class ImageToText(CaptchaParams):
104
104
  task_payload.pop("type", None)
105
105
  return super().captcha_handler(task_payload=task_payload)
106
106
 
107
- async def aio_captcha_handler(self, task_payload: Dict) -> Dict[str, str]:
107
+ async def aio_captcha_handler(self, task_payload: Dict) -> Dict[str, Any]:
108
108
  """
109
109
  Asynchronous method for captcha solving
110
110
 
@@ -38,6 +38,23 @@ class MtCaptcha(CaptchaParams):
38
38
  }
39
39
  }
40
40
 
41
+ >>> import asyncio
42
+ >>> from python3_capsolver.mt_captcha import MtCaptcha
43
+ >>> from python3_capsolver.core.enum import CaptchaTypeEnm
44
+ >>> asyncio.run(MtCaptcha(api_key="CAI-12345....",
45
+ ... captcha_type=CaptchaTypeEnm.MtCaptchaTaskProxyLess)
46
+ ... .aio_captcha_handler(task_payload={"websiteURL": "some-url"}))
47
+ {
48
+ "errorId":0,
49
+ "errorCode":"None",
50
+ "errorDescription":"None",
51
+ "taskId":"db0a3153-621d-4f5e-8554-a1c032597ee7",
52
+ "status":"ready",
53
+ "solution":{
54
+ "token": ""
55
+ }
56
+ }
57
+
41
58
  Notes:
42
59
  https://docs.capsolver.com/en/guide/captcha/MtCaptcha/
43
60
  """
@@ -1,4 +1,4 @@
1
- from typing import Dict
1
+ from typing import Any, Dict
2
2
 
3
3
  from .core.base import CaptchaParams
4
4
  from .core.enum import CaptchaTypeEnm
@@ -69,7 +69,7 @@ class VisionEngine(CaptchaParams):
69
69
  def __init__(self, api_key: str, **kwargs):
70
70
  super().__init__(api_key=api_key, captcha_type=CaptchaTypeEnm.VisionEngine, **kwargs)
71
71
 
72
- def captcha_handler(self, task_payload: Dict) -> Dict[str, str]:
72
+ def captcha_handler(self, task_payload: Dict) -> Dict[str, Any]:
73
73
  """
74
74
  Synchronous method for captcha solving
75
75
 
@@ -85,7 +85,7 @@ class VisionEngine(CaptchaParams):
85
85
  task_payload.pop("type", None)
86
86
  return super().captcha_handler(task_payload=task_payload)
87
87
 
88
- async def aio_captcha_handler(self, task_payload: Dict) -> Dict[str, str]:
88
+ async def aio_captcha_handler(self, task_payload: Dict) -> Dict[str, Any]:
89
89
  """
90
90
  Asynchronous method for captcha solving
91
91
 
@@ -12,7 +12,7 @@ class YandexCaptcha(CaptchaParams):
12
12
 
13
13
  Args:
14
14
  api_key: Capsolver API key
15
- captcha_type: Captcha type name, like ``FriendlyCaptchaTaskProxyless`` and etc.
15
+ captcha_type: Captcha type name, like ``YandexCaptchaTaskProxyLess`` and etc.
16
16
  kwargs: additional params for client, like captcha waiting time
17
17
  available keys:
18
18
  - sleep_time: int - captcha solution waintig time in sec
@@ -39,14 +39,34 @@ class YandexCaptcha(CaptchaParams):
39
39
  }
40
40
  }
41
41
 
42
+ >>> import asyncio
43
+ >>> from python3_capsolver.core.enum import CaptchaTypeEnm
44
+ >>> from python3_capsolver.yandex import YandexCaptcha
45
+ >>> asyncio.run(YandexCaptcha(api_key="CAP-XXXXX",
46
+ ... captcha_type=CaptchaTypeEnm.YandexCaptchaTaskProxyLess,
47
+ ... ).aio_captcha_handler(task_payload={
48
+ ... "websiteURL": "https://www.yourwebsite.com",
49
+ ... "websiteKey": "ysc1_bFdbbET5WBnPTvoE5jTXxxxx"
50
+ ... }))
51
+ {
52
+ "errorId":0,
53
+ "errorCode":"None",
54
+ "errorDescription":"None",
55
+ "taskId":"db0a3153-621d-4f5e-8554-a1c032597ee7",
56
+ "status":"ready",
57
+ "solution":{
58
+ "token": "dD0xNzMzMjc0MjkzO2k9Nxxxx"
59
+ }
60
+ }
61
+
42
62
  Notes:
43
- https://docs.capsolver.com/en/guide/captcha/FriendlyCaptcha/
63
+ https://docs.capsolver.com/en/guide/captcha/YandexCaptcha/
44
64
  """
45
65
 
46
66
  def __init__(
47
67
  self,
48
68
  api_key: str,
49
- captcha_type: Union[CaptchaTypeEnm, str] = CaptchaTypeEnm.FriendlyCaptchaTaskProxyless,
69
+ captcha_type: Union[CaptchaTypeEnm, str] = CaptchaTypeEnm.YandexCaptchaTaskProxyLess,
50
70
  **kwargs,
51
71
  ):
52
72
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: python3-capsolver
3
- Version: 1.0.0a0
3
+ Version: 1.0.1
4
4
  Summary: Python 3.8+ Capsolver library with AIO module.
5
5
  Author-email: AndreiDrang <python-captcha@pm.me>
6
6
  License: MIT License
@@ -44,6 +44,7 @@ Requires-Dist: tenacity<10,>=8
44
44
  [![Downloads](https://static.pepy.tech/badge/python3-capsolver/month)](https://pepy.tech/project/python3-capsolver)
45
45
  [![Static Badge](https://img.shields.io/badge/docs-Sphinx-green?label=Documentation&labelColor=gray)](https://andreidrang.github.io/python3-capsolver/)
46
46
 
47
+ [![Maintainability](https://api.codeclimate.com/v1/badges/3c30167b5fb37a0775ea/maintainability)](https://codeclimate.com/github/AndreiDrang/python3-capsolver/maintainability)
47
48
  [![Codacy Badge](https://app.codacy.com/project/badge/Grade/323d4eda0fe1477bbea8fe8902b9e97e)](https://www.codacy.com/gh/AndreiDrang/python3-capsolver/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=AndreiDrang/python3-capsolver&amp;utm_campaign=Badge_Grade)
48
49
  [![codecov](https://codecov.io/gh/AndreiDrang/python3-capsolver/branch/main/graph/badge.svg?token=2L4VVIF4G8)](https://codecov.io/gh/AndreiDrang/python3-capsolver)
49
50
 
@@ -0,0 +1,28 @@
1
+ python3_capsolver/__init__.py,sha256=141uoiYvgRblIWZAy7AhQJz6iVqzY4b5cLxExIaKUlg,62
2
+ python3_capsolver/__version__.py,sha256=d4QHYmS_30j0hPN8NmNPnQ_Z0TphDRbu4MtQj9cT9e8,22
3
+ python3_capsolver/aws_waf.py,sha256=wwNjW2bkS-EdxEkTDxW9zwUGCnW_bbEhtruSgw_R94I,5677
4
+ python3_capsolver/cloudflare.py,sha256=SCuC4femAkNWY9taGELuGiGI8mDI5N2ziWAewNhAQrI,5367
5
+ python3_capsolver/control.py,sha256=QodZGEZcio2giwX8WvbVK20LvTRGmK5d_mqjBZFdncc,2083
6
+ python3_capsolver/datadome_slider.py,sha256=kh15W30CQl-RgzcyCm_2ldluYAvbjyTl3mS9SFGj51k,2805
7
+ python3_capsolver/friendly_captcha.py,sha256=S1nenBwG3P2hiB-In13tWMNnITou68s8q-h3QXplubI,4412
8
+ python3_capsolver/gee_test.py,sha256=VjBOVggAkVRx6pGRys8kXl0-ZLFNCOMSYK_Bn95zk7o,2903
9
+ python3_capsolver/image_to_text.py,sha256=BSOBkC9LQ7TMifnWPZtPH0-AMx74595UND8t1ZyIkRA,4228
10
+ python3_capsolver/mt_captcha.py,sha256=mtHyqGat34odh_2KLBviEHMxnFi3SSSvRaVQAE1k0HA,2267
11
+ python3_capsolver/recaptcha.py,sha256=tiZPC_OGfhA30SH6lnqo2curVDLDwGwGLvx1zVn3gYY,3052
12
+ python3_capsolver/vision_engine.py,sha256=Fegdtc1Gyrd-meQXu5I-7xh762kGGNy_E1TkawwbWUA,3791
13
+ python3_capsolver/yandex.py,sha256=4NvopCD9pKVyUNLlQqj2Yra3n_YY0NG8Gqc5sVK9Yis,2770
14
+ python3_capsolver/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
+ python3_capsolver/core/aio_captcha_instrument.py,sha256=NAMVky6mIY83nnzaBtsgpcpJEWlXS2BVarvJkRjwzSY,4620
16
+ python3_capsolver/core/base.py,sha256=KB8q_X4GuPawc1SuHDmoJeniKM73eFFkLhNW13sixmQ,3170
17
+ python3_capsolver/core/captcha_instrument.py,sha256=2lL_kqlTPoLaaMuS3Tib4ImeybYIOj4yEAxrFg9oeZI,5231
18
+ python3_capsolver/core/const.py,sha256=bY8bMw6XsxBuX4LRQ4mTxQmVnsgCWgoUVXTJlRLx3I4,803
19
+ python3_capsolver/core/context_instr.py,sha256=x3JQNd1ydlNdhuGKX_5gc-5Duq2pZJME0fs2YMQyGv4,503
20
+ python3_capsolver/core/enum.py,sha256=J5KSAOSHNy8Ivmv_yWcWORvavdorOtdZOOlfTohvFcE,2428
21
+ python3_capsolver/core/serializer.py,sha256=rE7VX_6FCisOnK-HS4K90LkuWU3cOVa6GwkvbFgjhnA,1342
22
+ python3_capsolver/core/sio_captcha_instrument.py,sha256=eRlGkZe6IZ-G0l6NnC0XUiaY_Lan364kNxun3kKuaA0,4505
23
+ python3_capsolver/core/utils.py,sha256=5PMxryy22MIUmUXPIHqz38vg2C2bqa7uXHUNYRF8DlY,633
24
+ python3_capsolver-1.0.1.dist-info/LICENSE,sha256=N_utAsqhTp1pXXp-PTE-CFMg5BfIIqTbF-phwwzOHeQ,1063
25
+ python3_capsolver-1.0.1.dist-info/METADATA,sha256=429EitBZCqwuLaWPHTo3E2RUO94QZfTO0UPn9BH6e3A,5348
26
+ python3_capsolver-1.0.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
27
+ python3_capsolver-1.0.1.dist-info/top_level.txt,sha256=yws7CqjoBfrn2ebCkAQmEaVlZ-zhbtflqpCDwAEX4kI,18
28
+ python3_capsolver-1.0.1.dist-info/RECORD,,
@@ -1,28 +0,0 @@
1
- python3_capsolver/__init__.py,sha256=141uoiYvgRblIWZAy7AhQJz6iVqzY4b5cLxExIaKUlg,62
2
- python3_capsolver/__version__.py,sha256=1brYiVUYR2domvrgdn9WgfP1w5wF4RsXI7MsjLmKjSM,23
3
- python3_capsolver/aws_waf.py,sha256=wwNjW2bkS-EdxEkTDxW9zwUGCnW_bbEhtruSgw_R94I,5677
4
- python3_capsolver/cloudflare.py,sha256=wGNG8bXLhWCTkuhnoSy48h8gJQVVQcdigQlmLatxSPQ,3742
5
- python3_capsolver/control.py,sha256=QodZGEZcio2giwX8WvbVK20LvTRGmK5d_mqjBZFdncc,2083
6
- python3_capsolver/datadome_slider.py,sha256=Iu-JJ0fdvj6ePkkTxYoqsMu4VYlL5ITMICm91CSwviQ,1890
7
- python3_capsolver/friendly_captcha.py,sha256=ZMeWCyuNTpJcVs67Yq12OI14cXRqHB64u84jc1ZndnU,2729
8
- python3_capsolver/gee_test.py,sha256=VjBOVggAkVRx6pGRys8kXl0-ZLFNCOMSYK_Bn95zk7o,2903
9
- python3_capsolver/image_to_text.py,sha256=DOPF97Yv2khrFGOcuh924IW8L9DLiJ9RY0DfmKGgDJ4,4223
10
- python3_capsolver/mt_captcha.py,sha256=a5fr4ZKb3G-F8w6c34oxYxp-2CBXgvCqzoUQlZ4y-4M,1626
11
- python3_capsolver/recaptcha.py,sha256=tiZPC_OGfhA30SH6lnqo2curVDLDwGwGLvx1zVn3gYY,3052
12
- python3_capsolver/vision_engine.py,sha256=RLpefX09M7xKznvoCMHVvO51fPkH69Zjz51san7xnQQ,3786
13
- python3_capsolver/yandex.py,sha256=m32LwmX9uJ0rE70mUmmjo9htxvdYOimG-yWuFt7C88s,1908
14
- python3_capsolver/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- python3_capsolver/core/aio_captcha_instrument.py,sha256=NAMVky6mIY83nnzaBtsgpcpJEWlXS2BVarvJkRjwzSY,4620
16
- python3_capsolver/core/base.py,sha256=-RQ0SRyzLnfgg27jwZ6UDlmV5jECsnx5TkalN3kfj3g,3076
17
- python3_capsolver/core/captcha_instrument.py,sha256=2lL_kqlTPoLaaMuS3Tib4ImeybYIOj4yEAxrFg9oeZI,5231
18
- python3_capsolver/core/const.py,sha256=bY8bMw6XsxBuX4LRQ4mTxQmVnsgCWgoUVXTJlRLx3I4,803
19
- python3_capsolver/core/context_instr.py,sha256=x3JQNd1ydlNdhuGKX_5gc-5Duq2pZJME0fs2YMQyGv4,503
20
- python3_capsolver/core/enum.py,sha256=J5KSAOSHNy8Ivmv_yWcWORvavdorOtdZOOlfTohvFcE,2428
21
- python3_capsolver/core/serializer.py,sha256=NEh2_T2P2NRG5PQR3Icy9Y27kQSUZ_GgI-rayouzK1U,1342
22
- python3_capsolver/core/sio_captcha_instrument.py,sha256=eRlGkZe6IZ-G0l6NnC0XUiaY_Lan364kNxun3kKuaA0,4505
23
- python3_capsolver/core/utils.py,sha256=5PMxryy22MIUmUXPIHqz38vg2C2bqa7uXHUNYRF8DlY,633
24
- python3_capsolver-1.0.0a0.dist-info/LICENSE,sha256=N_utAsqhTp1pXXp-PTE-CFMg5BfIIqTbF-phwwzOHeQ,1063
25
- python3_capsolver-1.0.0a0.dist-info/METADATA,sha256=9Qm1yiYvgNYi1LmFp9qRvWZhAlMRZ41Qs6p_aYoC4tc,5175
26
- python3_capsolver-1.0.0a0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
27
- python3_capsolver-1.0.0a0.dist-info/top_level.txt,sha256=yws7CqjoBfrn2ebCkAQmEaVlZ-zhbtflqpCDwAEX4kI,18
28
- python3_capsolver-1.0.0a0.dist-info/RECORD,,