跳转到主要内容

用于处理数学表达式的计算机代数系统

项目描述

mathy_core: 解析和操作数学表达式

Build Types codecov Pypi version Code style: black

Mathy core是一个Python包(带有类型注解),用于处理数学问题。它有一个将纯文本转换为标记的标记化器,一个将标记转换为表达式树的解析器,一个基于规则的系统来操作树,一个用于可视化树的布局系统,以及一组问题生成函数,可用于生成机器学习训练数据集。

🚀 快速入门

您可以从pip安装mathy_core

pip install mathy_core

📖 文档

请访问https://core.mathy.ai以获取API文档、示例等信息!

示例

考虑几个示例来了解Mathy core的功能。

评估表达式

算术非常简单。

from mathy_core import ExpressionParser

expression = ExpressionParser().parse("4 + 2")
assert expression.evaluate() == 6

使用变量评估

在评估表达式时可以指定变量值。

from mathy_core import ExpressionParser, MathExpression

expression: MathExpression = ExpressionParser().parse("4x + 2y")
assert expression.evaluate({"x": 2, "y": 5}) == 18

转换表达式

可以使用基于数字属性的规则来更改表达式。

from mathy_core import ExpressionParser
from mathy_core.rules import DistributiveFactorOutRule

input = "4x + 2x"
output = "(4 + 2) * x"
parser = ExpressionParser()

input_exp = parser.parse(input)
output_exp = parser.parse(output)

# Verify that the rule transforms the tree as expected
change = DistributiveFactorOutRule().apply_to(input_exp)
assert str(change.result) == output

# Verify that both trees evaluate to the same value
ctx = {"x": 3}
assert input_exp.evaluate(ctx) == output_exp.evaluate(ctx)

开发

在虚拟环境中安装先决条件(需要python3)

sh tools/setup.sh

运行测试套件并查看代码覆盖率统计信息

sh tools/test.sh

测试覆盖了约90%的代码,因此它们是了解如何使用各种API的好参考。

语义版本化

在Mathy Core达到v1.0之前,项目不保证API的一致性,这意味着类型和类可能会移动或被删除。尽管如此,我们在破坏性更改方面尽量做到可预测,因此项目使用语义版本化来帮助用户避免中断。

具体来说,新版本会增加新功能和修复的补丁 semver组件,以及存在重大变更时的次要组件。如果你不太了解semver字符串,它们通常格式为{主}.{次}.{补丁},因此增加补丁组件意味着递增最后一个数字。

考虑以下示例

从版本 到版本 变更是否破坏性
0.2.0 0.2.1
0.3.2 0.3.6
0.3.1 0.3.17
0.2.2 0.3.0

如果你担心破坏性变更,可以在需求中固定版本,使其不超过当前的semver 次要组件,例如,如果当前版本是0.1.37

mathy_core>=0.1.37,<0.2.0

贡献者

Mathy Core的存在离不开以下人员的杰出贡献


Justin DuJardin

JT Stukes

本项目遵循all-contributors规范。欢迎各种类型的贡献!

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

mathy_core-0.9.4.tar.gz (59.6 kB 查看哈希值)

上传时间 源代码

构建分发

mathy_core-0.9.4-py3-none-any.whl (74.1 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面