Package materialize

Package materialize is the top-level Python package for Materialize, Inc.

While the primary product, materialized, is written in Rust, various demos and build tools are written in Python. This package enables the sharing of code between those scripts.

Consider writing additional Python code when:

  • You are writing scripts intended to be run by users of Materialize, not developers, e.g. automation for a complicated demo. We can reasonably ask users to install Python 3.6+. A Rust toolchain is a much bigger ask.

  • You are about to write a large Bash script.

  • You've already written a Bash script whose complexity and maintainability has deteriorated as the script's responsibilities have grown.

Expand source code Browse git
# Copyright Materialize, Inc. and contributors. All rights reserved.
#
# Use of this software is governed by the Business Source License
# included in the LICENSE file at the root of this repository.
#
# As of the Change Date specified in that file, in accordance with
# the Business Source License, use of this software will be governed
# by the Apache License, Version 2.0.

"""Package `materialize` is the top-level Python package for Materialize, Inc.

While the primary product, [materialized], is written in Rust, various demos and
build tools are written in Python. This package enables the sharing of code
between those scripts.

Consider writing additional Python code when:

  * You are writing scripts intended to be run by users of Materialize, not
    developers, e.g. automation for a complicated demo. We can reasonably ask
    users to install Python 3.6+. A Rust toolchain is a much bigger ask.

  * You are about to write a large Bash script.

  * You've already written a Bash script whose complexity and maintainability
    has deteriorated as the script's responsibilities have grown.

[materialized]: https://dev.materialize.com/api/rust/materialized/index.html
"""

import os
from pathlib import Path

MZ_ROOT = Path(os.environ["MZ_ROOT"])
"""The absolute path to the root of the Materialize repository."""

Sub-modules

materialize.benches
materialize.build_context

Build context providing a partial facade to git utilities and buildkite utilities.

materialize.buildkite

Buildkite utilities.

materialize.buildkite_insights
materialize.cargo

A pure Python metadata parser for Cargo, Rust's package manager …

materialize.checks
materialize.ci_util

Utility functions only useful in CI.

materialize.cli

Package materialize.cli describes the command line interface to the materialize package …

materialize.cloudtest
materialize.cut-release

Cut a new release and push it to the Materialize repo

materialize.data_ingest
materialize.deb

Debian packaging utilities.

materialize.docker

Docker utilities.

materialize.elf
materialize.feature_benchmark
materialize.file_util

File utilities.

materialize.git

Git utilities.

materialize.lint
materialize.mysql_util
materialize.mz_version

Version types

materialize.mzbuild

The implementation of the mzbuild system for Docker images …

materialize.mzcompose

The implementation of the mzcompose system for Docker compositions …

materialize.mzexplore
materialize.optbench
materialize.output_consistency
materialize.parallel_workload
materialize.postgres_consistency
materialize.query_fitness
materialize.rustc_flags
materialize.scalability
materialize.scratch

Utilities for launching and interacting with scratch EC2 instances.

materialize.setup
materialize.spawn

Utilities for spawning processes …

materialize.sqlsmith
materialize.terminal

Terminal utilities.

materialize.ui

Utilities for interacting with humans.

materialize.util

Various utilities

materialize.version_ancestor_overrides
materialize.version_consistency
materialize.version_list
materialize.xcompile

Support for cross-compiling to Linux.

materialize.zippy

Global variables

var MZ_ROOT

The absolute path to the root of the Materialize repository.