fabricatio 0.3.14.dev4__cp313-cp313-manylinux_2_34_x86_64.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.
- fabricatio/__init__.py +29 -0
- fabricatio/actions/__init__.py +1 -0
- fabricatio/actions/article.py +319 -0
- fabricatio/actions/article_rag.py +416 -0
- fabricatio/actions/fs.py +25 -0
- fabricatio/actions/output.py +248 -0
- fabricatio/actions/rag.py +96 -0
- fabricatio/actions/rules.py +83 -0
- fabricatio/capabilities/__init__.py +1 -0
- fabricatio/capabilities/advanced_judge.py +20 -0
- fabricatio/capabilities/advanced_rag.py +61 -0
- fabricatio/capabilities/censor.py +105 -0
- fabricatio/capabilities/check.py +212 -0
- fabricatio/capabilities/correct.py +228 -0
- fabricatio/capabilities/extract.py +74 -0
- fabricatio/capabilities/persist.py +103 -0
- fabricatio/capabilities/propose.py +65 -0
- fabricatio/capabilities/rag.py +263 -0
- fabricatio/capabilities/rating.py +404 -0
- fabricatio/capabilities/review.py +114 -0
- fabricatio/capabilities/task.py +113 -0
- fabricatio/decorators.py +251 -0
- fabricatio/emitter.py +177 -0
- fabricatio/fs/__init__.py +35 -0
- fabricatio/fs/curd.py +153 -0
- fabricatio/fs/readers.py +61 -0
- fabricatio/journal.py +12 -0
- fabricatio/models/action.py +263 -0
- fabricatio/models/adv_kwargs_types.py +63 -0
- fabricatio/models/extra/__init__.py +1 -0
- fabricatio/models/extra/advanced_judge.py +32 -0
- fabricatio/models/extra/aricle_rag.py +284 -0
- fabricatio/models/extra/article_base.py +422 -0
- fabricatio/models/extra/article_essence.py +101 -0
- fabricatio/models/extra/article_main.py +285 -0
- fabricatio/models/extra/article_outline.py +46 -0
- fabricatio/models/extra/article_proposal.py +52 -0
- fabricatio/models/extra/patches.py +20 -0
- fabricatio/models/extra/problem.py +165 -0
- fabricatio/models/extra/rag.py +98 -0
- fabricatio/models/extra/rule.py +52 -0
- fabricatio/models/generic.py +812 -0
- fabricatio/models/kwargs_types.py +121 -0
- fabricatio/models/role.py +95 -0
- fabricatio/models/task.py +310 -0
- fabricatio/models/tool.py +328 -0
- fabricatio/models/usages.py +791 -0
- fabricatio/parser.py +114 -0
- fabricatio/py.typed +0 -0
- fabricatio/rust.cpython-313-x86_64-linux-gnu.so +0 -0
- fabricatio/rust.pyi +846 -0
- fabricatio/toolboxes/__init__.py +15 -0
- fabricatio/toolboxes/arithmetic.py +62 -0
- fabricatio/toolboxes/fs.py +31 -0
- fabricatio/utils.py +156 -0
- fabricatio/workflows/__init__.py +1 -0
- fabricatio/workflows/articles.py +24 -0
- fabricatio/workflows/rag.py +11 -0
- fabricatio-0.3.14.dev4.data/scripts/tdown +0 -0
- fabricatio-0.3.14.dev4.data/scripts/ttm +0 -0
- fabricatio-0.3.14.dev4.dist-info/METADATA +188 -0
- fabricatio-0.3.14.dev4.dist-info/RECORD +64 -0
- fabricatio-0.3.14.dev4.dist-info/WHEEL +4 -0
- fabricatio-0.3.14.dev4.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,52 @@
|
|
1
|
+
"""A module containing classes related to rule sets and rules.
|
2
|
+
|
3
|
+
This module provides the `Rule` and `RuleSet` classes, which are used to define and manage
|
4
|
+
individual rules and collections of rules, respectively. These classes are designed to
|
5
|
+
facilitate the creation, organization, and application of rules in various contexts,
|
6
|
+
ensuring clarity, consistency, and enforceability. The module supports detailed
|
7
|
+
descriptions, examples, and metadata for each rule and rule set, making it suitable for
|
8
|
+
complex rule management systems.
|
9
|
+
"""
|
10
|
+
|
11
|
+
from typing import List, Self, Tuple, Unpack
|
12
|
+
|
13
|
+
from fabricatio.capabilities.persist import PersistentAble
|
14
|
+
from fabricatio.models.generic import Language, SketchedAble, WithBriefing
|
15
|
+
from more_itertools import flatten
|
16
|
+
|
17
|
+
|
18
|
+
class Rule(WithBriefing, Language, SketchedAble, PersistentAble):
|
19
|
+
"""Represents a rule or guideline for a specific topic."""
|
20
|
+
|
21
|
+
violation_examples: List[str]
|
22
|
+
"""A list of concrete examples demonstrating violations of this rule. Each example should
|
23
|
+
be a clear scenario or case that illustrates how the rule can be broken, including the
|
24
|
+
context, actions, and consequences of the violation. These examples should help in
|
25
|
+
understanding the boundaries of the rule."""
|
26
|
+
|
27
|
+
compliance_examples: List[str]
|
28
|
+
"""A list of concrete examples demonstrating proper compliance with this rule. Each example
|
29
|
+
should be a clear scenario or case that illustrates how to correctly follow the rule,
|
30
|
+
including the context, actions, and positive outcomes of compliance. These examples should
|
31
|
+
serve as practical guidance for implementing the rule correctly."""
|
32
|
+
|
33
|
+
|
34
|
+
class RuleSet(SketchedAble, PersistentAble, WithBriefing, Language):
|
35
|
+
"""Represents a collection of rules and guidelines for a particular topic."""
|
36
|
+
|
37
|
+
rules: List[Rule]
|
38
|
+
"""The collection of rules and guidelines contained in this rule set. Each rule should be
|
39
|
+
a well-defined, specific guideline that contributes to the overall purpose of the rule set.
|
40
|
+
The rules should be logically organized and consistent with each other, forming a coherent
|
41
|
+
framework for the topic or domain covered by the rule set."""
|
42
|
+
|
43
|
+
@classmethod
|
44
|
+
def gather(cls, *rulesets: Unpack[Tuple["RuleSet", ...]]) -> Self:
|
45
|
+
"""Gathers multiple rule sets into a single rule set."""
|
46
|
+
if not rulesets:
|
47
|
+
raise ValueError("No rulesets provided")
|
48
|
+
return cls(
|
49
|
+
name=";".join(ruleset.name for ruleset in rulesets),
|
50
|
+
description=";".join(ruleset.description for ruleset in rulesets),
|
51
|
+
rules=list(flatten(r.rules for r in rulesets)),
|
52
|
+
)
|