route_rules
¤
Modules:
Classes:
-
ArtifactMeta– -
Behavior– -
Builder– -
Config– -
Format– -
Meta– -
Provider– -
ProviderMeta– -
ProviderMihomo– -
ProviderRegistry– -
Recipe– -
RecipeMeta– -
RuleSet–
Functions:
-
download–
ArtifactMeta
pydantic-model
¤
Bases: BaseModel
Parameters:
Show JSON schema:
{
"$defs": {
"Behavior": {
"enum": [
"domain",
"ipcidr",
"classical"
],
"title": "Behavior",
"type": "string"
},
"Format": {
"enum": [
"yaml",
"text",
"mrs"
],
"title": "Format",
"type": "string"
}
},
"properties": {
"behavior": {
"$ref": "#/$defs/Behavior"
},
"format": {
"$ref": "#/$defs/Format"
},
"path": {
"format": "path",
"title": "Path",
"type": "string"
},
"size": {
"title": "Size",
"type": "integer"
}
},
"required": [
"behavior",
"format",
"path",
"size"
],
"title": "ArtifactMeta",
"type": "object"
}
Fields:
Behavior
¤
Bases: StrEnum
flowchart TD
route_rules.Behavior[Behavior]
click route_rules.Behavior href "" "route_rules.Behavior"
-
Reference
route_rules
-
route_rules - provider
-
export
exportExporterMihomobehavior -
gen
genArtifactMetabehavior
-
-
Reference
route_rules
-
route_rules - provider
-
export
exportExporterMihomo -
gen
genArtifactMeta
-
Attributes:
Builder
¤
Parameters:
-
dist_dir(Path, default:PosixPath('dist')) – -
exporters(list[ExporterMihomo], default:[ExporterMihomo(behavior=<Behavior.DOMAIN: 'domain'>, format=<Format.MRS: 'mrs'>), ExporterMihomo(behavior=<Behavior.DOMAIN: 'domain'>, format=<Format.TEXT: 'text'>), ExporterMihomo(behavior=<Behavior.IPCIDR: 'ipcidr'>, format=<Format.MRS: 'mrs'>), ExporterMihomo(behavior=<Behavior.IPCIDR: 'ipcidr'>, format=<Format.TEXT: 'text'>), ExporterMihomo(behavior=<Behavior.CLASSICAL: 'classical'>, format=<Format.TEXT: 'text'>)]) – -
recipes(list[Recipe], default:<dynamic>) –Built-in mutable sequence.
If no argument is given, the constructor creates a new empty list. The argument must be an iterable if specified.
Methods:
-
build– -
build_recipe– -
load–
Attributes:
exporters
class-attribute
instance-attribute
¤
exporters: list[ExporterMihomo] = field(
factory=_default_exporters
)
build
async
¤
build() -> None
Source code in src/route_rules/gen/_builder.py
42 43 44 45 46 47 48 | |
build_recipe
async
¤
build_recipe(recipe: Recipe) -> RecipeMeta
Source code in src/route_rules/gen/_builder.py
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | |
load
classmethod
¤
Source code in src/route_rules/gen/_builder.py
34 35 36 37 38 39 40 | |
Config
pydantic-model
¤
Bases: BaseModel
Parameters:
-
recipes(list[RecipeConfig]) –
Show JSON schema:
{
"$defs": {
"RecipeConfig": {
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"providers": {
"items": {
"type": "string"
},
"title": "Providers",
"type": "array"
},
"excludes": {
"items": {
"type": "string"
},
"title": "Excludes",
"type": "array"
}
},
"required": [
"name"
],
"title": "RecipeConfig",
"type": "object"
}
},
"properties": {
"recipes": {
"items": {
"$ref": "#/$defs/RecipeConfig"
},
"title": "Recipes",
"type": "array"
}
},
"required": [
"recipes"
],
"title": "Config",
"type": "object"
}
Fields:
Format
¤
Bases: StrEnum
flowchart TD
route_rules.Format[Format]
click route_rules.Format href "" "route_rules.Format"
-
Reference
route_rules
-
route_rules - provider
-
export
exportExporterMihomoformat -
gen
genArtifactMetaformat
-
-
Reference
route_rules
-
route_rules - provider
-
export
exportExporterMihomo -
gen
genArtifactMeta
-
Attributes:
YAML
class-attribute
instance-attribute
¤
YAML = auto()
-
Reference
route_rules
-
route_rulesProviderMihomoformat - provider
-
Meta
pydantic-model
¤
Bases: BaseModel
Parameters:
-
build_time(datetime) – -
recipes(list[RecipeMeta], default:<dynamic>) –Built-in mutable sequence.
If no argument is given, the constructor creates a new empty list. The argument must be an iterable if specified.
Show JSON schema:
{
"$defs": {
"ArtifactMeta": {
"properties": {
"behavior": {
"$ref": "#/$defs/Behavior"
},
"format": {
"$ref": "#/$defs/Format"
},
"path": {
"format": "path",
"title": "Path",
"type": "string"
},
"size": {
"title": "Size",
"type": "integer"
}
},
"required": [
"behavior",
"format",
"path",
"size"
],
"title": "ArtifactMeta",
"type": "object"
},
"Behavior": {
"enum": [
"domain",
"ipcidr",
"classical"
],
"title": "Behavior",
"type": "string"
},
"Format": {
"enum": [
"yaml",
"text",
"mrs"
],
"title": "Format",
"type": "string"
},
"ProviderMeta": {
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"download_url": {
"title": "Download Url",
"type": "string"
},
"preview_url": {
"title": "Preview Url",
"type": "string"
}
},
"required": [
"name",
"download_url",
"preview_url"
],
"title": "ProviderMeta",
"type": "object"
},
"RecipeMeta": {
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"slug": {
"title": "Slug",
"type": "string"
},
"artifacts": {
"items": {
"$ref": "#/$defs/ArtifactMeta"
},
"title": "Artifacts",
"type": "array"
},
"providers": {
"items": {
"$ref": "#/$defs/ProviderMeta"
},
"title": "Providers",
"type": "array"
},
"statistics": {
"$ref": "#/$defs/RecipeStatistics"
}
},
"required": [
"name",
"slug"
],
"title": "RecipeMeta",
"type": "object"
},
"RecipeStatistics": {
"properties": {
"inputs": {
"additionalProperties": {
"type": "integer"
},
"title": "Inputs",
"type": "object"
},
"outputs": {
"additionalProperties": {
"type": "integer"
},
"title": "Outputs",
"type": "object"
}
},
"title": "RecipeStatistics",
"type": "object"
}
},
"properties": {
"build_time": {
"format": "date-time",
"title": "Build Time",
"type": "string"
},
"recipes": {
"items": {
"$ref": "#/$defs/RecipeMeta"
},
"title": "Recipes",
"type": "array"
}
},
"required": [
"build_time"
],
"title": "Meta",
"type": "object"
}
Fields:
json_decode
classmethod
¤
Source code in src/route_rules/gen/_meta.py
40 41 42 | |
Provider
¤
Bases: ABC
flowchart TD
route_rules.Provider[Provider]
click route_rules.Provider href "" "route_rules.Provider"
Parameters:
- Reference route_rules
-
Reference
route_rules
-
route_rulesProviderMihomo - provider
-
- Reference route_rules
Methods:
-
download_url– -
load– -
preview_url–
Attributes:
-
download_url_template(str) – -
name(str) – -
preview_url_template(str) –
preview_url_template
class-attribute
instance-attribute
¤
preview_url_template: str = field(
default=Factory(
_default_preview_url_template, takes_self=True
)
)
download_url
¤
Source code in src/route_rules/provider/_abc.py
26 27 28 | |
load
abstractmethod
async
¤
Source code in src/route_rules/provider/_abc.py
30 31 32 | |
ProviderMeta
pydantic-model
¤
Bases: BaseModel
Parameters:
Show JSON schema:
{
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"download_url": {
"title": "Download Url",
"type": "string"
},
"preview_url": {
"title": "Preview Url",
"type": "string"
}
},
"required": [
"name",
"download_url",
"preview_url"
],
"title": "ProviderMeta",
"type": "object"
}
Fields:
-
name(str) -
download_url(str) -
preview_url(str)
ProviderMihomo
¤
Bases: Provider
flowchart TD
route_rules.ProviderMihomo[ProviderMihomo]
route_rules.provider._abc.Provider[Provider]
route_rules.provider._abc.Provider --> route_rules.ProviderMihomo
click route_rules.ProviderMihomo href "" "route_rules.ProviderMihomo"
click route_rules.provider._abc.Provider href "" "route_rules.provider._abc.Provider"
Parameters:
-
name(str) – -
download_url_template(str) – -
preview_url_template(str, default:<dynamic>) – -
behavior(Behavior) – -
format(Format, default:<Format.YAML: 'yaml'>) –
Methods:
-
download_url– -
load– -
preview_url–
Attributes:
-
behavior(Behavior) – -
download_url_template(str) – -
format(Format) – -
name(str) – -
preview_url_template(str) –
preview_url_template
class-attribute
instance-attribute
¤
preview_url_template: str = field(
default=Factory(
_default_preview_url_template, takes_self=True
)
)
download_url
¤
Source code in src/route_rules/provider/_abc.py
26 27 28 | |
load
async
¤
Source code in src/route_rules/provider/mihomo/_provider.py
20 21 22 23 24 25 | |
ProviderRegistry
¤
Parameters:
-
registry(dict[str, Provider], default:<class 'dict'>) –dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object’s (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)
Methods:
-
download_url– -
load– -
presets– -
preview_url– -
register–
Attributes:
download_url
¤
Source code in src/route_rules/provider/_registry.py
64 65 66 67 68 | |
load
async
¤
Source code in src/route_rules/provider/_registry.py
70 71 72 73 74 | |
presets
cached
classmethod
¤
presets() -> Self
Source code in src/route_rules/provider/_registry.py
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | |
preview_url
¤
Source code in src/route_rules/provider/_registry.py
76 77 78 79 80 | |
Recipe
¤
Parameters:
-
name(str) – -
providers(str, default:<dynamic>) –Built-in mutable sequence.
If no argument is given, the constructor creates a new empty list. The argument must be an iterable if specified.
-
excludes(str, default:<dynamic>) –Built-in mutable sequence.
If no argument is given, the constructor creates a new empty list. The argument must be an iterable if specified.
-
registry(str, default:ProviderRegistry(registry={'blackmatrix7': ProviderMihomo(name='blackmatrix7', download_url_template='https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/{name}/{name}.list', preview_url_template='https://github.com/blackmatrix7/ios_rule_script/tree/master/rule/Clash/{name}', behavior=<Behavior.CLASSICAL: 'classical'>, format=<Format.TEXT: 'text'>), 'dler-io': ProviderMihomo(name='dler-io', download_url_template='https://raw.githubusercontent.com/dler-io/Rules/main/Clash/Provider/{name}.yaml', preview_url_template='https://github.com/dler-io/Rules/blob/main/Clash/Provider/{name}.yaml', behavior=<Behavior.CLASSICAL: 'classical'>, format=<Format.YAML: 'yaml'>), 'liblaf/domain': ProviderMihomo(name='liblaf/domain', download_url_template='https://raw.githubusercontent.com/liblaf/route-rules/main/rules/{name}.domain.list', preview_url_template='https://github.com/liblaf/route-rules/blob/main/rules/{name}.domain.list', behavior=<Behavior.DOMAIN: 'domain'>, format=<Format.TEXT: 'text'>), 'MetaCubeX/geosite': ProviderMihomo(name='MetaCubeX/geosite', download_url_template='https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/{name}.yaml', preview_url_template='https://github.com/MetaCubeX/meta-rules-dat/blob/meta/geo/geosite/{name}.yaml', behavior=<Behavior.DOMAIN: 'domain'>, format=<Format.YAML: 'yaml'>), 'SukkaW/classical': ProviderMihomo(name='SukkaW/classical', download_url_template='https://ruleset.skk.moe/Clash/{name}.txt', preview_url_template='https://ruleset.skk.moe/Clash/{name}.txt', behavior=<Behavior.CLASSICAL: 'classical'>, format=<Format.TEXT: 'text'>), 'SukkaW/domain': ProviderMihomo(name='SukkaW/domain', download_url_template='https://ruleset.skk.moe/Clash/{name}.txt', preview_url_template='https://ruleset.skk.moe/Clash/{name}.txt', behavior=<Behavior.DOMAIN: 'domain'>, format=<Format.TEXT: 'text'>)})) – -
slug(str, default:<dynamic>) –
- Reference route_rules
Methods:
-
build– -
from_config–
Attributes:
-
excludes(list[str]) – -
name(str) – -
providers(list[str]) – -
registry(ProviderRegistry) – -
slug(str) –
registry
class-attribute
instance-attribute
¤
registry: ProviderRegistry = field(
repr=False, factory=presets, kw_only=True
)
slug
class-attribute
instance-attribute
¤
build
async
¤
build() -> RuleSet
Source code in src/route_rules/gen/_recipe.py
44 45 46 47 48 49 | |
from_config
classmethod
¤
from_config(config: RecipeConfig) -> Self
Source code in src/route_rules/gen/_recipe.py
38 39 40 41 42 | |
RecipeMeta
pydantic-model
¤
Bases: BaseModel
Parameters:
-
name(str) – -
slug(str) – -
artifacts(list[ArtifactMeta], default:<dynamic>) –Built-in mutable sequence.
If no argument is given, the constructor creates a new empty list. The argument must be an iterable if specified.
-
providers(list[ProviderMeta], default:<dynamic>) –Built-in mutable sequence.
If no argument is given, the constructor creates a new empty list. The argument must be an iterable if specified.
-
statistics(RecipeStatistics, default:<dynamic>) –
Show JSON schema:
{
"$defs": {
"ArtifactMeta": {
"properties": {
"behavior": {
"$ref": "#/$defs/Behavior"
},
"format": {
"$ref": "#/$defs/Format"
},
"path": {
"format": "path",
"title": "Path",
"type": "string"
},
"size": {
"title": "Size",
"type": "integer"
}
},
"required": [
"behavior",
"format",
"path",
"size"
],
"title": "ArtifactMeta",
"type": "object"
},
"Behavior": {
"enum": [
"domain",
"ipcidr",
"classical"
],
"title": "Behavior",
"type": "string"
},
"Format": {
"enum": [
"yaml",
"text",
"mrs"
],
"title": "Format",
"type": "string"
},
"ProviderMeta": {
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"download_url": {
"title": "Download Url",
"type": "string"
},
"preview_url": {
"title": "Preview Url",
"type": "string"
}
},
"required": [
"name",
"download_url",
"preview_url"
],
"title": "ProviderMeta",
"type": "object"
},
"RecipeStatistics": {
"properties": {
"inputs": {
"additionalProperties": {
"type": "integer"
},
"title": "Inputs",
"type": "object"
},
"outputs": {
"additionalProperties": {
"type": "integer"
},
"title": "Outputs",
"type": "object"
}
},
"title": "RecipeStatistics",
"type": "object"
}
},
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"slug": {
"title": "Slug",
"type": "string"
},
"artifacts": {
"items": {
"$ref": "#/$defs/ArtifactMeta"
},
"title": "Artifacts",
"type": "array"
},
"providers": {
"items": {
"$ref": "#/$defs/ProviderMeta"
},
"title": "Providers",
"type": "array"
},
"statistics": {
"$ref": "#/$defs/RecipeStatistics"
}
},
"required": [
"name",
"slug"
],
"title": "RecipeMeta",
"type": "object"
}
Fields:
-
name(str) -
slug(str) -
artifacts(list[ArtifactMeta]) -
providers(list[ProviderMeta]) -
statistics(RecipeStatistics)
RuleSet
¤
Bases: UserDict[str, set[str]]
flowchart TD
route_rules.RuleSet[RuleSet]
click route_rules.RuleSet href "" "route_rules.RuleSet"
- Reference route_rules
-
Reference
route_rules
export
export
Methods:
-
__missing__– -
__or__– -
__sub__– -
add– -
difference– -
optimize– -
union–
Attributes:
__missing__
¤
Source code in src/route_rules/core/_ruleset.py
14 15 16 | |
__or__
¤
Source code in src/route_rules/core/_ruleset.py
18 19 20 | |
__sub__
¤
Source code in src/route_rules/core/_ruleset.py
22 23 | |
add
¤
Source code in src/route_rules/core/_ruleset.py
37 38 39 | |
difference
¤
Source code in src/route_rules/core/_ruleset.py
50 51 52 53 | |
download
async
¤
download(url: str) -> Response
Source code in src/route_rules/utils/_download.py
10 11 12 13 14 15 16 17 | |