fabricatio 0.3.14.dev1__cp312-cp312-win_amd64.whl → 0.3.14.dev2__cp312-cp312-win_amd64.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.
Files changed (47) hide show
  1. fabricatio/__init__.py +1 -2
  2. fabricatio/actions/article.py +31 -31
  3. fabricatio/actions/article_rag.py +58 -58
  4. fabricatio/actions/output.py +58 -24
  5. fabricatio/actions/rag.py +2 -3
  6. fabricatio/capabilities/advanced_judge.py +4 -7
  7. fabricatio/capabilities/advanced_rag.py +2 -1
  8. fabricatio/capabilities/censor.py +5 -4
  9. fabricatio/capabilities/check.py +27 -27
  10. fabricatio/capabilities/correct.py +22 -22
  11. fabricatio/capabilities/extract.py +33 -33
  12. fabricatio/capabilities/persist.py +103 -0
  13. fabricatio/capabilities/propose.py +2 -2
  14. fabricatio/capabilities/rag.py +37 -37
  15. fabricatio/capabilities/rating.py +66 -70
  16. fabricatio/capabilities/review.py +12 -11
  17. fabricatio/capabilities/task.py +19 -18
  18. fabricatio/decorators.py +9 -9
  19. fabricatio/{core.py → emitter.py} +17 -19
  20. fabricatio/journal.py +2 -1
  21. fabricatio/models/action.py +9 -11
  22. fabricatio/models/extra/aricle_rag.py +15 -12
  23. fabricatio/models/extra/article_base.py +4 -5
  24. fabricatio/models/extra/article_essence.py +2 -1
  25. fabricatio/models/extra/article_main.py +12 -12
  26. fabricatio/models/extra/article_outline.py +2 -1
  27. fabricatio/models/extra/article_proposal.py +1 -1
  28. fabricatio/models/extra/rag.py +2 -2
  29. fabricatio/models/extra/rule.py +2 -1
  30. fabricatio/models/generic.py +48 -131
  31. fabricatio/models/kwargs_types.py +1 -9
  32. fabricatio/models/role.py +14 -13
  33. fabricatio/models/task.py +3 -4
  34. fabricatio/models/tool.py +4 -4
  35. fabricatio/models/usages.py +130 -144
  36. fabricatio/parser.py +59 -99
  37. fabricatio/rust.cp312-win_amd64.pyd +0 -0
  38. fabricatio/rust.pyi +39 -59
  39. fabricatio/utils.py +6 -170
  40. fabricatio-0.3.14.dev2.data/scripts/tdown.exe +0 -0
  41. {fabricatio-0.3.14.dev1.data → fabricatio-0.3.14.dev2.data}/scripts/ttm.exe +0 -0
  42. {fabricatio-0.3.14.dev1.dist-info → fabricatio-0.3.14.dev2.dist-info}/METADATA +1 -1
  43. fabricatio-0.3.14.dev2.dist-info/RECORD +64 -0
  44. fabricatio-0.3.14.dev1.data/scripts/tdown.exe +0 -0
  45. fabricatio-0.3.14.dev1.dist-info/RECORD +0 -63
  46. {fabricatio-0.3.14.dev1.dist-info → fabricatio-0.3.14.dev2.dist-info}/WHEEL +0 -0
  47. {fabricatio-0.3.14.dev1.dist-info → fabricatio-0.3.14.dev2.dist-info}/licenses/LICENSE +0 -0
fabricatio/utils.py CHANGED
@@ -1,36 +1,31 @@
1
1
  """A collection of utility functions for the fabricatio package."""
2
2
 
3
- from typing import Any, Dict, Iterable, List, Mapping, Optional, Tuple, Type, TypedDict, Unpack, overload
3
+ from typing import Any, Dict, Iterable, List, Mapping, Optional, Tuple, Type, overload
4
4
 
5
5
  from fabricatio.decorators import precheck_package
6
- from fabricatio.journal import logger
7
- from fabricatio.models.kwargs_types import RerankOptions
8
6
 
9
7
 
10
8
  def is_subclass_of_base(cls: Type, base_module: str, base_name: str) -> bool:
11
9
  """Determines if the given class is a subclass of an unimported base class.
12
-
10
+
13
11
  Args:
14
12
  cls: The class to check
15
13
  base_module: The module name of the base class
16
14
  base_name: The class name of the base class
17
-
15
+
18
16
  Returns:
19
17
  bool: True if cls is a subclass of the specified base class, False otherwise
20
18
  """
21
- for ancestor in cls.__mro__:
22
- if ancestor.__module__ == base_module and ancestor.__name__ == base_name:
23
- return True
24
- return False
19
+ return any(ancestor.__module__ == base_module and ancestor.__name__ == base_name for ancestor in cls.__mro__)
25
20
 
26
21
 
27
22
  def is_subclass_of_any_base(cls: Type, bases: List[Tuple[str, str]]) -> bool:
28
23
  """Determines if the given class is a subclass of the candidate base classes.
29
-
24
+
30
25
  Args:
31
26
  cls: The class to check
32
27
  bases: A list of tuples where each tuple contains (module_name, class_name)
33
-
28
+
34
29
  Returns:
35
30
  bool: True if cls is a subclass of the specified base classes, False otherwise
36
31
  """
@@ -159,162 +154,3 @@ def wrapp_in_block(string: str, title: str, style: str = "-") -> str:
159
154
  str: The wrapped string.
160
155
  """
161
156
  return f"--- Start of {title} ---\n{string}\n--- End of {title} ---".replace("-", style)
162
-
163
-
164
- class RerankResult(TypedDict):
165
- """The rerank result."""
166
-
167
- index: int
168
- score: float
169
-
170
-
171
- class RerankerAPI:
172
- """A class to interact with the /rerank API for text reranking."""
173
-
174
- def __init__(self, base_url: str) -> None:
175
- """Initialize the RerankerAPI instance.
176
-
177
- Args:
178
- base_url (str): The base URL of the TEI-deployed reranker model API.
179
- Example: "http://localhost:8000".
180
- """
181
- self.base_url = base_url.rstrip("/") # Ensure no trailing slashes
182
-
183
- @staticmethod
184
- def _map_error_code(status_code: int, error_data: Dict[str, str]) -> Exception:
185
- """Map HTTP status codes and error data to specific exceptions.
186
-
187
- Args:
188
- status_code (int): The HTTP status code returned by the API.
189
- error_data (Dict[str, str]): The error details returned by the API.
190
-
191
- Returns:
192
- Exception: A specific exception based on the error code and message.
193
- """
194
- error_message = error_data.get("error", "Unknown error")
195
-
196
- if status_code == 400:
197
- return ValueError(f"Bad request: {error_message}")
198
- if status_code == 413:
199
- return ValueError(f"Batch size error: {error_message}")
200
- if status_code == 422:
201
- return RuntimeError(f"Tokenization error: {error_message}")
202
- if status_code == 424:
203
- return RuntimeError(f"Rerank error: {error_message}")
204
- if status_code == 429:
205
- return RuntimeError(f"Model overloaded: {error_message}")
206
- return RuntimeError(f"Unexpected error ({status_code}): {error_message}")
207
-
208
- def rerank(self, query: str, texts: List[str], **kwargs: Unpack[RerankOptions]) -> List[RerankResult]:
209
- """Call the /rerank API to rerank a list of texts based on a query (synchronous).
210
-
211
- Args:
212
- query (str): The query string used for matching with the texts.
213
- texts (List[str]): A list of texts to be reranked.
214
- **kwargs (Unpack[RerankOptions]): Optional keyword arguments:
215
- - raw_scores (bool, optional): Whether to return raw scores. Defaults to False.
216
- - truncate (bool, optional): Whether to truncate the texts. Defaults to False.
217
- - truncation_direction (Literal["left", "right"], optional): Direction of truncation. Defaults to "right".
218
-
219
- Returns:
220
- List[RerankResult]: A list of dictionaries containing the reranked results.
221
- Each dictionary includes:
222
- - "index" (int): The original index of the text.
223
- - "score" (float): The relevance score.
224
-
225
- Raises:
226
- ValueError: If input parameters are invalid or the API returns a client-side error.
227
- RuntimeError: If the API call fails or returns a server-side error.
228
- """
229
- import requests
230
- # Validate inputs
231
- if not isinstance(query, str) or not query.strip():
232
- raise ValueError("Query must be a non-empty string.")
233
- if not isinstance(texts, list) or not all(isinstance(text, str) for text in texts):
234
- raise ValueError("Texts must be a list of strings.")
235
-
236
- # Construct the request payload
237
- payload = {
238
- "query": query,
239
- "texts": texts,
240
- **kwargs,
241
- }
242
-
243
- try:
244
- # Send POST request to the API
245
- response = requests.post(f"{self.base_url}/rerank", json=payload)
246
-
247
- # Handle non-200 status codes
248
- if not response.ok:
249
- error_data = None
250
- if "application/json" in response.headers.get("Content-Type", ""):
251
- error_data = response.json()
252
- else:
253
- error_data = {"error": response.text, "error_type": "unexpected_mimetype"}
254
- raise self._map_error_code(response.status_code, error_data)
255
-
256
- # Parse the JSON response
257
- data: List[RerankResult] = response.json()
258
- logger.debug(f"Rerank for `{query}` get {[s['score'] for s in data]}")
259
- return data
260
-
261
- except requests.exceptions.RequestException as e:
262
- raise RuntimeError(f"Failed to connect to the API: {e}") from e
263
-
264
- async def arerank(self, query: str, texts: List[str], **kwargs: Unpack[RerankOptions]) -> List[RerankResult]:
265
- """Call the /rerank API to rerank a list of texts based on a query (asynchronous).
266
-
267
- Args:
268
- query (str): The query string used for matching with the texts.
269
- texts (List[str]): A list of texts to be reranked.
270
- **kwargs (Unpack[RerankOptions]): Optional keyword arguments:
271
- - raw_scores (bool, optional): Whether to return raw scores. Defaults to False.
272
- - truncate (bool, optional): Whether to truncate the texts. Defaults to False.
273
- - truncation_direction (Literal["left", "right"], optional): Direction of truncation. Defaults to "right".
274
-
275
- Returns:
276
- List[RerankResult]: A list of dictionaries containing the reranked results.
277
- Each dictionary includes:
278
- - "index" (int): The original index of the text.
279
- - "score" (float): The relevance score.
280
-
281
- Raises:
282
- ValueError: If input parameters are invalid or the API returns a client-side error.
283
- RuntimeError: If the API call fails or returns a server-side error.
284
- """
285
- import aiohttp
286
-
287
- # Validate inputs
288
- if not isinstance(query, str) or not query.strip():
289
- raise ValueError("Query must be a non-empty string.")
290
- if not isinstance(texts, list) or not all(isinstance(text, str) for text in texts):
291
- raise ValueError("Texts must be a list of strings.")
292
-
293
- # Construct the request payload
294
- payload = {
295
- "query": query,
296
- "texts": texts,
297
- **kwargs,
298
- }
299
-
300
- try:
301
- # Send POST request to the API using aiohttp
302
- async with (
303
- aiohttp.ClientSession() as session,
304
- session.post(f"{self.base_url}/rerank", json=payload) as response,
305
- ):
306
- # Handle non-200 status codes
307
- if not response.ok:
308
- if "application/json" in response.headers.get("Content-Type", ""):
309
- error_data = await response.json()
310
- else:
311
- error_data = {"error": await response.text(), "error_type": "unexpected_mimetype"}
312
- raise self._map_error_code(response.status, error_data)
313
-
314
- # Parse the JSON response
315
- data: List[RerankResult] = await response.json()
316
- logger.debug(f"Rerank for `{query}` get {[s['score'] for s in data]}")
317
- return data
318
-
319
- except aiohttp.ClientError as e:
320
- raise RuntimeError(f"Failed to connect to the API: {e}") from e
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fabricatio
3
- Version: 0.3.14.dev1
3
+ Version: 0.3.14.dev2
4
4
  Classifier: License :: OSI Approved :: MIT License
5
5
  Classifier: Programming Language :: Rust
6
6
  Classifier: Programming Language :: Python :: 3.12
@@ -0,0 +1,64 @@
1
+ fabricatio-0.3.14.dev2.dist-info/METADATA,sha256=MKj4CKYFdkLEn75ag-XpvJHS1g8NRiiDGMUhEKdDiA8,5267
2
+ fabricatio-0.3.14.dev2.dist-info/WHEEL,sha256=jABKVkLC9kJr8mi_er5jOqpiQUjARSLXDUIIxDqsS50,96
3
+ fabricatio-0.3.14.dev2.dist-info/licenses/LICENSE,sha256=do7J7EiCGbq0QPbMAL_FqLYufXpHnCnXBOuqVPwSV8Y,1088
4
+ fabricatio/actions/article.py,sha256=TPS2fOqCymKv2hK2c_WmMRMKNBkvN8M91QkB9ar8-bg,12507
5
+ fabricatio/actions/article_rag.py,sha256=e1fVh7Jph2zVD0bRAmK2dJ0BVkSEvF-FPfxUKujkn6s,18407
6
+ fabricatio/actions/fs.py,sha256=gJR14U4ln35nt8Z7OWLVAZpqGaLnED-r1Yi-lX22tkI,959
7
+ fabricatio/actions/output.py,sha256=jZL72D5uFobKNiVFapnVxBcjSNqGEThYNlCUKQvZwz8,9935
8
+ fabricatio/actions/rag.py,sha256=vgCzIfbSd3_vL3QxB12PY4h12V9Pe3sZRsWme0KC6X8,3583
9
+ fabricatio/actions/rules.py,sha256=dkvCgNDjt2KSO1VgPRsxT4YBmIIMeetZb5tiz-slYkU,3640
10
+ fabricatio/actions/__init__.py,sha256=wVENCFtpVb1rLFxoOFJt9-8smLWXuJV7IwA8P3EfFz4,48
11
+ fabricatio/capabilities/advanced_judge.py,sha256=jQ_Gsn6L8EKb6KQi3j0G0GSUz2j8D2220C1hIhrAeU8,682
12
+ fabricatio/capabilities/advanced_rag.py,sha256=DYh-imLQkjVOgKd__OEbwGzqwNeTtX_6NBGx_bCiFs8,2539
13
+ fabricatio/capabilities/censor.py,sha256=e0tHll4J_-TT8-Vn1OZ1innVZbJfx55oyGtDoEI99r8,4745
14
+ fabricatio/capabilities/check.py,sha256=6IC6F0IhYVpSf9pJ8r9lq40l_FF3qf-iJcTRWwpnkdg,8591
15
+ fabricatio/capabilities/correct.py,sha256=-JR8ZUAtagmNXepVyY679MBUyFCZwtKPjv8dANJMZiE,10403
16
+ fabricatio/capabilities/extract.py,sha256=E7CLZflWzJ6C6DVLEWysYZ_48g_-F93gZJVU56k2-XA,2523
17
+ fabricatio/capabilities/persist.py,sha256=9XnKoeZ62YjXVDpYnkbDFf62B_Mz46WVsq1dTr2Wvvc,3421
18
+ fabricatio/capabilities/propose.py,sha256=v8OiUHc8GU7Jg1zAUghYhrI-AKgmBeUvQMo22ZAOddw,2030
19
+ fabricatio/capabilities/rag.py,sha256=D5rULrQxPmp4kVLP_jBE4yal1v9N68XOgBdJqGvVHpU,10979
20
+ fabricatio/capabilities/rating.py,sha256=cm-s2YJMYcS36mR9b7XNwRQ1x0h0uWxLHCapoAORv8I,17815
21
+ fabricatio/capabilities/review.py,sha256=l06BYcQzPi7VKmWdplj9L6WvZEscZqW1Wx9OhR-UnNw,5061
22
+ fabricatio/capabilities/task.py,sha256=-b92cGi7b3B30kOSS-90_H6BjA0VF_cjc1BzPbO5MkI,4401
23
+ fabricatio/capabilities/__init__.py,sha256=v1cHRHIJ2gxyqMLNCs6ERVcCakSasZNYzmMI4lqAcls,57
24
+ fabricatio/decorators.py,sha256=OohwKgc5dUjybv70D-J2lA0C9zjUuq8-gzU5O8JPl8w,8962
25
+ fabricatio/emitter.py,sha256=n4vH6E7lcT57qVve_3hUAdfvj0mQUDkWu6iU5aNztB8,6341
26
+ fabricatio/fs/curd.py,sha256=652nHulbJ3gwt0Z3nywtPMmjhEyglDvEfc3p7ieJNNA,4777
27
+ fabricatio/fs/readers.py,sha256=UXvcJO3UCsxHu9PPkg34Yh55Zi-miv61jD_wZQJgKRs,1751
28
+ fabricatio/fs/__init__.py,sha256=USoMI_HcIr3Yc77_JQYYsXrsplYPXtFTaNB9YgFfC4s,713
29
+ fabricatio/journal.py,sha256=mnbdB1Dw-mhEKIgWlPKn7W07ssg-6dmxMXilIGQMFV8,216
30
+ fabricatio/models/action.py,sha256=JCJY27jloElrMBmSNC0tZtMjvgKJtksy2HimFqTKCOM,10082
31
+ fabricatio/models/adv_kwargs_types.py,sha256=IBV3ZcsNLvvEjO_2hBpYg_wLSpNKaMx6Ndam3qXJCw8,2097
32
+ fabricatio/models/extra/advanced_judge.py,sha256=INUl_41C8jkausDekkjnEmTwNfLCJ23TwFjq2cM23Cw,1092
33
+ fabricatio/models/extra/aricle_rag.py,sha256=fTxlQyrzyl9bLCC5Zreb71TKaJ7xiHqqyR62HXr2unQ,11935
34
+ fabricatio/models/extra/article_base.py,sha256=Hm78qqqkZpeLlt979cgGiam3LE4CussLv0nQkNC9mW8,16769
35
+ fabricatio/models/extra/article_essence.py,sha256=z3Qz6xVsB9k-K-c4Y2CoKzxZrXaUd4oyt2Mb6hGDYdg,2793
36
+ fabricatio/models/extra/article_main.py,sha256=rg0QlKKtJ7QT-gXdsRxNa7wNh99DMMB-FPNF7-vjPSQ,11255
37
+ fabricatio/models/extra/article_outline.py,sha256=P0T-1DGCzoNmQ3iQVwSmOul0nwS6qLgr0FF8jDdD7F0,1673
38
+ fabricatio/models/extra/article_proposal.py,sha256=OQIKoJkmJv0ogYVk7eGK_TOtANVYcBPA_HeV1nuG0Vo,1909
39
+ fabricatio/models/extra/patches.py,sha256=_WNCxtYzzsVfUxI16vu4IqsLahLYRHdbQN9er9tqhC0,997
40
+ fabricatio/models/extra/problem.py,sha256=8tTU-3giFHOi5j7NJsvH__JJyYcaGrcfsRnkzQNm0Ew,7216
41
+ fabricatio/models/extra/rag.py,sha256=C7ptZCuGJmT8WikjpF9KhZ0Bw-VicdB-s8EqEAgMLKE,3967
42
+ fabricatio/models/extra/rule.py,sha256=WKahNiaIp8s_l2r_FG21F_PP3_hgNm4hfSVCSFyfoBE,2669
43
+ fabricatio/models/extra/__init__.py,sha256=XlYnS_2B9nhLhtQkjE7rvvfPmAAtXVdNi9bSDAR-Ge8,54
44
+ fabricatio/models/generic.py,sha256=OJrYClooL2XnyalWTyyLgorycA1d_JNW8VqOYNDJdXc,27873
45
+ fabricatio/models/kwargs_types.py,sha256=Ik8-Oi_NmwfkvC9B8K4NsoZc_vSWV85xKCSthA1Xv_k,3403
46
+ fabricatio/models/role.py,sha256=b3zg96YKDsMBqa7SIe9LQHc-IVs2fGWqoQeRQYQIl4o,3856
47
+ fabricatio/models/task.py,sha256=XZ1l1P-iS02ZF9P8cXv8gEfJKBa17PFPNJ1SbhyhT4Q,11033
48
+ fabricatio/models/tool.py,sha256=up_sN5Y38V_2sTb7rvmsR1cTmf0ACZOftTHsy-VrkCs,12503
49
+ fabricatio/models/usages.py,sha256=CSd6XyEugkyWDSHRA0oMsJeEiwliQLsDo1V0GGmZ2og,33027
50
+ fabricatio/parser.py,sha256=dYFri9pDlsiwVpEJ-a5jmVU2nFuKN3uBHC8VsVpdEm8,4642
51
+ fabricatio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
+ fabricatio/rust.pyi,sha256=dlssKYR2RrS9UQb9bc3y6XP7a9Clq1Qr40dzMW_vNB0,26256
53
+ fabricatio/toolboxes/arithmetic.py,sha256=WLqhY-Pikv11Y_0SGajwZx3WhsLNpHKf9drzAqOf_nY,1369
54
+ fabricatio/toolboxes/fs.py,sha256=l4L1CVxJmjw9Ld2XUpIlWfV0_Fu_2Og6d3E13I-S4aE,736
55
+ fabricatio/toolboxes/__init__.py,sha256=KBJi5OG_pExscdlM7Bnt_UF43j4I3Lv6G71kPVu4KQU,395
56
+ fabricatio/utils.py,sha256=WYhFB4tHk6jKmjZgAsYhRmg1ZvBjn4X2y4n7yz25HjE,5454
57
+ fabricatio/workflows/articles.py,sha256=ObYTFUqLUk_CzdmmnX6S7APfxcGmPFqnFr9pdjU7Z4Y,969
58
+ fabricatio/workflows/rag.py,sha256=-YYp2tlE9Vtfgpg6ROpu6QVO8j8yVSPa6yDzlN3qVxs,520
59
+ fabricatio/workflows/__init__.py,sha256=5ScFSTA-bvhCesj3U9Mnmi6Law6N1fmh5UKyh58L3u8,51
60
+ fabricatio/__init__.py,sha256=Qdc-WtYA9DTt-UvOqqWoPI-Qx3COHQhU_3GqP-dg90Q,784
61
+ fabricatio/rust.cp312-win_amd64.pyd,sha256=LsTZv5I08Epvn-E6kBX2Utllf6L0oKZ7IdSCDIAudu8,7816192
62
+ fabricatio-0.3.14.dev2.data/scripts/tdown.exe,sha256=sCHm3QOE48Cl1xCs5W25DdoodOlKW6MzGBhhIvGHiVY,3451392
63
+ fabricatio-0.3.14.dev2.data/scripts/ttm.exe,sha256=i1EXzzTgrz4HHkffE0T2Wi6rPhwuLAHwsrTYr8w0T3w,2557440
64
+ fabricatio-0.3.14.dev2.dist-info/RECORD,,
@@ -1,63 +0,0 @@
1
- fabricatio-0.3.14.dev1.dist-info/METADATA,sha256=LEO0wrmRNbOC_iHWDNg33zW9Qe3WYmETnz-7aNytbWA,5267
2
- fabricatio-0.3.14.dev1.dist-info/WHEEL,sha256=jABKVkLC9kJr8mi_er5jOqpiQUjARSLXDUIIxDqsS50,96
3
- fabricatio-0.3.14.dev1.dist-info/licenses/LICENSE,sha256=do7J7EiCGbq0QPbMAL_FqLYufXpHnCnXBOuqVPwSV8Y,1088
4
- fabricatio/actions/article.py,sha256=vkYbzRy4SSJL73SFdgdsMfUy3nbjNFc44mu1-uPjqBo,12627
5
- fabricatio/actions/article_rag.py,sha256=Ahij8TSNvE5T1rHhJM5zNj57SaORldNj1YEHFTj0xm8,18631
6
- fabricatio/actions/fs.py,sha256=gJR14U4ln35nt8Z7OWLVAZpqGaLnED-r1Yi-lX22tkI,959
7
- fabricatio/actions/output.py,sha256=w_7xVFs7OZ8uXqFQKmuXw7Y0vWugSuN6phcVW_VnCqI,8389
8
- fabricatio/actions/rag.py,sha256=UifqC4jPpmhTrfToXkqi6ElbNxUoc2wqSMJQEubkhNU,3589
9
- fabricatio/actions/rules.py,sha256=dkvCgNDjt2KSO1VgPRsxT4YBmIIMeetZb5tiz-slYkU,3640
10
- fabricatio/actions/__init__.py,sha256=wVENCFtpVb1rLFxoOFJt9-8smLWXuJV7IwA8P3EfFz4,48
11
- fabricatio/capabilities/advanced_judge.py,sha256=selB0Gwf1F4gGJlwBiRo6gI4KOUROgh3WnzO3mZFEls,706
12
- fabricatio/capabilities/advanced_rag.py,sha256=FaXHGOqS4VleGSLsnC5qm4S4EBcHZLZbj8TjXRieKBs,2513
13
- fabricatio/capabilities/censor.py,sha256=bBT5qy-kp7fh8g4Lz3labSwxwJ60gGd_vrkc6k1cZ1U,4719
14
- fabricatio/capabilities/check.py,sha256=3Y7M9DLYWJefCMDg4aSYuU7XgVdWGR4ElQVeHFVYt4U,8663
15
- fabricatio/capabilities/correct.py,sha256=K-m8OZK25AjboGQXFltNk_A3WPBByi1sG_fuEHWDGFw,10445
16
- fabricatio/capabilities/extract.py,sha256=005FFcLAC_A6FNmuGK679yJtTL8ai__Zg5bjG9eiSts,2619
17
- fabricatio/capabilities/propose.py,sha256=hkBeSlmcTdfYWT-ph6nlbtHXBozi_JXqXlWcnBy3W78,2007
18
- fabricatio/capabilities/rag.py,sha256=LHSpBW6FTEgUvsIbE5HGhlRba_bRV5-kM1s8fZUc_IM,11143
19
- fabricatio/capabilities/rating.py,sha256=JdxNzjg7hQO6Cbe4Muf20r6f1Cb9dQnUBQq1VRS_bRU,18089
20
- fabricatio/capabilities/review.py,sha256=qimV-r51nqLtAcKBO0SKS_J06DYLUL-FsbZNA9JxQ9k,5060
21
- fabricatio/capabilities/task.py,sha256=mqRzrNBJEYTYbNfDPhTNy9bpDFyUpygff6FKBiNumbA,4431
22
- fabricatio/capabilities/__init__.py,sha256=v1cHRHIJ2gxyqMLNCs6ERVcCakSasZNYzmMI4lqAcls,57
23
- fabricatio/core.py,sha256=KN2Rx-j46xzCh9s2ckfXruz3lui6Q2JPV6LKwjHhkJQ,6485
24
- fabricatio/decorators.py,sha256=TGUTUuIfSV2u6Thv1kmAVXAPN_8ynP5T28R8MQw8eg0,8990
25
- fabricatio/fs/curd.py,sha256=652nHulbJ3gwt0Z3nywtPMmjhEyglDvEfc3p7ieJNNA,4777
26
- fabricatio/fs/readers.py,sha256=UXvcJO3UCsxHu9PPkg34Yh55Zi-miv61jD_wZQJgKRs,1751
27
- fabricatio/fs/__init__.py,sha256=USoMI_HcIr3Yc77_JQYYsXrsplYPXtFTaNB9YgFfC4s,713
28
- fabricatio/journal.py,sha256=cgVnJv8faZXaxUIo_X_Y9veqepC0o5SlOCALjDmXtEw,214
29
- fabricatio/models/action.py,sha256=5CrjW5Qf0ErTaTq4xnxSU9llKD7D1Uk_0z0pJ4dWp6I,10084
30
- fabricatio/models/adv_kwargs_types.py,sha256=IBV3ZcsNLvvEjO_2hBpYg_wLSpNKaMx6Ndam3qXJCw8,2097
31
- fabricatio/models/extra/advanced_judge.py,sha256=INUl_41C8jkausDekkjnEmTwNfLCJ23TwFjq2cM23Cw,1092
32
- fabricatio/models/extra/aricle_rag.py,sha256=2dHQOz7Br8xpf3PTtdZmrIw49kC4_YGa89evta67LYg,11707
33
- fabricatio/models/extra/article_base.py,sha256=4veM9DNd7T54iocoLS1mP-jOPImrxACAzfsdd6A3LIU,16736
34
- fabricatio/models/extra/article_essence.py,sha256=mlIkkRMR3I1RtqiiOnmIE3Vy623L4eECumkRzryE1pw,2749
35
- fabricatio/models/extra/article_main.py,sha256=jOHJt6slBakOAdY8IDq4JPiPGXX0_g1n3ROm802UYqc,11221
36
- fabricatio/models/extra/article_outline.py,sha256=mw7eOuKMJgns4bihjcjOEIpAy38i0g-x6T6Vx3J0T5A,1629
37
- fabricatio/models/extra/article_proposal.py,sha256=NbyjW-7UiFPtnVD9nte75re4xL2pD4qL29PpNV4Cg_M,1870
38
- fabricatio/models/extra/patches.py,sha256=_WNCxtYzzsVfUxI16vu4IqsLahLYRHdbQN9er9tqhC0,997
39
- fabricatio/models/extra/problem.py,sha256=8tTU-3giFHOi5j7NJsvH__JJyYcaGrcfsRnkzQNm0Ew,7216
40
- fabricatio/models/extra/rag.py,sha256=RMi8vhEPB0I5mVmjRLRLxYHUnm9pFhvVwysaIwmW2s0,3955
41
- fabricatio/models/extra/rule.py,sha256=KQQELVhCLUXhEZ35jU3WGYqKHuCYEAkn0p6pxAE-hOU,2625
42
- fabricatio/models/extra/__init__.py,sha256=XlYnS_2B9nhLhtQkjE7rvvfPmAAtXVdNi9bSDAR-Ge8,54
43
- fabricatio/models/generic.py,sha256=lChlpyHiPC0F_ggPnZSsJPBX6bO5qch8dGgsfE3aQj4,30408
44
- fabricatio/models/kwargs_types.py,sha256=tDeF0B_TnumYGCKU58f-llAApn6ng_Joz8CcGq5GiLk,3619
45
- fabricatio/models/role.py,sha256=LRmCRr5EwyQ4dXJ2klYiStjfb_HveFx0Ki4Mxv4L_l4,3806
46
- fabricatio/models/task.py,sha256=vOL8mzwBRMWC8R_59zh4SDXkjWuAL6WTtsAGfcxp_eE,11032
47
- fabricatio/models/tool.py,sha256=uNYVCNr9KUBWQ_KAtekGECdNPZREGJ9Aioyk4lrvtTE,12503
48
- fabricatio/models/usages.py,sha256=8oQqAHxJcOrylCMSfsNQm1vWLfzytO2sY5GKUNRj7xU,33646
49
- fabricatio/parser.py,sha256=QXHoJf0i9lAuaUjPBltXXvDZqyeuPwDLdQgr1uMU95w,6633
50
- fabricatio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
- fabricatio/rust.pyi,sha256=tIHHY_eCSJ8hqAWvTO8zY_sNKWuVKo_tc_MvEUaBERM,25231
52
- fabricatio/toolboxes/arithmetic.py,sha256=WLqhY-Pikv11Y_0SGajwZx3WhsLNpHKf9drzAqOf_nY,1369
53
- fabricatio/toolboxes/fs.py,sha256=l4L1CVxJmjw9Ld2XUpIlWfV0_Fu_2Og6d3E13I-S4aE,736
54
- fabricatio/toolboxes/__init__.py,sha256=KBJi5OG_pExscdlM7Bnt_UF43j4I3Lv6G71kPVu4KQU,395
55
- fabricatio/utils.py,sha256=UgrcIEbQefjrc1KqyMl0NkZ62vU8VnHrSzCyERAR0VY,12740
56
- fabricatio/workflows/articles.py,sha256=ObYTFUqLUk_CzdmmnX6S7APfxcGmPFqnFr9pdjU7Z4Y,969
57
- fabricatio/workflows/rag.py,sha256=-YYp2tlE9Vtfgpg6ROpu6QVO8j8yVSPa6yDzlN3qVxs,520
58
- fabricatio/workflows/__init__.py,sha256=5ScFSTA-bvhCesj3U9Mnmi6Law6N1fmh5UKyh58L3u8,51
59
- fabricatio/__init__.py,sha256=o6aNM0EHV_j0d1b6RYtauzHaysz--zVFOmK2ZuTSiBg,786
60
- fabricatio/rust.cp312-win_amd64.pyd,sha256=cw8MR14GqfQOaMLfP8mSxWiXnnyctbI5CT7eV-ZuK3Q,6022144
61
- fabricatio-0.3.14.dev1.data/scripts/tdown.exe,sha256=H4jAAIQ8YZegDLhIvbNDv3sI-d35YuFDvMW0O7eLQps,3356160
62
- fabricatio-0.3.14.dev1.data/scripts/ttm.exe,sha256=kTiRq_B54Zlzj99s0dRutZ8fDORvXUfRb7k7shq0U9Q,2554880
63
- fabricatio-0.3.14.dev1.dist-info/RECORD,,