跳转到主要内容

Rust jrsonnet crate的Python绑定

项目描述

rjsonnet-py

CI PyPI

Python绑定到Rust jrsonnet crate(Jsonnet语言的Rust实现)。

安装

pip install rjsonnet

使用

此模块提供两个函数

  1. def evaluate_file(filename: str) -> str: ...
  2. def evaluate_snippet(filename: str, src: str) -> str: ...

在后一种情况下,参数 filename 用于堆栈跟踪,因为所有错误都带有包含代码的 "filename"。

这些函数的关键字参数用于控制虚拟机。它们是

  • max_stack (数字)
  • gc_min_objects (数字,忽略)
  • gc_growth_trigger (数字,忽略)
  • ext_vars (字典,字符串到字符串)
  • ext_codes (字典,字符串到字符串)
  • tla_vars (字典,字符串到字符串)
  • tla_codes (字典,字符串到字符串)
  • max_trace (数字)
  • import_callback (见 tests/ 中的示例)
  • native_callbacks (见 tests/ 中的示例)
  • preserve_order (布尔值,在实体化过程中保留对象字段顺序)

可以使用参数 import_callback 来传递一个可调用的函数,以捕获Jsonnet的 importimportstr 结构。这允许,例如,从存档中读取文件或实现库搜索路径。

参数 native_callbacks 用于允许通过 std.native(...) 执行任意Python代码。这对于Jsonnet代码访问Python生态系统中的纯函数很有用,例如压缩、加密、编码等。

如果在评估Jsonnet代码期间引发错误,则将其形成堆栈跟踪,并以python RuntimeError 的形式抛出。

import rjsonnet

# evaluate a jsonnet file
rjsonnet.evaluate_file("filename.jsonnet")

# evalute a jsonnet code snippet
rjsonnet.evaluate_snippet('filename', 'jsonnet code snippet')

许可协议

此作品在MIT许可下发布。许可协议的副本包含在 LICENSE 文件中。

项目详情


下载文件

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

源分发

rjsonnet-0.5.4.tar.gz (15.8 kB 查看哈希值)

上传时间

构建分发

rjsonnet-0.5.4-cp37-abi3-win_amd64.whl (946.1 kB 查看哈希值)

上传时间 CPython 3.7+ Windows x86-64

rjsonnet-0.5.4-cp37-abi3-win32.whl (876.0 kB 查看哈希值)

上传时间 CPython 3.7+ Windows x86

rjsonnet-0.5.4-cp37-abi3-musllinux_1_2_x86_64.whl (1.4 MB 查看哈希值)

上传时间 CPython 3.7+ musllinux: musl 1.2+ x86-64

rjsonnet-0.5.4-cp37-abi3-musllinux_1_2_i686.whl (1.4 MB 查看哈希值)

上传时间 CPython 3.7+ musllinux: musl 1.2+ i686

rjsonnet-0.5.4-cp37-abi3-musllinux_1_2_armv7l.whl (1.5 MB 查看哈希值)

上传时间 CPython 3.7+ musllinux: musl 1.2+ ARMv7l

rjsonnet-0.5.4-cp37-abi3-musllinux_1_2_aarch64.whl (1.4 MB 查看哈希值)

上传时间 CPython 3.7+ musllinux: musl 1.2+ ARM64

rjsonnet-0.5.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB 查看哈希值)

上传时间 CPython 3.7+ manylinux: glibc 2.17+ x86-64

rjsonnet-0.5.4-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.5 MB 查看哈希)

上传时间 CPython 3.7+ manylinux: glibc 2.17+ s390x

rjsonnet-0.5.4-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.3 MB 查看哈希)

上传时间 CPython 3.7+ manylinux: glibc 2.17+ ppc64le

rjsonnet-0.5.4-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.2 MB 查看哈希)

上传时间 CPython 3.7+ manylinux: glibc 2.17+ ARMv7l

rjsonnet-0.5.4-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB 查看哈希)

上传时间 CPython 3.7+ manylinux: glibc 2.17+ ARM64

rjsonnet-0.5.4-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl (1.3 MB 查看哈希)

上传时间 CPython 3.7+ manylinux: glibc 2.5+ i686

rjsonnet-0.5.4-cp37-abi3-macosx_10_12_x86_64.whl (1.1 MB 查看哈希)

上传时间 CPython 3.7+ macOS 10.12+ x86-64

rjsonnet-0.5.4-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.2 MB 查看哈希)

上传时间 CPython 3.7+ macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

由以下机构支持

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