fabricatio 0.2.11.dev2__cp312-cp312-win_amd64.whl → 0.2.12__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.
@@ -1,7 +1,8 @@
1
1
  """A module containing the ArticleOutline class, which represents the outline of an academic paper."""
2
2
 
3
- from typing import Dict
3
+ from typing import Dict, Self
4
4
 
5
+ from fabricatio.fs.readers import extract_sections
5
6
  from fabricatio.models.extra.article_base import (
6
7
  ArticleBase,
7
8
  ChapterBase,
@@ -9,7 +10,7 @@ from fabricatio.models.extra.article_base import (
9
10
  SubSectionBase,
10
11
  )
11
12
  from fabricatio.models.extra.article_proposal import ArticleProposal
12
- from fabricatio.models.generic import PersistentAble, SketchedAble, WithRef
13
+ from fabricatio.models.generic import PersistentAble, WithRef
13
14
 
14
15
 
15
16
  class ArticleSubsectionOutline(SubSectionBase):
@@ -18,14 +19,39 @@ class ArticleSubsectionOutline(SubSectionBase):
18
19
 
19
20
  class ArticleSectionOutline(SectionBase[ArticleSubsectionOutline]):
20
21
  """A slightly more detailed research component specification for academic paper generation, Must contain subsections."""
22
+ @classmethod
23
+ def from_typst_code(cls, title: str, body: str, **kwargs) -> Self:
24
+ """Parse the given Typst code into an ArticleSectionOutline instance."""
25
+ return super().from_typst_code(
26
+ title,
27
+ body,
28
+ subsections=[
29
+ ArticleSubsectionOutline.from_typst_code(*pack)
30
+ for pack in extract_sections(body, level=3, section_char="=")
31
+ ],
32
+ )
33
+
21
34
 
22
35
 
23
36
  class ArticleChapterOutline(ChapterBase[ArticleSectionOutline]):
24
37
  """Macro-structural unit implementing standard academic paper organization. Must contain sections."""
25
38
 
39
+ @classmethod
40
+ def from_typst_code(cls, title: str, body: str, **kwargs) -> Self:
41
+ """Parse the given Typst code into an ArticleChapterOutline instance."""
42
+ return super().from_typst_code(
43
+ title,
44
+ body,
45
+ sections=[
46
+ ArticleSectionOutline.from_typst_code(*pack)
47
+ for pack in extract_sections(body, level=2, section_char="=")
48
+ ],
49
+
50
+ )
51
+
52
+
26
53
 
27
54
  class ArticleOutline(
28
- SketchedAble,
29
55
  WithRef[ArticleProposal],
30
56
  PersistentAble,
31
57
  ArticleBase[ArticleChapterOutline],
@@ -38,3 +64,15 @@ class ArticleOutline(
38
64
  "Original Article Proposal": self.referenced.display(),
39
65
  "Original Article Outline": self.display(),
40
66
  }
67
+
68
+ @classmethod
69
+ def from_typst_code(cls, title: str, body: str, **kwargs) -> Self:
70
+ """Parse the given Typst code into an ArticleOutline instance."""
71
+ return super().from_typst_code(
72
+ title,
73
+ body,
74
+ chapters=[
75
+ ArticleChapterOutline.from_typst_code(*pack)
76
+ for pack in extract_sections(body, level=1, section_char="=")
77
+ ],
78
+ )
@@ -122,7 +122,7 @@ class FromMapping(Base):
122
122
 
123
123
  @classmethod
124
124
  @abstractmethod
125
- def from_mapping(cls, mapping: Mapping[str, Any], **kwargs: Any) -> List[Self]:
125
+ def from_mapping[S](cls: S, mapping: Mapping[str, Any], **kwargs: Any) -> List[S]:
126
126
  """Generate a list of objects from a mapping."""
127
127
 
128
128
 
@@ -186,7 +186,7 @@ class WithRef[T](Base):
186
186
  @overload
187
187
  def update_ref[S: WithRef](self: S, reference: None = None) -> S: ...
188
188
 
189
- def update_ref[S: WithRef](self: S, reference: Union[T, "WithRef[T]", None] = None) -> S: # noqa: PYI019
189
+ def update_ref[S: WithRef](self: S, reference: Union[T, "WithRef[T]", None] = None) -> S:
190
190
  """Update the reference of the object.
191
191
 
192
192
  Args:
@@ -201,7 +201,7 @@ class WithRef[T](Base):
201
201
  self._reference = reference # pyright: ignore [reportAttributeAccessIssue]
202
202
  return self
203
203
 
204
- def derive[S: WithRef](self: S, reference: Any) -> S: # noqa: PYI019
204
+ def derive[S: WithRef](self: S, reference: Any) -> S:
205
205
  """Derive a new object from the current object.
206
206
 
207
207
  Args:
@@ -789,7 +789,7 @@ class ScopedConfig(Base):
789
789
  """The dimensions of the Milvus server."""
790
790
 
791
791
  @final
792
- def fallback_to(self, other: "ScopedConfig") -> Self:
792
+ def fallback_to(self, other: Union["ScopedConfig", Any]) -> Self:
793
793
  """Merge configuration values with fallback priority.
794
794
 
795
795
  Copies non-null values from 'other' to self where current values are None.
@@ -800,6 +800,9 @@ class ScopedConfig(Base):
800
800
  Returns:
801
801
  Self: Current instance with merged values
802
802
  """
803
+ if not isinstance(other, ScopedConfig):
804
+ return self
805
+
803
806
  # Iterate over the attribute names and copy values from 'other' to 'self' where applicable
804
807
  # noinspection PydanticTypeChecker,PyTypeChecker
805
808
  for attr_name in ScopedConfig.model_fields:
@@ -811,7 +814,7 @@ class ScopedConfig(Base):
811
814
  return self
812
815
 
813
816
  @final
814
- def hold_to(self, others: Union["ScopedConfig", Iterable["ScopedConfig"]]) -> Self:
817
+ def hold_to(self, others: Union[Union["ScopedConfig", Any], Iterable[Union["ScopedConfig", Any]]]) -> Self:
815
818
  """Propagate non-null values to other configurations.
816
819
 
817
820
  Copies current non-null values to target configurations where they are None.
@@ -824,7 +827,8 @@ class ScopedConfig(Base):
824
827
  """
825
828
  if not isinstance(others, Iterable):
826
829
  others = [others]
827
- for other in others:
830
+
831
+ for other in (o for o in others if isinstance(o, ScopedConfig)):
828
832
  # noinspection PyTypeChecker,PydanticTypeChecker
829
833
  for attr_name in ScopedConfig.model_fields:
830
834
  if (attr := getattr(self, attr_name)) is not None and getattr(other, attr_name) is None:
@@ -33,7 +33,7 @@ class LLMKwargs(TypedDict, total=False):
33
33
  including generation parameters and caching options.
34
34
  """
35
35
 
36
- model: str
36
+ model: Optional[str]
37
37
  temperature: float
38
38
  stop: str | list[str]
39
39
  top_p: float
fabricatio/models/role.py CHANGED
@@ -2,18 +2,18 @@
2
2
 
3
3
  from typing import Any, Self, Set
4
4
 
5
- from fabricatio.capabilities.correct import Correct
6
- from fabricatio.capabilities.task import HandleTask, ProposeTask
5
+ from fabricatio.capabilities.propose import Propose
7
6
  from fabricatio.core import env
8
7
  from fabricatio.journal import logger
9
8
  from fabricatio.models.action import WorkFlow
10
9
  from fabricatio.models.events import Event
11
10
  from fabricatio.models.generic import WithBriefing
12
11
  from fabricatio.models.tool import ToolBox
12
+ from fabricatio.models.usages import ToolBoxUsage
13
13
  from pydantic import Field
14
14
 
15
15
 
16
- class Role(WithBriefing, ProposeTask, HandleTask, Correct):
16
+ class Role(WithBriefing, Propose, ToolBoxUsage):
17
17
  """Class that represents a role with a registry of events and workflows.
18
18
 
19
19
  A Role serves as a container for workflows, managing their registration to events
@@ -23,7 +23,8 @@ class Role(WithBriefing, ProposeTask, HandleTask, Correct):
23
23
  registry: Mapping of events to workflows that handle them
24
24
  toolboxes: Set of toolboxes available to this role and its workflows
25
25
  """
26
- description:str =""
26
+
27
+ description: str = ""
27
28
  """A brief description of the role's responsibilities and capabilities."""
28
29
 
29
30
  registry: dict[Event | str, WorkFlow] = Field(default_factory=dict)
fabricatio/models/task.py CHANGED
@@ -4,7 +4,7 @@ It includes methods to manage the task's lifecycle, such as starting, finishing,
4
4
  """
5
5
 
6
6
  from asyncio import Queue
7
- from typing import Any, List, Optional, Self
7
+ from typing import Any, Dict, List, Optional, Self
8
8
 
9
9
  from fabricatio.config import configs
10
10
  from fabricatio.constants import TaskStatus
@@ -50,6 +50,18 @@ class Task[T](WithBriefing, ProposedAble, WithDependency):
50
50
 
51
51
  _namespace: Event = PrivateAttr(default_factory=Event)
52
52
  """The namespace of the task as an event, which is generated from the namespace list."""
53
+ _extra_init_context: Dict = PrivateAttr(default_factory=dict)
54
+ """Extra initialization context for the task, which is designed to override the one of the Workflow."""
55
+
56
+ @property
57
+ def extra_init_context(self) -> Dict:
58
+ """Extra initialization context for the task, which is designed to override the one of the Workflow."""
59
+ return self._extra_init_context
60
+
61
+ def update_init_context(self, /, **kwargs) -> Self:
62
+ """Update the extra initialization context for the task."""
63
+ self.extra_init_context.update(kwargs)
64
+ return self
53
65
 
54
66
  def model_post_init(self, __context: Any) -> None:
55
67
  """Initialize the task with a namespace event."""
@@ -31,7 +31,7 @@ from pydantic import BaseModel, ConfigDict, Field, NonNegativeInt, PositiveInt
31
31
 
32
32
  if configs.cache.enabled and configs.cache.type:
33
33
  litellm.enable_cache(type=configs.cache.type, **configs.cache.params)
34
- logger.success(f"{configs.cache.type.name} Cache enabled")
34
+ logger.debug(f"{configs.cache.type.name} Cache enabled")
35
35
 
36
36
  ROUTER = Router(
37
37
  routing_strategy="usage-based-routing-v2",
Binary file
fabricatio/rust.pyi CHANGED
@@ -12,7 +12,9 @@ Key Features:
12
12
  """
13
13
 
14
14
  from pathlib import Path
15
- from typing import Any, Dict, List, Optional, overload
15
+ from typing import Any, Dict, List, Optional, Tuple, overload
16
+
17
+ from pydantic import JsonValue
16
18
 
17
19
  class TemplateManager:
18
20
  """Template rendering engine using Handlebars templates.
@@ -325,6 +327,16 @@ def convert_all_block_tex(string: str) -> str:
325
327
  The converted string with block TeX code replaced.
326
328
  """
327
329
 
330
+ def fix_misplaced_labels(string: str) -> str:
331
+ """A func to fix labels in a string.
332
+
333
+ Args:
334
+ string: The input string containing misplaced labels.
335
+
336
+ Returns:
337
+ The fixed string with labels properly placed.
338
+ """
339
+
328
340
  def comment(string: str) -> str:
329
341
  """Add comment to the string.
330
342
 
@@ -344,3 +356,24 @@ def uncomment(string: str) -> str:
344
356
  Returns:
345
357
  The string with comments (lines starting with '// ' or '//') removed.
346
358
  """
359
+
360
+ def split_out_metadata(string: str) -> Tuple[Optional[JsonValue], str]:
361
+ """Split out metadata from a string.
362
+
363
+ Args:
364
+ string: The input string containing metadata.
365
+
366
+ Returns:
367
+ A tuple containing the metadata as a Python object (if parseable) and the remaining string.
368
+ """
369
+
370
+ def to_metadata(data: JsonValue) -> str:
371
+ """Convert a Python object to a YAML string.
372
+
373
+ Args:
374
+ data: The Python object to be converted to YAML.
375
+
376
+ Returns:
377
+ The YAML string representation of the input data.
378
+ """
379
+
fabricatio/utils.py CHANGED
@@ -47,21 +47,21 @@ async def ask_retain[V](candidates: List[str], value_mapping: Optional[List[V]]
47
47
  "Please choose those that should be retained.",
48
48
  choices=[Choice(p, value=p, checked=True) for p in candidates]
49
49
  if value_mapping is None
50
- else [Choice(p, value=v) for p, v in zip(candidates, value_mapping, strict=True)],
50
+ else [Choice(p, value=v, checked=True) for p, v in zip(candidates, value_mapping, strict=True)],
51
51
  ).ask_async()
52
52
 
53
53
 
54
54
  def override_kwargs(kwargs: Mapping[str, Any], **overrides) -> Dict[str, Any]:
55
55
  """Override the values in kwargs with the provided overrides."""
56
56
  new_kwargs = dict(kwargs.items())
57
- new_kwargs.update({k: v for k, v in overrides.items() if v is not None})
57
+ new_kwargs.update(overrides)
58
58
  return new_kwargs
59
59
 
60
60
 
61
- def fallback_kwargs(kwargs: Mapping[str, Any], **overrides) -> Dict[str, Any]:
62
- """Fallback the values in kwargs with the provided overrides."""
61
+ def fallback_kwargs(kwargs: Mapping[str, Any], **fallbacks) -> Dict[str, Any]:
62
+ """Fallback the values in kwargs with the provided fallbacks."""
63
63
  new_kwargs = dict(kwargs.items())
64
- new_kwargs.update({k: v for k, v in overrides.items() if k not in new_kwargs and v is not None})
64
+ new_kwargs.update({k: v for k, v in fallbacks.items() if k not in new_kwargs})
65
65
  return new_kwargs
66
66
 
67
67
 
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fabricatio
3
- Version: 0.2.11.dev2
3
+ Version: 0.2.12
4
4
  Classifier: License :: OSI Approved :: MIT License
5
5
  Classifier: Programming Language :: Rust
6
6
  Classifier: Programming Language :: Python :: 3.12
@@ -20,18 +20,20 @@ Requires-Dist: pydantic-settings>=2.7.1
20
20
  Requires-Dist: pymitter>=1.0.0
21
21
  Requires-Dist: rich>=13.9.4
22
22
  Requires-Dist: ujson>=5.10.0
23
- Requires-Dist: fabricatio[calc,ftd,plot,qa,rag] ; extra == 'full'
23
+ Requires-Dist: fabricatio[calc,ftd,plot,qa,rag,cli] ; extra == 'full'
24
24
  Requires-Dist: pymilvus>=2.5.4 ; extra == 'rag'
25
25
  Requires-Dist: sympy>=1.13.3 ; extra == 'calc'
26
26
  Requires-Dist: matplotlib>=3.10.1 ; extra == 'plot'
27
27
  Requires-Dist: questionary>=2.1.0 ; extra == 'qa'
28
28
  Requires-Dist: magika>=0.6.1 ; extra == 'ftd'
29
+ Requires-Dist: typer-slim[standard]>=0.15.2 ; extra == 'cli'
29
30
  Provides-Extra: full
30
31
  Provides-Extra: rag
31
32
  Provides-Extra: calc
32
33
  Provides-Extra: plot
33
34
  Provides-Extra: qa
34
35
  Provides-Extra: ftd
36
+ Provides-Extra: cli
35
37
  License-File: LICENSE
36
38
  Summary: A LLM multi-agent framework.
37
39
  Keywords: ai,agents,multi-agent,llm,pyo3
@@ -1,65 +1,66 @@
1
- fabricatio-0.2.11.dev2.dist-info/METADATA,sha256=8vrHMg-FM5vxNTDy3G5Ck3n9MM4UJ9NeHcgXQVUYrRI,5178
2
- fabricatio-0.2.11.dev2.dist-info/WHEEL,sha256=jABKVkLC9kJr8mi_er5jOqpiQUjARSLXDUIIxDqsS50,96
3
- fabricatio-0.2.11.dev2.dist-info/licenses/LICENSE,sha256=do7J7EiCGbq0QPbMAL_FqLYufXpHnCnXBOuqVPwSV8Y,1088
4
- fabricatio/actions/article.py,sha256=J2wneRmGDVzzyvsFw1Ux69Q6kI8Ty3Dty0l5eToSGX0,10237
5
- fabricatio/actions/article_rag.py,sha256=UdhkZ2MAi094xKkdIKpdprOS-OOPb9xwceKX4tRRhSw,14221
1
+ fabricatio-0.2.12.dist-info/METADATA,sha256=JaFXM9UFAfoqCv7Q_9hM6ADhzGYsuL6uQDbo3KVC8w8,5258
2
+ fabricatio-0.2.12.dist-info/WHEEL,sha256=jABKVkLC9kJr8mi_er5jOqpiQUjARSLXDUIIxDqsS50,96
3
+ fabricatio-0.2.12.dist-info/licenses/LICENSE,sha256=do7J7EiCGbq0QPbMAL_FqLYufXpHnCnXBOuqVPwSV8Y,1088
4
+ fabricatio/actions/article.py,sha256=SFl1zc0hz9vW2sW4VJm9-w8E7kLEty-2LzXi9wgWMmE,10905
5
+ fabricatio/actions/article_rag.py,sha256=i_aH0cERwAk5sgZaKfvx9Zs8NZ8ZBFqUzQhlYMkt6EE,18776
6
6
  fabricatio/actions/fs.py,sha256=gJR14U4ln35nt8Z7OWLVAZpqGaLnED-r1Yi-lX22tkI,959
7
- fabricatio/actions/output.py,sha256=ttXLC2wZmtVN9Ik8zsA7g45rwBO656LyRjOGRdVSyJA,6977
7
+ fabricatio/actions/output.py,sha256=lX0HkDse3ypCzZgeF-8Dr-EnNFdBiE-WQ1iLPFlGM1g,8302
8
8
  fabricatio/actions/rag.py,sha256=KN-OWgcQjGmNgSZ-s5B8m4LpYKSGFJR8eq72mo2CP9k,3592
9
9
  fabricatio/actions/rules.py,sha256=dkvCgNDjt2KSO1VgPRsxT4YBmIIMeetZb5tiz-slYkU,3640
10
10
  fabricatio/actions/__init__.py,sha256=wVENCFtpVb1rLFxoOFJt9-8smLWXuJV7IwA8P3EfFz4,48
11
11
  fabricatio/capabilities/advanced_judge.py,sha256=selB0Gwf1F4gGJlwBiRo6gI4KOUROgh3WnzO3mZFEls,706
12
+ fabricatio/capabilities/advanced_rag.py,sha256=gt4ccqyMSVwQLwsEyJrjPc-RXMZZBwObIjsh8A8ILbM,2386
12
13
  fabricatio/capabilities/censor.py,sha256=bBT5qy-kp7fh8g4Lz3labSwxwJ60gGd_vrkc6k1cZ1U,4719
13
14
  fabricatio/capabilities/check.py,sha256=kYqzohhv2bZfl1aKSUt7a8snT8YEl2zgha_ZdAdMMfQ,8622
14
15
  fabricatio/capabilities/correct.py,sha256=W_cInqlciNEhyMK0YI53jk4EvW9uAdge90IO9OElUmA,10420
15
16
  fabricatio/capabilities/extract.py,sha256=PMjkWvbsv57IYT7zzd_xbIu4eQqQjpcmBtJzqlWZhHY,2495
16
17
  fabricatio/capabilities/propose.py,sha256=hkBeSlmcTdfYWT-ph6nlbtHXBozi_JXqXlWcnBy3W78,2007
17
- fabricatio/capabilities/rag.py,sha256=kqcunWBC6oA4P1rzIG2Xu9zqSg73H3uKPF41JJQ1HVI,9595
18
+ fabricatio/capabilities/rag.py,sha256=a48dEaWE-sniwLhNtGz4xlSmRi_-PdOgDzNaDwnam_g,9619
18
19
  fabricatio/capabilities/rating.py,sha256=iMtQs3H6vCjuEjiuuz4SRKMVaX7yff7MHWz-slYvi5g,17835
19
20
  fabricatio/capabilities/review.py,sha256=-EMZe0ADFPT6fPGmra16UPjJC1M3rAs6dPFdTZ88Fgg,5060
20
21
  fabricatio/capabilities/task.py,sha256=uks1U-4LNCUdwdRxAbJJjMc31hOw6jlrcYriuQQfb04,4475
21
22
  fabricatio/capabilities/__init__.py,sha256=v1cHRHIJ2gxyqMLNCs6ERVcCakSasZNYzmMI4lqAcls,57
22
- fabricatio/config.py,sha256=okqrVoLhvmAjmfQXlLY3js4nC_qW4v7mxoYaGO2dMQ8,17984
23
+ fabricatio/config.py,sha256=ckm55Oq0IhG1ztwHbKOG-7Mg7uWE1fb_-DxeKZyc8DQ,17951
23
24
  fabricatio/constants.py,sha256=thfDuF6JEtJ5CHOnAJLfqvn5834n8ep6DH2jc6XGzQM,577
24
25
  fabricatio/core.py,sha256=VQ_JKgUGIy2gZ8xsTBZCdr_IP7wC5aPg0_bsOmjQ588,6458
25
26
  fabricatio/decorators.py,sha256=RFMYUlQPf561-BIHetpMd7fPig5bZ2brzWiQTgoLOlY,8966
26
- fabricatio/fs/curd.py,sha256=p8y0LGKgVDk-CWOlm37E6wg7RK6RCD6denKo-VsW28c,4763
27
+ fabricatio/fs/curd.py,sha256=652nHulbJ3gwt0Z3nywtPMmjhEyglDvEfc3p7ieJNNA,4777
27
28
  fabricatio/fs/readers.py,sha256=UXvcJO3UCsxHu9PPkg34Yh55Zi-miv61jD_wZQJgKRs,1751
28
29
  fabricatio/fs/__init__.py,sha256=FydmlEY_3QY74r1BpGDc5lFLhE6g6gkwOAtE30Fo-aI,786
29
30
  fabricatio/journal.py,sha256=stnEP88aUBA_GmU9gfTF2EZI8FS2OyMLGaMSTgK4QgA,476
30
- fabricatio/models/action.py,sha256=Kfa-zojgHQ1vPoC2lQp-thTTp0oySKn7k6I4ea6iYTs,9837
31
+ fabricatio/models/action.py,sha256=X7xbun7SyIEpC3-kbJgAagquJGkOBlxhBxbC_sHZX2w,10120
31
32
  fabricatio/models/adv_kwargs_types.py,sha256=kUO-SiZtFuz5cZCmMLnJJ9tjQ4-Zd_foo6R8HQMlM5A,1950
32
33
  fabricatio/models/events.py,sha256=wiirk_ASg3iXDOZU_gIimci1VZVzWE1nDmxy-hQVJ9M,4150
33
34
  fabricatio/models/extra/advanced_judge.py,sha256=INUl_41C8jkausDekkjnEmTwNfLCJ23TwFjq2cM23Cw,1092
34
- fabricatio/models/extra/aricle_rag.py,sha256=bJ9qNa9DkTVvja8GVue5wMnJCwnr6TEO7_fQbQK7fv4,9780
35
- fabricatio/models/extra/article_base.py,sha256=CeYs0D6XghxgpSnQ-rhtWuuFhcouy_vc6E5oUCPck_w,12840
35
+ fabricatio/models/extra/aricle_rag.py,sha256=p91JI8FmFSrHVg5KbhJq4w8vQdx4VUW75SrtQUi9ju4,10987
36
+ fabricatio/models/extra/article_base.py,sha256=R8EOlQBs7hadjP9cxG_uc24DJDpiVpJW9Wb9DA6XmXE,14516
36
37
  fabricatio/models/extra/article_essence.py,sha256=mlIkkRMR3I1RtqiiOnmIE3Vy623L4eECumkRzryE1pw,2749
37
- fabricatio/models/extra/article_main.py,sha256=4rjev0wpI2jf52NLNatRbqFQmN6rtKaMB9iy30hSEXM,9818
38
- fabricatio/models/extra/article_outline.py,sha256=w7O0SHgC7exbptWVbR62FMHAueMgBpyWKVYMGGl_oj8,1427
38
+ fabricatio/models/extra/article_main.py,sha256=pwY2bTYlnz8nh8y3nb_8nnYcYCmoed7ejK-ZSD8ocYc,11584
39
+ fabricatio/models/extra/article_outline.py,sha256=C9WNZNSz6gyuw9lDp29qidPvHBTENaeqcHfCoE_Y7F4,2793
39
40
  fabricatio/models/extra/article_proposal.py,sha256=NbyjW-7UiFPtnVD9nte75re4xL2pD4qL29PpNV4Cg_M,1870
40
41
  fabricatio/models/extra/patches.py,sha256=_WNCxtYzzsVfUxI16vu4IqsLahLYRHdbQN9er9tqhC0,997
41
42
  fabricatio/models/extra/problem.py,sha256=8tTU-3giFHOi5j7NJsvH__JJyYcaGrcfsRnkzQNm0Ew,7216
42
43
  fabricatio/models/extra/rag.py,sha256=RMi8vhEPB0I5mVmjRLRLxYHUnm9pFhvVwysaIwmW2s0,3955
43
44
  fabricatio/models/extra/rule.py,sha256=KQQELVhCLUXhEZ35jU3WGYqKHuCYEAkn0p6pxAE-hOU,2625
44
45
  fabricatio/models/extra/__init__.py,sha256=XlYnS_2B9nhLhtQkjE7rvvfPmAAtXVdNi9bSDAR-Ge8,54
45
- fabricatio/models/generic.py,sha256=7wcG01DN9g4q1DJGZsTUxSTMixQgwXX0xlX4HbbLc6U,31185
46
- fabricatio/models/kwargs_types.py,sha256=GEw75ZiiDEFx_ImhCBENnPF7K0BcdTQ1ocH5jSPwMRs,4774
47
- fabricatio/models/role.py,sha256=-CRcj5_M3_ciLPzwiNn92grBmwoSLQ-n4koVZiCNTBM,2953
48
- fabricatio/models/task.py,sha256=SxWI-b5jlQcGmNsjQ2aKDyywXwGiUvCR1rgUhk-pli8,10503
46
+ fabricatio/models/generic.py,sha256=yXaVyUd3MK0lFUgsT0diMWtgD9s5rM9yKTH44eE58jM,31314
47
+ fabricatio/models/kwargs_types.py,sha256=BPqZUgxz4WJaB7hmvrhNxHXp-O7O4SiAdn6UguBRij8,4784
48
+ fabricatio/models/role.py,sha256=b8FDRF4VjMMt93Uh5yiAufFbsoH7RcUaaFJAjVmq2l0,2931
49
+ fabricatio/models/task.py,sha256=bLYSKjlRAlb4jMYyF12RTnm_8pVXysSmX8CYLrEmbQ8,11096
49
50
  fabricatio/models/tool.py,sha256=jQ51g4lwTPfsMF1nbreDJtBczbxIHoXcPuLSOqHliq8,12506
50
- fabricatio/models/usages.py,sha256=B9kII7wP9uUj6-M69kbnTsWQpZcJ-gKZ2HplIxL0j1c,33358
51
+ fabricatio/models/usages.py,sha256=0bzITf0vug9ZaN6qnjNfFB7T8BAvpXE0bvx0otFYLLA,33356
51
52
  fabricatio/parser.py,sha256=-RbW2yzfJiu2ARq-lZw4tfgsjY2rIZWtJpoUmaE6gJQ,6637
52
53
  fabricatio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
- fabricatio/rust.pyi,sha256=GJRLeeQ1UIaf5kOgJWX2GkwIacoTBk3yBKuD5cKW8i4,10489
54
+ fabricatio/rust.pyi,sha256=kU-I0PD-tG0RGTy5xUobneXY-E06Qopjp4v1awpYmGw,11339
54
55
  fabricatio/rust_instances.py,sha256=Byeo8KHW_dJiXujJq7YPGDLBX5bHNDYbBc4sY3uubVY,313
55
56
  fabricatio/toolboxes/arithmetic.py,sha256=WLqhY-Pikv11Y_0SGajwZx3WhsLNpHKf9drzAqOf_nY,1369
56
57
  fabricatio/toolboxes/fs.py,sha256=l4L1CVxJmjw9Ld2XUpIlWfV0_Fu_2Og6d3E13I-S4aE,736
57
58
  fabricatio/toolboxes/__init__.py,sha256=KBJi5OG_pExscdlM7Bnt_UF43j4I3Lv6G71kPVu4KQU,395
58
- fabricatio/utils.py,sha256=vlXbAA4b_odh2wlAcJlNQ-1ckkxNNKDGJaxShdljojA,3146
59
+ fabricatio/utils.py,sha256=4aK6bNHCCGEbSkLRKrDBzabuVAow9PrJ6SVGUX1Rt-U,3098
59
60
  fabricatio/workflows/articles.py,sha256=ObYTFUqLUk_CzdmmnX6S7APfxcGmPFqnFr9pdjU7Z4Y,969
60
61
  fabricatio/workflows/rag.py,sha256=-YYp2tlE9Vtfgpg6ROpu6QVO8j8yVSPa6yDzlN3qVxs,520
61
62
  fabricatio/workflows/__init__.py,sha256=5ScFSTA-bvhCesj3U9Mnmi6Law6N1fmh5UKyh58L3u8,51
62
63
  fabricatio/__init__.py,sha256=Rmvq2VgdS2u68vnOi2i5RbeWbAwrJDbk8D8D883PJWE,1022
63
- fabricatio/rust.cp312-win_amd64.pyd,sha256=UUJZ7DBWgQbROlf5Cfa-yJOWSp_1qNTJwbp4AmxOVUU,4150272
64
- fabricatio-0.2.11.dev2.data/scripts/tdown.exe,sha256=LtLVx_ahJ-FP1bpQm-GMXr8_xYPf_Ax-tap9bHW6PvA,3350016
65
- fabricatio-0.2.11.dev2.dist-info/RECORD,,
64
+ fabricatio/rust.cp312-win_amd64.pyd,sha256=9fwCiSGJP6jMgEcXaapRP2c52hVH1fabWB-f-BdQkoA,4435456
65
+ fabricatio-0.2.12.data/scripts/tdown.exe,sha256=TP6KyXotHgQrs43Xwev02s__JPcU499AN44ZDUfuciU,3350016
66
+ fabricatio-0.2.12.dist-info/RECORD,,