Skip to main content

compconf enables flexible, type-rich comptime configuration of Cerebras Software Language (CSL) projects

Project description

compconf

CI GitHub stars PyPi

compconf enables flexible, type-rich comptime configuration of Cerebras Software Language (CSL) projects

  • Free software: MIT license

Usage

compconf wraps the cslc compiler, forwarding all non-compconf flags.

python3 -m compconf --compconf-jq '. += {"baz:f32": 42.0}'

Access configuration values in csl code using the compconf module.

const compconf = @import("compconf.zig");

fn main() void {
    @comptime_print(compconf.get_value("baz", f32));
    @comptime_print(compconf.get_value_or("bar", @as(f16, 24.0)));
}

The compconf module provides the following functions:

fn get_value(comptime field_name: comptime_string, comptime T: type) T

fn get_value_or(
    comptime field_name: comptime_string, comptime default_value: anytype
) @type_of(default_value)

Available options:

usage: __main__.py [-h] [--compconf-cslc COMPCONF_CSLC] [--compconf-data COMPCONF_DATA] [--compconf-jq COMPCONF_JQ] [--compconf-verbose]

compconf enables flexible, type-rich comptime configuration of csl projects.

options:
  -h, --help            show this help message and exit
  --compconf-cslc COMPCONF_CSLC
                        compiler command to run
  --compconf-data COMPCONF_DATA
                        json data file to read, if any
  --compconf-jq COMPCONF_JQ
                        jq command to add/modify data (e.g., '. += {"foo:u32": 42}')
  --compconf-verbose    enable verbose logging

JSON data must be formatted according to `@import_comptime_value` conventions. See <https://sdk.cerebras.net/csl/language/builtins#import-comptime-value> DISCLAIMER: Cerebras Software
Language is the intellectual property of Cerebras Systems, Inc. This project is not an official Cerebras project and is not affiliated with or endorsed by Cerebras Systems, Inc. in any
way. All trademarks, logos, and intellectual property associated with Cerebras Systems remain the exclusive property of Cerebras Systems, Inc.

Singularity Container

A containerized release of compconf is available via <ghcr.io>

singularity exec docker://ghcr.io/mmore500/compconf:v0.6.4 python3 -m compconf --help

Installation

To install from PyPi with pip, run

python3 -m pip install compconf

Disclaimer

Cerebras Software Language is the intellectual property of Cerebras Systems, Inc. This project is not an official Cerebras project and is not affiliated with or endorsed by Cerebras Systems, Inc. in any way. All trademarks, logos, and intellectual property associated with Cerebras Systems remain the exclusive property of Cerebras Systems, Inc.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

compconf-0.6.4.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

compconf-0.6.4-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file compconf-0.6.4.tar.gz.

File metadata

  • Download URL: compconf-0.6.4.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for compconf-0.6.4.tar.gz
Algorithm Hash digest
SHA256 3be6222cdd24ad61fe3b26d0f04a9eb76d1fb46d4ebc0a57c772d3dd336392d4
MD5 e408bb67c3da8cff48287aabde44337c
BLAKE2b-256 2cb580f8b52e074d206c8de62ce9be85d86e302607d8c0905cb670734f962590

See more details on using hashes here.

File details

Details for the file compconf-0.6.4-py3-none-any.whl.

File metadata

  • Download URL: compconf-0.6.4-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for compconf-0.6.4-py3-none-any.whl
Algorithm Hash digest
SHA256 cfdd71b141e794e5ef4c80bf723c2b8cf0196ab7d0bc7ae0071a4a5487e30300
MD5 4c4e963ff47d9f9a20dbe8734dab3dda
BLAKE2b-256 22106a25c7311397e5d7d242db49342e87b2bf0ca05b97479d7d8142d6bb6c59

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page