并行支持

原生 python 受限制于 全局解释器锁 (GIL),多线程并不会真正并行执行,在 Matx 中,我们提供了 matx.pmap 原语,提供了后台并行执行能力。

import matx
from typing import Any, List

def lower_impl(s: str) -> str:
    return s.lower()

def MyParallelLower(inputs: List[str]) -> List[str]:
    return matx.pmap(lower_impl, inputs)

p_lower = matx.script(MyParallelLower)
print(p_lower(["Hello"]))

正则表达式

Matx 内置了一个基于 PCRE 的高性能正则引擎,目前单独封装了接口,可以如下使用

import matx
from typing import Any, List

class Spliter:
    def __init__(self) -> None:
        self.regex: Any = matx.Regex(
            r'(([\v\f\r\n]+)|(?<=[^?。;,!!?][?。;,!!?])(?=[^?。;,!!?]))')

    def __call__(self, ss: str) -> List[str]:
        return self.regex.split(ss)

spliter = matx.script(Spliter)()
print(spliter("hELLO \v WORLD"))