From d65d96191a9b740aa925a5c27a5cf2b8322fdb21 Mon Sep 17 00:00:00 2001 From: Arnim Balzer Date: Sun, 17 Mar 2024 10:51:38 +0000 Subject: [PATCH 1/3] Added basic Python Support Supported: - FrameMarks - ScopedZones - Memory allocations - Plots - ThreadNames - Messages - AppConfig Not supported: - GPU --- CMakeLists.txt | 10 + manual/tracy.tex | 123 + python/.gitignore | 8 + python/CMakeLists.txt | 50 + python/HeaderFixer.txt | 16 + python/bindings/Memory.hpp | 90 + python/bindings/Module.cpp | 872 +++++ python/bindings/NameBuffer.hpp | 59 + python/bindings/ScopedZone.hpp | 122 + python/setup.py | 57 + python/tracy_client/TracyClientBindings.pyi | 3526 +++++++++++++++++++ python/tracy_client/__init__.py | 3 + python/tracy_client/py.typed | 0 python/tracy_client/scoped.py | 119 + python/tracy_client/tracy.py | 36 + 15 files changed, 5091 insertions(+) create mode 100644 python/.gitignore create mode 100644 python/CMakeLists.txt create mode 100644 python/HeaderFixer.txt create mode 100644 python/bindings/Memory.hpp create mode 100644 python/bindings/Module.cpp create mode 100644 python/bindings/NameBuffer.hpp create mode 100644 python/bindings/ScopedZone.hpp create mode 100644 python/setup.py create mode 100644 python/tracy_client/TracyClientBindings.pyi create mode 100644 python/tracy_client/__init__.py create mode 100644 python/tracy_client/py.typed create mode 100644 python/tracy_client/scoped.py create mode 100644 python/tracy_client/tracy.py diff --git a/CMakeLists.txt b/CMakeLists.txt index 4c700702..f8fe2f71 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -167,3 +167,13 @@ configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/Tracy) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/TracyConfig.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/Tracy) + +option(TRACY_CLIENT_PYTHON "Whether to build Tracy python client library" OFF) + +if(TRACY_CLIENT_PYTHON) + if(TRACY_STATIC) + message(FATAL_ERROR "Python-bindings require a shared client library") + endif() + + add_subdirectory(python) +endif() diff --git a/manual/tracy.tex b/manual/tracy.tex index 8051b7ae..02d67239 100644 --- a/manual/tracy.tex +++ b/manual/tracy.tex @@ -2181,6 +2181,129 @@ Since you are directly calling the profiler functions here, you will need to tak disabling the code if the \texttt{TRACY\_ENABLE} macro is not defined. \end{bclogo} +\subsection{Python API} +\label{pythonapi} + +To profile Python code using Tracy, a Python package can be built. This is done using the excellent C++11 based Python bindings generator pybind11, see \url{https://pybind11.readthedocs.io}. +As a first step, a Tracy-Client shared library needs to be built (with the compile definitions you want to use) and then pybind11 is used to create the Python-bindings. +Afterwards, a Python c-extension package can be created (the package will be platform and Python version dependent). + +An especially powerful feature is the ability to profile Python code and any other C/C++ code used in a single code base as long as the C/C++ code links to the same shared Tracy-Client library that is installed with the Python package. + +\subsubsection{Bindings} + +An example of how to use the Tracy-Client bindings is shown below: + +\begin{lstlisting} +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +from time import sleep + +import numpy as np + +import tracy_client as tracy + + +@tracy.ScopedFrameDecorator("framed") +@tracy.ScopedZoneDecorator(name="work", color=tracy.ColorType.Red4) +def work(): + sleep(0.05) + + +def main(): + assert tracy.program_name("MyApp") + assert tracy.app_info("this is a python app") + + tracy.thread_name("python") # main thread so bit useless + + plot_id = tracy.plot_config("plot", tracy.PlotFormatType.Number) + assert plot_id is not None + + mem_id = None + + index = 0 + while True: + with tracy.ScopedZone(name="test", color=tracy.ColorType.Coral) as zone: + index += 1 + + tracy.frame_mark() + + inner = tracy.ScopedZone(depth=5, color=tracy.ColorType.Coral) + inner.color(index % 5) + inner.name(str(index)) + inner.enter() + + if index % 2: + tracy.alloc(44, index) + else: + tracy.free(44) + + if not index % 2: + if mem_id is None: + mem_id = tracy.alloc(1337000000, index, name="named", depth=4) + assert mem_id is not None + else: + tracy.alloc(1337000000, index, id=mem_id, depth=4) + else: + tracy.free(1337000000, mem_id, 4) + + with tracy.ScopedFrame("custom"): + + image = np.full([400, 400, 4], index, dtype=np.uint8) + assert tracy.frame_image(image.tobytes(), 400, 400) + + inner.exit() + + zone.text(index) + + assert tracy.message(f"we are at index {index}") + assert tracy.message(f"we are at index {index}", tracy.ColorType.Coral) + + assert tracy.plot(plot_id, index) + + work() + + sleep(0.1) + + +if __name__ == "__main__": + main() +\end{lstlisting} + +Please not the use of ids as way to cope with the need for unique pointers for certain features of the Tracy profiler, see section~\ref{uniquepointers}. + +\subsubsection{Building the Python package} + +To build the Python package, you will need to use the CMake build system to compile the Tracy-Client. +The CMake option \texttt{-D TRACY_CLIENT_PYTHON=ON} is used to enable the generation of the Python bindings in conjunction with a mandatory creation of a shared Tracy-Client library via one of the CMake options \texttt{-D BUILD_SHARED_LIBS=ON} or \texttt{-D DEFAULT_STATIC=OFF}. + +The following two variables are available in addition: + +\begin{itemize} +\item \texttt{BUFFER_SIZE} --- The size of the global pointer buffer (defaults to 128) for naming Tracy profiling entities like frame marks, plots, and memory locations. +\item \texttt{NAME_LENGTH} --- The maximum length (defaults to 128) of a name stored in the global pointer buffer. +\end{itemize} + +Be aware that the memory allocated by this buffer is global and is not freed, see section ~\ref{uniquepointers}. + +See below for example steps to build the Python bindings using CMake: + +\begin{lstlisting} +mkdir build +cd build +cmake -DTRACY_STATIC=OFF -DTRACY_CLIENT_PYTHON=ON ../ +\end{lstlisting} + +Once this has finished building the Python package can be built as follows: + +\begin{lstlisting} +cd ../python +python3 setup.py bdist_wheel +\end{lstlisting} + +The created package will be in the folder \texttt{python/dist}. + \subsection{Automated data collection} \label{automated} diff --git a/python/.gitignore b/python/.gitignore new file mode 100644 index 00000000..0aa3c9b9 --- /dev/null +++ b/python/.gitignore @@ -0,0 +1,8 @@ +*.dylib +*.so.* +build +dist +tracy_client.egg-info +client +common +tracy diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt new file mode 100644 index 00000000..b5a267e3 --- /dev/null +++ b/python/CMakeLists.txt @@ -0,0 +1,50 @@ +find_package(Python 3.6 COMPONENTS Interpreter Development REQUIRED) + +include(FetchContent) + +FetchContent_Declare(pybind11 GIT_REPOSITORY "https://github.com/pybind/pybind11.git" GIT_TAG "v2.11.1" GIT_SHALLOW ON TEST_BEFORE_INSTALL ON) +FetchContent_MakeAvailable(pybind11) + +set(BUFFER_SIZE 128 CACHE STRING "The size of the pointer buffer") +set(NAME_LENGTH 128 CACHE STRING "The length of a name in the buffer") + +pybind11_add_module(TracyClientBindings SHARED bindings/Module.cpp) +target_link_libraries(TracyClientBindings PUBLIC TracyClient) +target_compile_definitions(TracyClientBindings PUBLIC BUFFER_SIZE=${BUFFER_SIZE}) +target_compile_definitions(TracyClientBindings PUBLIC NAME_LENGTH=${NAME_LENGTH}) + +set(TRACY_PYTHON_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tracy_client) +set(TRACY_LIB_SYMLINK $$$) + +add_custom_command(TARGET TracyClient TracyClientBindings POST_BUILD + COMMAND ${CMAKE_COMMAND} -E make_directory ${TRACY_PYTHON_DIR}/client + COMMAND ${CMAKE_COMMAND} -E copy ${client_includes} ${TRACY_PYTHON_DIR}/client + COMMAND ${CMAKE_COMMAND} -DFOLDER=${TRACY_PYTHON_DIR}/client -P ${CMAKE_CURRENT_SOURCE_DIR}/HeaderFixer.txt + + COMMAND ${CMAKE_COMMAND} -E make_directory ${TRACY_PYTHON_DIR}/common + COMMAND ${CMAKE_COMMAND} -E copy ${common_includes} ${TRACY_PYTHON_DIR}/common + COMMAND ${CMAKE_COMMAND} -DFOLDER=${TRACY_PYTHON_DIR}/common -P ${CMAKE_CURRENT_SOURCE_DIR}/HeaderFixer.txt + + COMMAND ${CMAKE_COMMAND} -E make_directory ${TRACY_PYTHON_DIR}/tracy + COMMAND ${CMAKE_COMMAND} -E copy ${tracy_includes} ${TRACY_PYTHON_DIR}/tracy + COMMAND ${CMAKE_COMMAND} -DFOLDER=${TRACY_PYTHON_DIR}/tracy -P ${CMAKE_CURRENT_SOURCE_DIR}/HeaderFixer.txt + + COMMAND ${CMAKE_COMMAND} -E copy $ ${TRACY_PYTHON_DIR}/ + + COMMAND ${CMAKE_COMMAND} -E copy $ ${TRACY_PYTHON_DIR}/ + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/../${TRACY_LIB_SYMLINK} ${TRACY_PYTHON_DIR}/ + + BYPRODUCTS ${TRACY_PYTHON_DIR}/client ${TRACY_PYTHON_DIR}/common ${TRACY_PYTHON_DIR}/tracy +) + +set(TRACY_CLIENT_PYTHON_TARGET "" CACHE STRING "Optional directory to copy python files to") + +if(NOT TRACY_CLIENT_PYTHON_TARGET STREQUAL "") + file(GLOB_RECURSE TRACY_CLIENT_PYTHON_FILES ${TRACY_PYTHON_DIR}/*.py*) + add_custom_command(TARGET TracyClientBindings POST_BUILD + COMMAND ${CMAKE_COMMAND} -E make_directory ${TRACY_CLIENT_PYTHON_TARGET} + COMMAND ${CMAKE_COMMAND} -E copy $ ${TRACY_CLIENT_PYTHON_TARGET}/ + COMMAND ${CMAKE_COMMAND} -E copy ${TRACY_CLIENT_PYTHON_FILES} ${TRACY_CLIENT_PYTHON_TARGET}/ + BYPRODUCTS ${TRACY_CLIENT_PYTHON_TARGET} + ) +endif() diff --git a/python/HeaderFixer.txt b/python/HeaderFixer.txt new file mode 100644 index 00000000..45c25d61 --- /dev/null +++ b/python/HeaderFixer.txt @@ -0,0 +1,16 @@ +function(fix_header FILE) + file(READ ${FILE} FILE_CONTENT) + string(REPLACE "../client" "client" FILE_CONTENT "${FILE_CONTENT}") + string(REPLACE "../common" "common" FILE_CONTENT "${FILE_CONTENT}") + string(REPLACE "../tracy" "tracy" FILE_CONTENT "${FILE_CONTENT}") + file(WRITE ${FILE} "${FILE_CONTENT}") +endfunction() + +function(fix_headers FOLDER) + file(GLOB FILES "${FOLDER}/*.h*") + foreach(FILE ${FILES}) + fix_header(${FILE}) + endforeach() +endfunction() + +fix_headers(${FOLDER}) diff --git a/python/bindings/Memory.hpp b/python/bindings/Memory.hpp new file mode 100644 index 00000000..bd1982be --- /dev/null +++ b/python/bindings/Memory.hpp @@ -0,0 +1,90 @@ +#pragma once + +#include +namespace py = pybind11; + +#include "NameBuffer.hpp" +#include "tracy/Tracy.hpp" + +using OptionalString = std::optional; +using OptionalInt = std::optional; + +template +OptionalNumber MemoryAllocate(const Type &type, std::size_t size, + const OptionalString &name = std::nullopt, + const OptionalNumber &id = std::nullopt, + OptionalInt depth = std::nullopt) { +#ifdef TRACY_ENABLE + if (!name && !id) { + if (!depth) + TracyAlloc(reinterpret_cast(type), size); + else + TracyAllocS(reinterpret_cast(type), size, *depth); + return std::nullopt; + } + + BufferEntry entry; + + if (id) { + entry.second = NameBuffer::Get(*id); + if (!entry.second) return std::nullopt; + } else { + entry = NameBuffer::Add(*name); + if (!entry.first) return std::nullopt; + } + + if (!depth) + TracyAllocN(reinterpret_cast(type), size, entry.second); + else + TracyAllocNS(reinterpret_cast(type), size, *depth, entry.second); + return entry.first; +#else + static_cast(type); // unused + static_cast(size); // unused + static_cast(name); // unused + static_cast(id); // unused + static_cast(depth); // unused +#endif +} + +template <> +OptionalNumber MemoryAllocate(const py::object &object, std::size_t size, + const OptionalString &name, + const OptionalNumber &id, OptionalInt depth) { + return MemoryAllocate(reinterpret_cast(object.ptr()), + size, name, id, depth); +} + +template +bool MemoryFree(const Type &type, const OptionalNumber &id = std::nullopt, + OptionalInt depth = std::nullopt) { +#ifdef TRACY_ENABLE + if (!id) { + if (!depth) + TracyFree(reinterpret_cast(type)); + else + TracyFreeS(reinterpret_cast(type), *depth); + return true; + } + + auto ptr = NameBuffer::Get(*id); + if (!ptr) return false; + + if (!depth) + TracyFreeN(reinterpret_cast(type), ptr); + else + TracyFreeNS(reinterpret_cast(type), *depth, ptr); + return true; +#else + static_cast(type); // unused + static_cast(id); // unused + static_cast(depth); // unused +#endif +} + +template <> +bool MemoryFree(const py::object &object, const OptionalNumber &id, + OptionalInt depth) { + return MemoryFree(reinterpret_cast(object.ptr()), id, + depth); +} diff --git a/python/bindings/Module.cpp b/python/bindings/Module.cpp new file mode 100644 index 00000000..7522de6c --- /dev/null +++ b/python/bindings/Module.cpp @@ -0,0 +1,872 @@ +#include "Memory.hpp" +#include "ScopedZone.hpp" +#include "tracy/TracyC.h" + +namespace tracy { +#ifndef TRACY_ENABLE +enum class PlotFormatType : uint8_t { Number, Memory, Percentage }; +#endif + +constexpr static inline bool IsEnabled() { +#ifdef TRACY_ENABLE + return true; +#else + return false; +#endif +} +} // namespace tracy + +PYBIND11_MODULE(TracyClientBindings, m) { + m.doc() = "Tracy Client Bindings"; + + m.def("is_enabled", &tracy::IsEnabled); + + py::enum_(m, "ColorType") + .value("Snow", tracy::Color::Snow) + .value("GhostWhite", tracy::Color::GhostWhite) + .value("WhiteSmoke", tracy::Color::WhiteSmoke) + .value("Gainsboro", tracy::Color::Gainsboro) + .value("FloralWhite", tracy::Color::FloralWhite) + .value("OldLace", tracy::Color::OldLace) + .value("Linen", tracy::Color::Linen) + .value("AntiqueWhite", tracy::Color::AntiqueWhite) + .value("PapayaWhip", tracy::Color::PapayaWhip) + .value("BlanchedAlmond", tracy::Color::BlanchedAlmond) + .value("Bisque", tracy::Color::Bisque) + .value("PeachPuff", tracy::Color::PeachPuff) + .value("NavajoWhite", tracy::Color::NavajoWhite) + .value("Moccasin", tracy::Color::Moccasin) + .value("Cornsilk", tracy::Color::Cornsilk) + .value("Ivory", tracy::Color::Ivory) + .value("LemonChiffon", tracy::Color::LemonChiffon) + .value("Seashell", tracy::Color::Seashell) + .value("Honeydew", tracy::Color::Honeydew) + .value("MintCream", tracy::Color::MintCream) + .value("Azure", tracy::Color::Azure) + .value("AliceBlue", tracy::Color::AliceBlue) + .value("Lavender", tracy::Color::Lavender) + .value("LavenderBlush", tracy::Color::LavenderBlush) + .value("MistyRose", tracy::Color::MistyRose) + .value("White", tracy::Color::White) + .value("Black", tracy::Color::Black) + .value("DarkSlateGray", tracy::Color::DarkSlateGray) + .value("DarkSlateGrey", tracy::Color::DarkSlateGrey) + .value("DimGray", tracy::Color::DimGray) + .value("DimGrey", tracy::Color::DimGrey) + .value("SlateGray", tracy::Color::SlateGray) + .value("SlateGrey", tracy::Color::SlateGrey) + .value("LightSlateGray", tracy::Color::LightSlateGray) + .value("LightSlateGrey", tracy::Color::LightSlateGrey) + .value("Gray", tracy::Color::Gray) + .value("Grey", tracy::Color::Grey) + .value("X11Gray", tracy::Color::X11Gray) + .value("X11Grey", tracy::Color::X11Grey) + .value("WebGray", tracy::Color::WebGray) + .value("WebGrey", tracy::Color::WebGrey) + .value("LightGrey", tracy::Color::LightGrey) + .value("LightGray", tracy::Color::LightGray) + .value("MidnightBlue", tracy::Color::MidnightBlue) + .value("Navy", tracy::Color::Navy) + .value("NavyBlue", tracy::Color::NavyBlue) + .value("CornflowerBlue", tracy::Color::CornflowerBlue) + .value("DarkSlateBlue", tracy::Color::DarkSlateBlue) + .value("SlateBlue", tracy::Color::SlateBlue) + .value("MediumSlateBlue", tracy::Color::MediumSlateBlue) + .value("LightSlateBlue", tracy::Color::LightSlateBlue) + .value("MediumBlue", tracy::Color::MediumBlue) + .value("RoyalBlue", tracy::Color::RoyalBlue) + .value("Blue", tracy::Color::Blue) + .value("DodgerBlue", tracy::Color::DodgerBlue) + .value("DeepSkyBlue", tracy::Color::DeepSkyBlue) + .value("SkyBlue", tracy::Color::SkyBlue) + .value("LightSkyBlue", tracy::Color::LightSkyBlue) + .value("SteelBlue", tracy::Color::SteelBlue) + .value("LightSteelBlue", tracy::Color::LightSteelBlue) + .value("LightBlue", tracy::Color::LightBlue) + .value("PowderBlue", tracy::Color::PowderBlue) + .value("PaleTurquoise", tracy::Color::PaleTurquoise) + .value("DarkTurquoise", tracy::Color::DarkTurquoise) + .value("MediumTurquoise", tracy::Color::MediumTurquoise) + .value("Turquoise", tracy::Color::Turquoise) + .value("Cyan", tracy::Color::Cyan) + .value("Aqua", tracy::Color::Aqua) + .value("LightCyan", tracy::Color::LightCyan) + .value("CadetBlue", tracy::Color::CadetBlue) + .value("MediumAquamarine", tracy::Color::MediumAquamarine) + .value("Aquamarine", tracy::Color::Aquamarine) + .value("DarkGreen", tracy::Color::DarkGreen) + .value("DarkOliveGreen", tracy::Color::DarkOliveGreen) + .value("DarkSeaGreen", tracy::Color::DarkSeaGreen) + .value("SeaGreen", tracy::Color::SeaGreen) + .value("MediumSeaGreen", tracy::Color::MediumSeaGreen) + .value("LightSeaGreen", tracy::Color::LightSeaGreen) + .value("PaleGreen", tracy::Color::PaleGreen) + .value("SpringGreen", tracy::Color::SpringGreen) + .value("LawnGreen", tracy::Color::LawnGreen) + .value("Green", tracy::Color::Green) + .value("Lime", tracy::Color::Lime) + .value("X11Green", tracy::Color::X11Green) + .value("WebGreen", tracy::Color::WebGreen) + .value("Chartreuse", tracy::Color::Chartreuse) + .value("MediumSpringGreen", tracy::Color::MediumSpringGreen) + .value("GreenYellow", tracy::Color::GreenYellow) + .value("LimeGreen", tracy::Color::LimeGreen) + .value("YellowGreen", tracy::Color::YellowGreen) + .value("ForestGreen", tracy::Color::ForestGreen) + .value("OliveDrab", tracy::Color::OliveDrab) + .value("DarkKhaki", tracy::Color::DarkKhaki) + .value("Khaki", tracy::Color::Khaki) + .value("PaleGoldenrod", tracy::Color::PaleGoldenrod) + .value("LightGoldenrodYellow", tracy::Color::LightGoldenrodYellow) + .value("LightYellow", tracy::Color::LightYellow) + .value("Yellow", tracy::Color::Yellow) + .value("Gold", tracy::Color::Gold) + .value("LightGoldenrod", tracy::Color::LightGoldenrod) + .value("Goldenrod", tracy::Color::Goldenrod) + .value("DarkGoldenrod", tracy::Color::DarkGoldenrod) + .value("RosyBrown", tracy::Color::RosyBrown) + .value("IndianRed", tracy::Color::IndianRed) + .value("SaddleBrown", tracy::Color::SaddleBrown) + .value("Sienna", tracy::Color::Sienna) + .value("Peru", tracy::Color::Peru) + .value("Burlywood", tracy::Color::Burlywood) + .value("Beige", tracy::Color::Beige) + .value("Wheat", tracy::Color::Wheat) + .value("SandyBrown", tracy::Color::SandyBrown) + .value("Tan", tracy::Color::Tan) + .value("Chocolate", tracy::Color::Chocolate) + .value("Firebrick", tracy::Color::Firebrick) + .value("Brown", tracy::Color::Brown) + .value("DarkSalmon", tracy::Color::DarkSalmon) + .value("Salmon", tracy::Color::Salmon) + .value("LightSalmon", tracy::Color::LightSalmon) + .value("Orange", tracy::Color::Orange) + .value("DarkOrange", tracy::Color::DarkOrange) + .value("Coral", tracy::Color::Coral) + .value("LightCoral", tracy::Color::LightCoral) + .value("Tomato", tracy::Color::Tomato) + .value("OrangeRed", tracy::Color::OrangeRed) + .value("Red", tracy::Color::Red) + .value("HotPink", tracy::Color::HotPink) + .value("DeepPink", tracy::Color::DeepPink) + .value("Pink", tracy::Color::Pink) + .value("LightPink", tracy::Color::LightPink) + .value("PaleVioletRed", tracy::Color::PaleVioletRed) + .value("Maroon", tracy::Color::Maroon) + .value("X11Maroon", tracy::Color::X11Maroon) + .value("WebMaroon", tracy::Color::WebMaroon) + .value("MediumVioletRed", tracy::Color::MediumVioletRed) + .value("VioletRed", tracy::Color::VioletRed) + .value("Magenta", tracy::Color::Magenta) + .value("Fuchsia", tracy::Color::Fuchsia) + .value("Violet", tracy::Color::Violet) + .value("Plum", tracy::Color::Plum) + .value("Orchid", tracy::Color::Orchid) + .value("MediumOrchid", tracy::Color::MediumOrchid) + .value("DarkOrchid", tracy::Color::DarkOrchid) + .value("DarkViolet", tracy::Color::DarkViolet) + .value("BlueViolet", tracy::Color::BlueViolet) + .value("Purple", tracy::Color::Purple) + .value("X11Purple", tracy::Color::X11Purple) + .value("WebPurple", tracy::Color::WebPurple) + .value("MediumPurple", tracy::Color::MediumPurple) + .value("Thistle", tracy::Color::Thistle) + .value("Snow1", tracy::Color::Snow1) + .value("Snow2", tracy::Color::Snow2) + .value("Snow3", tracy::Color::Snow3) + .value("Snow4", tracy::Color::Snow4) + .value("Seashell1", tracy::Color::Seashell1) + .value("Seashell2", tracy::Color::Seashell2) + .value("Seashell3", tracy::Color::Seashell3) + .value("Seashell4", tracy::Color::Seashell4) + .value("AntiqueWhite1", tracy::Color::AntiqueWhite1) + .value("AntiqueWhite2", tracy::Color::AntiqueWhite2) + .value("AntiqueWhite3", tracy::Color::AntiqueWhite3) + .value("AntiqueWhite4", tracy::Color::AntiqueWhite4) + .value("Bisque1", tracy::Color::Bisque1) + .value("Bisque2", tracy::Color::Bisque2) + .value("Bisque3", tracy::Color::Bisque3) + .value("Bisque4", tracy::Color::Bisque4) + .value("PeachPuff1", tracy::Color::PeachPuff1) + .value("PeachPuff2", tracy::Color::PeachPuff2) + .value("PeachPuff3", tracy::Color::PeachPuff3) + .value("PeachPuff4", tracy::Color::PeachPuff4) + .value("NavajoWhite1", tracy::Color::NavajoWhite1) + .value("NavajoWhite2", tracy::Color::NavajoWhite2) + .value("NavajoWhite3", tracy::Color::NavajoWhite3) + .value("NavajoWhite4", tracy::Color::NavajoWhite4) + .value("LemonChiffon1", tracy::Color::LemonChiffon1) + .value("LemonChiffon2", tracy::Color::LemonChiffon2) + .value("LemonChiffon3", tracy::Color::LemonChiffon3) + .value("LemonChiffon4", tracy::Color::LemonChiffon4) + .value("Cornsilk1", tracy::Color::Cornsilk1) + .value("Cornsilk2", tracy::Color::Cornsilk2) + .value("Cornsilk3", tracy::Color::Cornsilk3) + .value("Cornsilk4", tracy::Color::Cornsilk4) + .value("Ivory1", tracy::Color::Ivory1) + .value("Ivory2", tracy::Color::Ivory2) + .value("Ivory3", tracy::Color::Ivory3) + .value("Ivory4", tracy::Color::Ivory4) + .value("Honeydew1", tracy::Color::Honeydew1) + .value("Honeydew2", tracy::Color::Honeydew2) + .value("Honeydew3", tracy::Color::Honeydew3) + .value("Honeydew4", tracy::Color::Honeydew4) + .value("LavenderBlush1", tracy::Color::LavenderBlush1) + .value("LavenderBlush2", tracy::Color::LavenderBlush2) + .value("LavenderBlush3", tracy::Color::LavenderBlush3) + .value("LavenderBlush4", tracy::Color::LavenderBlush4) + .value("MistyRose1", tracy::Color::MistyRose1) + .value("MistyRose2", tracy::Color::MistyRose2) + .value("MistyRose3", tracy::Color::MistyRose3) + .value("MistyRose4", tracy::Color::MistyRose4) + .value("Azure1", tracy::Color::Azure1) + .value("Azure2", tracy::Color::Azure2) + .value("Azure3", tracy::Color::Azure3) + .value("Azure4", tracy::Color::Azure4) + .value("SlateBlue1", tracy::Color::SlateBlue1) + .value("SlateBlue2", tracy::Color::SlateBlue2) + .value("SlateBlue3", tracy::Color::SlateBlue3) + .value("SlateBlue4", tracy::Color::SlateBlue4) + .value("RoyalBlue1", tracy::Color::RoyalBlue1) + .value("RoyalBlue2", tracy::Color::RoyalBlue2) + .value("RoyalBlue3", tracy::Color::RoyalBlue3) + .value("RoyalBlue4", tracy::Color::RoyalBlue4) + .value("Blue1", tracy::Color::Blue1) + .value("Blue2", tracy::Color::Blue2) + .value("Blue3", tracy::Color::Blue3) + .value("Blue4", tracy::Color::Blue4) + .value("DodgerBlue1", tracy::Color::DodgerBlue1) + .value("DodgerBlue2", tracy::Color::DodgerBlue2) + .value("DodgerBlue3", tracy::Color::DodgerBlue3) + .value("DodgerBlue4", tracy::Color::DodgerBlue4) + .value("SteelBlue1", tracy::Color::SteelBlue1) + .value("SteelBlue2", tracy::Color::SteelBlue2) + .value("SteelBlue3", tracy::Color::SteelBlue3) + .value("SteelBlue4", tracy::Color::SteelBlue4) + .value("DeepSkyBlue1", tracy::Color::DeepSkyBlue1) + .value("DeepSkyBlue2", tracy::Color::DeepSkyBlue2) + .value("DeepSkyBlue3", tracy::Color::DeepSkyBlue3) + .value("DeepSkyBlue4", tracy::Color::DeepSkyBlue4) + .value("SkyBlue1", tracy::Color::SkyBlue1) + .value("SkyBlue2", tracy::Color::SkyBlue2) + .value("SkyBlue3", tracy::Color::SkyBlue3) + .value("SkyBlue4", tracy::Color::SkyBlue4) + .value("LightSkyBlue1", tracy::Color::LightSkyBlue1) + .value("LightSkyBlue2", tracy::Color::LightSkyBlue2) + .value("LightSkyBlue3", tracy::Color::LightSkyBlue3) + .value("LightSkyBlue4", tracy::Color::LightSkyBlue4) + .value("SlateGray1", tracy::Color::SlateGray1) + .value("SlateGray2", tracy::Color::SlateGray2) + .value("SlateGray3", tracy::Color::SlateGray3) + .value("SlateGray4", tracy::Color::SlateGray4) + .value("LightSteelBlue1", tracy::Color::LightSteelBlue1) + .value("LightSteelBlue2", tracy::Color::LightSteelBlue2) + .value("LightSteelBlue3", tracy::Color::LightSteelBlue3) + .value("LightSteelBlue4", tracy::Color::LightSteelBlue4) + .value("LightBlue1", tracy::Color::LightBlue1) + .value("LightBlue2", tracy::Color::LightBlue2) + .value("LightBlue3", tracy::Color::LightBlue3) + .value("LightBlue4", tracy::Color::LightBlue4) + .value("LightCyan1", tracy::Color::LightCyan1) + .value("LightCyan2", tracy::Color::LightCyan2) + .value("LightCyan3", tracy::Color::LightCyan3) + .value("LightCyan4", tracy::Color::LightCyan4) + .value("PaleTurquoise1", tracy::Color::PaleTurquoise1) + .value("PaleTurquoise2", tracy::Color::PaleTurquoise2) + .value("PaleTurquoise3", tracy::Color::PaleTurquoise3) + .value("PaleTurquoise4", tracy::Color::PaleTurquoise4) + .value("CadetBlue1", tracy::Color::CadetBlue1) + .value("CadetBlue2", tracy::Color::CadetBlue2) + .value("CadetBlue3", tracy::Color::CadetBlue3) + .value("CadetBlue4", tracy::Color::CadetBlue4) + .value("Turquoise1", tracy::Color::Turquoise1) + .value("Turquoise2", tracy::Color::Turquoise2) + .value("Turquoise3", tracy::Color::Turquoise3) + .value("Turquoise4", tracy::Color::Turquoise4) + .value("Cyan1", tracy::Color::Cyan1) + .value("Cyan2", tracy::Color::Cyan2) + .value("Cyan3", tracy::Color::Cyan3) + .value("Cyan4", tracy::Color::Cyan4) + .value("DarkSlateGray1", tracy::Color::DarkSlateGray1) + .value("DarkSlateGray2", tracy::Color::DarkSlateGray2) + .value("DarkSlateGray3", tracy::Color::DarkSlateGray3) + .value("DarkSlateGray4", tracy::Color::DarkSlateGray4) + .value("Aquamarine1", tracy::Color::Aquamarine1) + .value("Aquamarine2", tracy::Color::Aquamarine2) + .value("Aquamarine3", tracy::Color::Aquamarine3) + .value("Aquamarine4", tracy::Color::Aquamarine4) + .value("DarkSeaGreen1", tracy::Color::DarkSeaGreen1) + .value("DarkSeaGreen2", tracy::Color::DarkSeaGreen2) + .value("DarkSeaGreen3", tracy::Color::DarkSeaGreen3) + .value("DarkSeaGreen4", tracy::Color::DarkSeaGreen4) + .value("SeaGreen1", tracy::Color::SeaGreen1) + .value("SeaGreen2", tracy::Color::SeaGreen2) + .value("SeaGreen3", tracy::Color::SeaGreen3) + .value("SeaGreen4", tracy::Color::SeaGreen4) + .value("PaleGreen1", tracy::Color::PaleGreen1) + .value("PaleGreen2", tracy::Color::PaleGreen2) + .value("PaleGreen3", tracy::Color::PaleGreen3) + .value("PaleGreen4", tracy::Color::PaleGreen4) + .value("SpringGreen1", tracy::Color::SpringGreen1) + .value("SpringGreen2", tracy::Color::SpringGreen2) + .value("SpringGreen3", tracy::Color::SpringGreen3) + .value("SpringGreen4", tracy::Color::SpringGreen4) + .value("Green1", tracy::Color::Green1) + .value("Green2", tracy::Color::Green2) + .value("Green3", tracy::Color::Green3) + .value("Green4", tracy::Color::Green4) + .value("Chartreuse1", tracy::Color::Chartreuse1) + .value("Chartreuse2", tracy::Color::Chartreuse2) + .value("Chartreuse3", tracy::Color::Chartreuse3) + .value("Chartreuse4", tracy::Color::Chartreuse4) + .value("OliveDrab1", tracy::Color::OliveDrab1) + .value("OliveDrab2", tracy::Color::OliveDrab2) + .value("OliveDrab3", tracy::Color::OliveDrab3) + .value("OliveDrab4", tracy::Color::OliveDrab4) + .value("DarkOliveGreen1", tracy::Color::DarkOliveGreen1) + .value("DarkOliveGreen2", tracy::Color::DarkOliveGreen2) + .value("DarkOliveGreen3", tracy::Color::DarkOliveGreen3) + .value("DarkOliveGreen4", tracy::Color::DarkOliveGreen4) + .value("Khaki1", tracy::Color::Khaki1) + .value("Khaki2", tracy::Color::Khaki2) + .value("Khaki3", tracy::Color::Khaki3) + .value("Khaki4", tracy::Color::Khaki4) + .value("LightGoldenrod1", tracy::Color::LightGoldenrod1) + .value("LightGoldenrod2", tracy::Color::LightGoldenrod2) + .value("LightGoldenrod3", tracy::Color::LightGoldenrod3) + .value("LightGoldenrod4", tracy::Color::LightGoldenrod4) + .value("LightYellow1", tracy::Color::LightYellow1) + .value("LightYellow2", tracy::Color::LightYellow2) + .value("LightYellow3", tracy::Color::LightYellow3) + .value("LightYellow4", tracy::Color::LightYellow4) + .value("Yellow1", tracy::Color::Yellow1) + .value("Yellow2", tracy::Color::Yellow2) + .value("Yellow3", tracy::Color::Yellow3) + .value("Yellow4", tracy::Color::Yellow4) + .value("Gold1", tracy::Color::Gold1) + .value("Gold2", tracy::Color::Gold2) + .value("Gold3", tracy::Color::Gold3) + .value("Gold4", tracy::Color::Gold4) + .value("Goldenrod1", tracy::Color::Goldenrod1) + .value("Goldenrod2", tracy::Color::Goldenrod2) + .value("Goldenrod3", tracy::Color::Goldenrod3) + .value("Goldenrod4", tracy::Color::Goldenrod4) + .value("DarkGoldenrod1", tracy::Color::DarkGoldenrod1) + .value("DarkGoldenrod2", tracy::Color::DarkGoldenrod2) + .value("DarkGoldenrod3", tracy::Color::DarkGoldenrod3) + .value("DarkGoldenrod4", tracy::Color::DarkGoldenrod4) + .value("RosyBrown1", tracy::Color::RosyBrown1) + .value("RosyBrown2", tracy::Color::RosyBrown2) + .value("RosyBrown3", tracy::Color::RosyBrown3) + .value("RosyBrown4", tracy::Color::RosyBrown4) + .value("IndianRed1", tracy::Color::IndianRed1) + .value("IndianRed2", tracy::Color::IndianRed2) + .value("IndianRed3", tracy::Color::IndianRed3) + .value("IndianRed4", tracy::Color::IndianRed4) + .value("Sienna1", tracy::Color::Sienna1) + .value("Sienna2", tracy::Color::Sienna2) + .value("Sienna3", tracy::Color::Sienna3) + .value("Sienna4", tracy::Color::Sienna4) + .value("Burlywood1", tracy::Color::Burlywood1) + .value("Burlywood2", tracy::Color::Burlywood2) + .value("Burlywood3", tracy::Color::Burlywood3) + .value("Burlywood4", tracy::Color::Burlywood4) + .value("Wheat1", tracy::Color::Wheat1) + .value("Wheat2", tracy::Color::Wheat2) + .value("Wheat3", tracy::Color::Wheat3) + .value("Wheat4", tracy::Color::Wheat4) + .value("Tan1", tracy::Color::Tan1) + .value("Tan2", tracy::Color::Tan2) + .value("Tan3", tracy::Color::Tan3) + .value("Tan4", tracy::Color::Tan4) + .value("Chocolate1", tracy::Color::Chocolate1) + .value("Chocolate2", tracy::Color::Chocolate2) + .value("Chocolate3", tracy::Color::Chocolate3) + .value("Chocolate4", tracy::Color::Chocolate4) + .value("Firebrick1", tracy::Color::Firebrick1) + .value("Firebrick2", tracy::Color::Firebrick2) + .value("Firebrick3", tracy::Color::Firebrick3) + .value("Firebrick4", tracy::Color::Firebrick4) + .value("Brown1", tracy::Color::Brown1) + .value("Brown2", tracy::Color::Brown2) + .value("Brown3", tracy::Color::Brown3) + .value("Brown4", tracy::Color::Brown4) + .value("Salmon1", tracy::Color::Salmon1) + .value("Salmon2", tracy::Color::Salmon2) + .value("Salmon3", tracy::Color::Salmon3) + .value("Salmon4", tracy::Color::Salmon4) + .value("LightSalmon1", tracy::Color::LightSalmon1) + .value("LightSalmon2", tracy::Color::LightSalmon2) + .value("LightSalmon3", tracy::Color::LightSalmon3) + .value("LightSalmon4", tracy::Color::LightSalmon4) + .value("Orange1", tracy::Color::Orange1) + .value("Orange2", tracy::Color::Orange2) + .value("Orange3", tracy::Color::Orange3) + .value("Orange4", tracy::Color::Orange4) + .value("DarkOrange1", tracy::Color::DarkOrange1) + .value("DarkOrange2", tracy::Color::DarkOrange2) + .value("DarkOrange3", tracy::Color::DarkOrange3) + .value("DarkOrange4", tracy::Color::DarkOrange4) + .value("Coral1", tracy::Color::Coral1) + .value("Coral2", tracy::Color::Coral2) + .value("Coral3", tracy::Color::Coral3) + .value("Coral4", tracy::Color::Coral4) + .value("Tomato1", tracy::Color::Tomato1) + .value("Tomato2", tracy::Color::Tomato2) + .value("Tomato3", tracy::Color::Tomato3) + .value("Tomato4", tracy::Color::Tomato4) + .value("OrangeRed1", tracy::Color::OrangeRed1) + .value("OrangeRed2", tracy::Color::OrangeRed2) + .value("OrangeRed3", tracy::Color::OrangeRed3) + .value("OrangeRed4", tracy::Color::OrangeRed4) + .value("Red1", tracy::Color::Red1) + .value("Red2", tracy::Color::Red2) + .value("Red3", tracy::Color::Red3) + .value("Red4", tracy::Color::Red4) + .value("DeepPink1", tracy::Color::DeepPink1) + .value("DeepPink2", tracy::Color::DeepPink2) + .value("DeepPink3", tracy::Color::DeepPink3) + .value("DeepPink4", tracy::Color::DeepPink4) + .value("HotPink1", tracy::Color::HotPink1) + .value("HotPink2", tracy::Color::HotPink2) + .value("HotPink3", tracy::Color::HotPink3) + .value("HotPink4", tracy::Color::HotPink4) + .value("Pink1", tracy::Color::Pink1) + .value("Pink2", tracy::Color::Pink2) + .value("Pink3", tracy::Color::Pink3) + .value("Pink4", tracy::Color::Pink4) + .value("LightPink1", tracy::Color::LightPink1) + .value("LightPink2", tracy::Color::LightPink2) + .value("LightPink3", tracy::Color::LightPink3) + .value("LightPink4", tracy::Color::LightPink4) + .value("PaleVioletRed1", tracy::Color::PaleVioletRed1) + .value("PaleVioletRed2", tracy::Color::PaleVioletRed2) + .value("PaleVioletRed3", tracy::Color::PaleVioletRed3) + .value("PaleVioletRed4", tracy::Color::PaleVioletRed4) + .value("Maroon1", tracy::Color::Maroon1) + .value("Maroon2", tracy::Color::Maroon2) + .value("Maroon3", tracy::Color::Maroon3) + .value("Maroon4", tracy::Color::Maroon4) + .value("VioletRed1", tracy::Color::VioletRed1) + .value("VioletRed2", tracy::Color::VioletRed2) + .value("VioletRed3", tracy::Color::VioletRed3) + .value("VioletRed4", tracy::Color::VioletRed4) + .value("Magenta1", tracy::Color::Magenta1) + .value("Magenta2", tracy::Color::Magenta2) + .value("Magenta3", tracy::Color::Magenta3) + .value("Magenta4", tracy::Color::Magenta4) + .value("Orchid1", tracy::Color::Orchid1) + .value("Orchid2", tracy::Color::Orchid2) + .value("Orchid3", tracy::Color::Orchid3) + .value("Orchid4", tracy::Color::Orchid4) + .value("Plum1", tracy::Color::Plum1) + .value("Plum2", tracy::Color::Plum2) + .value("Plum3", tracy::Color::Plum3) + .value("Plum4", tracy::Color::Plum4) + .value("MediumOrchid1", tracy::Color::MediumOrchid1) + .value("MediumOrchid2", tracy::Color::MediumOrchid2) + .value("MediumOrchid3", tracy::Color::MediumOrchid3) + .value("MediumOrchid4", tracy::Color::MediumOrchid4) + .value("DarkOrchid1", tracy::Color::DarkOrchid1) + .value("DarkOrchid2", tracy::Color::DarkOrchid2) + .value("DarkOrchid3", tracy::Color::DarkOrchid3) + .value("DarkOrchid4", tracy::Color::DarkOrchid4) + .value("Purple1", tracy::Color::Purple1) + .value("Purple2", tracy::Color::Purple2) + .value("Purple3", tracy::Color::Purple3) + .value("Purple4", tracy::Color::Purple4) + .value("MediumPurple1", tracy::Color::MediumPurple1) + .value("MediumPurple2", tracy::Color::MediumPurple2) + .value("MediumPurple3", tracy::Color::MediumPurple3) + .value("MediumPurple4", tracy::Color::MediumPurple4) + .value("Thistle1", tracy::Color::Thistle1) + .value("Thistle2", tracy::Color::Thistle2) + .value("Thistle3", tracy::Color::Thistle3) + .value("Thistle4", tracy::Color::Thistle4) + .value("Gray0", tracy::Color::Gray0) + .value("Grey0", tracy::Color::Grey0) + .value("Gray1", tracy::Color::Gray1) + .value("Grey1", tracy::Color::Grey1) + .value("Gray2", tracy::Color::Gray2) + .value("Grey2", tracy::Color::Grey2) + .value("Gray3", tracy::Color::Gray3) + .value("Grey3", tracy::Color::Grey3) + .value("Gray4", tracy::Color::Gray4) + .value("Grey4", tracy::Color::Grey4) + .value("Gray5", tracy::Color::Gray5) + .value("Grey5", tracy::Color::Grey5) + .value("Gray6", tracy::Color::Gray6) + .value("Grey6", tracy::Color::Grey6) + .value("Gray7", tracy::Color::Gray7) + .value("Grey7", tracy::Color::Grey7) + .value("Gray8", tracy::Color::Gray8) + .value("Grey8", tracy::Color::Grey8) + .value("Gray9", tracy::Color::Gray9) + .value("Grey9", tracy::Color::Grey9) + .value("Gray10", tracy::Color::Gray10) + .value("Grey10", tracy::Color::Grey10) + .value("Gray11", tracy::Color::Gray11) + .value("Grey11", tracy::Color::Grey11) + .value("Gray12", tracy::Color::Gray12) + .value("Grey12", tracy::Color::Grey12) + .value("Gray13", tracy::Color::Gray13) + .value("Grey13", tracy::Color::Grey13) + .value("Gray14", tracy::Color::Gray14) + .value("Grey14", tracy::Color::Grey14) + .value("Gray15", tracy::Color::Gray15) + .value("Grey15", tracy::Color::Grey15) + .value("Gray16", tracy::Color::Gray16) + .value("Grey16", tracy::Color::Grey16) + .value("Gray17", tracy::Color::Gray17) + .value("Grey17", tracy::Color::Grey17) + .value("Gray18", tracy::Color::Gray18) + .value("Grey18", tracy::Color::Grey18) + .value("Gray19", tracy::Color::Gray19) + .value("Grey19", tracy::Color::Grey19) + .value("Gray20", tracy::Color::Gray20) + .value("Grey20", tracy::Color::Grey20) + .value("Gray21", tracy::Color::Gray21) + .value("Grey21", tracy::Color::Grey21) + .value("Gray22", tracy::Color::Gray22) + .value("Grey22", tracy::Color::Grey22) + .value("Gray23", tracy::Color::Gray23) + .value("Grey23", tracy::Color::Grey23) + .value("Gray24", tracy::Color::Gray24) + .value("Grey24", tracy::Color::Grey24) + .value("Gray25", tracy::Color::Gray25) + .value("Grey25", tracy::Color::Grey25) + .value("Gray26", tracy::Color::Gray26) + .value("Grey26", tracy::Color::Grey26) + .value("Gray27", tracy::Color::Gray27) + .value("Grey27", tracy::Color::Grey27) + .value("Gray28", tracy::Color::Gray28) + .value("Grey28", tracy::Color::Grey28) + .value("Gray29", tracy::Color::Gray29) + .value("Grey29", tracy::Color::Grey29) + .value("Gray30", tracy::Color::Gray30) + .value("Grey30", tracy::Color::Grey30) + .value("Gray31", tracy::Color::Gray31) + .value("Grey31", tracy::Color::Grey31) + .value("Gray32", tracy::Color::Gray32) + .value("Grey32", tracy::Color::Grey32) + .value("Gray33", tracy::Color::Gray33) + .value("Grey33", tracy::Color::Grey33) + .value("Gray34", tracy::Color::Gray34) + .value("Grey34", tracy::Color::Grey34) + .value("Gray35", tracy::Color::Gray35) + .value("Grey35", tracy::Color::Grey35) + .value("Gray36", tracy::Color::Gray36) + .value("Grey36", tracy::Color::Grey36) + .value("Gray37", tracy::Color::Gray37) + .value("Grey37", tracy::Color::Grey37) + .value("Gray38", tracy::Color::Gray38) + .value("Grey38", tracy::Color::Grey38) + .value("Gray39", tracy::Color::Gray39) + .value("Grey39", tracy::Color::Grey39) + .value("Gray40", tracy::Color::Gray40) + .value("Grey40", tracy::Color::Grey40) + .value("Gray41", tracy::Color::Gray41) + .value("Grey41", tracy::Color::Grey41) + .value("Gray42", tracy::Color::Gray42) + .value("Grey42", tracy::Color::Grey42) + .value("Gray43", tracy::Color::Gray43) + .value("Grey43", tracy::Color::Grey43) + .value("Gray44", tracy::Color::Gray44) + .value("Grey44", tracy::Color::Grey44) + .value("Gray45", tracy::Color::Gray45) + .value("Grey45", tracy::Color::Grey45) + .value("Gray46", tracy::Color::Gray46) + .value("Grey46", tracy::Color::Grey46) + .value("Gray47", tracy::Color::Gray47) + .value("Grey47", tracy::Color::Grey47) + .value("Gray48", tracy::Color::Gray48) + .value("Grey48", tracy::Color::Grey48) + .value("Gray49", tracy::Color::Gray49) + .value("Grey49", tracy::Color::Grey49) + .value("Gray50", tracy::Color::Gray50) + .value("Grey50", tracy::Color::Grey50) + .value("Gray51", tracy::Color::Gray51) + .value("Grey51", tracy::Color::Grey51) + .value("Gray52", tracy::Color::Gray52) + .value("Grey52", tracy::Color::Grey52) + .value("Gray53", tracy::Color::Gray53) + .value("Grey53", tracy::Color::Grey53) + .value("Gray54", tracy::Color::Gray54) + .value("Grey54", tracy::Color::Grey54) + .value("Gray55", tracy::Color::Gray55) + .value("Grey55", tracy::Color::Grey55) + .value("Gray56", tracy::Color::Gray56) + .value("Grey56", tracy::Color::Grey56) + .value("Gray57", tracy::Color::Gray57) + .value("Grey57", tracy::Color::Grey57) + .value("Gray58", tracy::Color::Gray58) + .value("Grey58", tracy::Color::Grey58) + .value("Gray59", tracy::Color::Gray59) + .value("Grey59", tracy::Color::Grey59) + .value("Gray60", tracy::Color::Gray60) + .value("Grey60", tracy::Color::Grey60) + .value("Gray61", tracy::Color::Gray61) + .value("Grey61", tracy::Color::Grey61) + .value("Gray62", tracy::Color::Gray62) + .value("Grey62", tracy::Color::Grey62) + .value("Gray63", tracy::Color::Gray63) + .value("Grey63", tracy::Color::Grey63) + .value("Gray64", tracy::Color::Gray64) + .value("Grey64", tracy::Color::Grey64) + .value("Gray65", tracy::Color::Gray65) + .value("Grey65", tracy::Color::Grey65) + .value("Gray66", tracy::Color::Gray66) + .value("Grey66", tracy::Color::Grey66) + .value("Gray67", tracy::Color::Gray67) + .value("Grey67", tracy::Color::Grey67) + .value("Gray68", tracy::Color::Gray68) + .value("Grey68", tracy::Color::Grey68) + .value("Gray69", tracy::Color::Gray69) + .value("Grey69", tracy::Color::Grey69) + .value("Gray70", tracy::Color::Gray70) + .value("Grey70", tracy::Color::Grey70) + .value("Gray71", tracy::Color::Gray71) + .value("Grey71", tracy::Color::Grey71) + .value("Gray72", tracy::Color::Gray72) + .value("Grey72", tracy::Color::Grey72) + .value("Gray73", tracy::Color::Gray73) + .value("Grey73", tracy::Color::Grey73) + .value("Gray74", tracy::Color::Gray74) + .value("Grey74", tracy::Color::Grey74) + .value("Gray75", tracy::Color::Gray75) + .value("Grey75", tracy::Color::Grey75) + .value("Gray76", tracy::Color::Gray76) + .value("Grey76", tracy::Color::Grey76) + .value("Gray77", tracy::Color::Gray77) + .value("Grey77", tracy::Color::Grey77) + .value("Gray78", tracy::Color::Gray78) + .value("Grey78", tracy::Color::Grey78) + .value("Gray79", tracy::Color::Gray79) + .value("Grey79", tracy::Color::Grey79) + .value("Gray80", tracy::Color::Gray80) + .value("Grey80", tracy::Color::Grey80) + .value("Gray81", tracy::Color::Gray81) + .value("Grey81", tracy::Color::Grey81) + .value("Gray82", tracy::Color::Gray82) + .value("Grey82", tracy::Color::Grey82) + .value("Gray83", tracy::Color::Gray83) + .value("Grey83", tracy::Color::Grey83) + .value("Gray84", tracy::Color::Gray84) + .value("Grey84", tracy::Color::Grey84) + .value("Gray85", tracy::Color::Gray85) + .value("Grey85", tracy::Color::Grey85) + .value("Gray86", tracy::Color::Gray86) + .value("Grey86", tracy::Color::Grey86) + .value("Gray87", tracy::Color::Gray87) + .value("Grey87", tracy::Color::Grey87) + .value("Gray88", tracy::Color::Gray88) + .value("Grey88", tracy::Color::Grey88) + .value("Gray89", tracy::Color::Gray89) + .value("Grey89", tracy::Color::Grey89) + .value("Gray90", tracy::Color::Gray90) + .value("Grey90", tracy::Color::Grey90) + .value("Gray91", tracy::Color::Gray91) + .value("Grey91", tracy::Color::Grey91) + .value("Gray92", tracy::Color::Gray92) + .value("Grey92", tracy::Color::Grey92) + .value("Gray93", tracy::Color::Gray93) + .value("Grey93", tracy::Color::Grey93) + .value("Gray94", tracy::Color::Gray94) + .value("Grey94", tracy::Color::Grey94) + .value("Gray95", tracy::Color::Gray95) + .value("Grey95", tracy::Color::Grey95) + .value("Gray96", tracy::Color::Gray96) + .value("Grey96", tracy::Color::Grey96) + .value("Gray97", tracy::Color::Gray97) + .value("Grey97", tracy::Color::Grey97) + .value("Gray98", tracy::Color::Gray98) + .value("Grey98", tracy::Color::Grey98) + .value("Gray99", tracy::Color::Gray99) + .value("Grey99", tracy::Color::Grey99) + .value("Gray100", tracy::Color::Gray100) + .value("Grey100", tracy::Color::Grey100) + .value("DarkGrey", tracy::Color::DarkGrey) + .value("DarkGray", tracy::Color::DarkGray) + .value("DarkBlue", tracy::Color::DarkBlue) + .value("DarkCyan", tracy::Color::DarkCyan) + .value("DarkMagenta", tracy::Color::DarkMagenta) + .value("DarkRed", tracy::Color::DarkRed) + .value("LightGreen", tracy::Color::LightGreen) + .value("Crimson", tracy::Color::Crimson) + .value("Indigo", tracy::Color::Indigo) + .value("Olive", tracy::Color::Olive) + .value("RebeccaPurple", tracy::Color::RebeccaPurple) + .value("Silver", tracy::Color::Silver) + .value("Teal", tracy::Color::Teal) + .export_values(); + + m.def( + "program_name", + [](const std::string &name) { + if (!tracy::IsEnabled()) return false; + auto entry = NameBuffer::Add(name); + if (!entry.first) return false; + TracySetProgramName(entry.second); + return true; + }, + "name"_a.none(false)); + + m.def( + "thread_name", + [](const std::string &name) { + if (!tracy::IsEnabled()) return; + tracy::SetThreadName(name.c_str()); + }, + "name"_a.none(false)); + + m.def( + "app_info", + [](const std::string &text) { + if (!tracy::IsEnabled()) return false; + if (text.size() >= std::numeric_limits::max()) return false; + TracyAppInfo(text.c_str(), text.size()); + return true; + }, + "text"_a.none(false)); + + m.def( + "message", + [](const std::string &message) { + if (!tracy::IsEnabled()) return false; + if (message.size() >= std::numeric_limits::max()) + return false; + TracyMessage(message.c_str(), message.size()); + return true; + }, + "message"_a.none(false)); + + m.def( + "message", + [](const std::string &message, uint32_t pColor) { + if (!tracy::IsEnabled()) return false; + if (message.size() >= std::numeric_limits::max()) + return false; + TracyMessageC(message.c_str(), message.size(), pColor); + return true; + }, + "message"_a.none(false), "color"_a.none(false)); + + m.def("frame_mark", []() { FrameMark; }); + + m.def( + "frame_mark_start", + [](const std::string &name) { + if (!tracy::IsEnabled()) + return static_cast(std::nullopt); + auto entry = NameBuffer::Add(name); + if (!entry.first) return static_cast(std::nullopt); + FrameMarkStart(entry.second); + return entry.first; + }, + "name"_a.none(false)); + + m.def( + "frame_mark_end", + [](std::size_t id) { + if (!tracy::IsEnabled()) return false; + auto ptr = NameBuffer::Get(id); + if (!ptr) return false; + FrameMarkEnd(ptr); + return true; + }, + "name"_a.none(false)); + + m.def( + "frame_image", + [](const py::bytes &image, uint16_t width, uint16_t height, + uint8_t offset = 0, bool flip = false) { + if (!tracy::IsEnabled()) return false; + if (width % 4 != 0 || height % 4 != 0) return false; + TracyCFrameImage(std::string(image).data(), width, height, offset, + flip); + return true; + }, + "data"_a.none(false), "width"_a.none(false), "height"_a.none(false), + "offset"_a.none(false) = 0, "flip"_a.none(false) = false); + + py::class_>(m, "_ScopedZone") + .def(py::init(), + "name"_a, "color"_a.none(false), "depth"_a, "active"_a.none(false), + "function"_a.none(false), "file"_a.none(false), "line"_a.none(false)) + .def_property_readonly("is_active", &PyScopedZone::IsActive) + .def("text", &PyScopedZone::Text, "text"_a.none(false)) + .def("text", &PyScopedZone::Text, "text"_a.none(false)) + .def("name", &PyScopedZone::Name, "name"_a.none(false)) + .def("_color", &PyScopedZone::Color, "color"_a.none(false)) + .def("enter", &PyScopedZone::Enter) + .def("exit", &PyScopedZone::Exit); + + m.def("alloc", &MemoryAllocate<>, "ptr"_a.none(false), "size"_a.none(false), + "name"_a = static_cast(std::nullopt), + "id"_a = static_cast(std::nullopt), + "depth"_a = static_cast(std::nullopt)); + m.def("alloc", &MemoryAllocate, "object"_a.none(false), + "size"_a.none(false), + "name"_a = static_cast(std::nullopt), + "id"_a = static_cast(std::nullopt), + "depth"_a = static_cast(std::nullopt)); + + m.def("free", &MemoryFree<>, "ptr"_a.none(false), + "id"_a = static_cast(std::nullopt), + "depth"_a = static_cast(std::nullopt)); + m.def("free", &MemoryFree, "object"_a.none(false), + "id"_a = static_cast(std::nullopt), + "depth"_a = static_cast(std::nullopt)); + + m.def( + "_plot_config", + [](const std::string &name, int type, bool step, bool fill, + uint32_t color = 0) { + if (!tracy::IsEnabled()) + return static_cast(std::nullopt); + auto entry = NameBuffer::Add(name); + if (!entry.first) return static_cast(std::nullopt); + TracyCPlotConfig(entry.second, type, step, fill, color); + return entry.first; + }, + "name"_a.none(false), "type"_a.none(false), "step"_a.none(false), + "fill"_a.none(false), "color"_a.none(false)); + + py::enum_(m, "PlotFormatType") + .value("Number", tracy::PlotFormatType::Number) + .value("Memory", tracy::PlotFormatType::Memory) + .value("Percentage", tracy::PlotFormatType::Percentage) + .export_values(); + + m.def( + "plot", + [](std::size_t id, double value) { + if (!tracy::IsEnabled()) return false; + auto ptr = NameBuffer::Get(id); + if (!ptr) return false; + TracyCPlot(ptr, value); + return true; + }, + "id"_a.none(false), "value"_a.none(false)); + m.def( + "plot", + [](std::size_t id, float value) { + if (!tracy::IsEnabled()) return false; + auto ptr = NameBuffer::Get(id); + if (!ptr) return false; + TracyCPlotF(ptr, value); + return true; + }, + "id"_a.none(false), "value"_a.none(false)); + m.def( + "plot", + [](std::size_t id, int64_t value) { + if (!tracy::IsEnabled()) return false; + auto ptr = NameBuffer::Get(id); + if (!ptr) return false; + TracyCPlotI(ptr, value); + return true; + }, + "id"_a.none(false), "value"_a.none(false)); +} diff --git a/python/bindings/NameBuffer.hpp b/python/bindings/NameBuffer.hpp new file mode 100644 index 00000000..071010e5 --- /dev/null +++ b/python/bindings/NameBuffer.hpp @@ -0,0 +1,59 @@ +#pragma once + +#include +#include +#include +#include + +#ifndef BUFFER_SIZE +#define BUFFER_SIZE = 128 +#endif + +#ifndef NAME_LENGTH +#define NAME_LENGTH = 128 +#endif + +using OptionalNumber = std::optional; +using BufferEntry = std::pair; + +class NameBuffer { + public: + static inline BufferEntry Add(const std::string& name) { + return getBuffer().add(name); + } + + static inline const char* Get(std::size_t index) { + return getBuffer().get(index); + } + + private: + NameBuffer() : m_buffer(BUFFER_SIZE, nullptr), m_index(0ul) { + for (std::size_t index = 0ul, end = m_buffer.size(); index < end; ++index) + m_buffer[index] = new char[NAME_LENGTH]; + } + + std::mutex m_mutex; + std::vector m_buffer; + std::size_t m_index; + + static inline NameBuffer& getBuffer() { + static NameBuffer buffer; + return buffer; + } + + BufferEntry add(const std::string& name) { + std::lock_guard lock(m_mutex); + if (m_index >= BUFFER_SIZE || name.size() > NAME_LENGTH) + return std::make_pair(std::nullopt, nullptr); + + auto index = m_index++; + name.copy(m_buffer[index], name.size()); + return std::make_pair(index, m_buffer[index]); + } + + const char* get(std::size_t index) { + std::lock_guard lock(m_mutex); + if (index >= BUFFER_SIZE) return nullptr; + return m_buffer[index]; + } +}; diff --git a/python/bindings/ScopedZone.hpp b/python/bindings/ScopedZone.hpp new file mode 100644 index 00000000..e5c6143b --- /dev/null +++ b/python/bindings/ScopedZone.hpp @@ -0,0 +1,122 @@ +#pragma once + +#include +#include + +namespace py = pybind11; +using namespace pybind11::literals; + +#include +#include + +#include "tracy/Tracy.hpp" + +#ifdef TRACY_ENABLE +template +bool SetText(const Type& text, tracy::ScopedZone* zone) { + return SetText(py::str(text), zone); +} +template <> +bool SetText(const std::string& text, tracy::ScopedZone* zone) { + if (!zone || text.size() >= std::numeric_limits::max()) + return false; + zone->Text(text.c_str(), text.size()); + return true; +} +#endif + +class PyScopedZone { + public: + PyScopedZone(const std::optional& name, uint32_t color, + std::optional depth, bool active, + const std::string& function, const std::string& source, + uint32_t line) + : m_name(name), + m_color(color), + m_depth(depth), + m_active(active), + m_function(function), + m_source(source), + m_line(line) { +#if defined TRACY_HAS_CALLSTACK && defined TRACY_CALLSTACK + if (!depth) depth = TRACY_CALLSTACK; +#endif + } + virtual ~PyScopedZone() { Exit(); }; + + bool IsActive() const { +#ifdef TRACY_ENABLE + if (!m_zone) return m_active; + return m_zone->IsActive(); +#else + return false; +#endif + } + + template + bool Text(const Type& text) { +#ifdef TRACY_ENABLE + return SetText(text, m_zone); +#else + static_cast(text); // unused +#endif + } + + bool Name(const std::string& name) { +#ifdef TRACY_ENABLE + if (name.size() >= std::numeric_limits::max()) return false; + m_name = name; + if (!m_zone) return true; + m_zone->Name(m_name->c_str(), m_name->size()); + return true; +#else + static_cast(name); // unused +#endif + } + + void Color(uint32_t color) { +#ifdef TRACY_ENABLE + m_color = color; + if (!m_zone) return; + m_zone->Color(m_color); +#else + static_cast(color); // unused +#endif + } + + void Enter() { +#ifdef TRACY_ENABLE + if (m_depth) + m_zone = new tracy::ScopedZone( + m_line, m_source.c_str(), m_source.size(), m_function.c_str(), + m_function.size(), m_name ? m_name->c_str() : nullptr, + m_name ? m_name->size() : 0ul, m_color, *m_depth, m_active); + else + m_zone = new tracy::ScopedZone( + m_line, m_source.c_str(), m_source.size(), m_function.c_str(), + m_function.size(), m_name ? m_name->c_str() : nullptr, + m_name ? m_name->size() : 0ul, m_color, m_active); +#endif + } + + void Exit() { +#ifdef TRACY_ENABLE + if (m_zone) delete m_zone; + m_zone = nullptr; +#endif + } + + private: + std::optional m_name; + uint32_t m_color; + std::optional m_depth; + bool m_active; + + std::string m_function; + std::string m_source; + uint32_t m_line; + +#ifdef TRACY_ENABLE + tracy::ScopedZone* m_zone; +#endif +}; diff --git a/python/setup.py b/python/setup.py new file mode 100644 index 00000000..07d568ad --- /dev/null +++ b/python/setup.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- + +import glob +import os +import shutil + +from typing import List + +from setuptools import setup, find_namespace_packages, Extension +from setuptools.command.build_ext import build_ext + +MODULE_NAME = "tracy_client" + + +def find_files(pattern: str) -> List[str]: + return glob.glob(os.path.join(MODULE_NAME, pattern), recursive=True) + + +class ManualExtension(Extension): + def __init__(self) -> None: + super().__init__(name=MODULE_NAME, sources=[]) + + +class DummyBuild(build_ext): + def build_extension(self, ext) -> None: + extdir = os.path.abspath(os.path.dirname(self.get_ext_fullpath(ext.name))) + extdir = os.path.join(extdir, MODULE_NAME) + + for entry in find_files("*cpython*"): + shutil.copy( + os.path.abspath(entry), + os.path.join(extdir, os.path.basename(entry)), + ) + + +setup( + name=MODULE_NAME, + version="0.10.0", + author="Bartosz Taudul", + author_email="wolf@nereid.pl", + description="A real time, nanosecond resolution, remote telemetry, hybrid frame and sampling profiler for games and other applications.", + long_description="This package contains the client code only. See the documentation for further details.", + url="https://github.com/wolfpld/tracy", + ext_modules=[ManualExtension()], + cmdclass={"build_ext": DummyBuild}, + package_dir={"": "."}, + packages=find_namespace_packages(where="."), + package_data={"": ["py.typed"]}, + data_files=[ + ("lib", find_files("lib*")), + ("include/client", find_files("client/*.h*")), + ("include/common", find_files("common/*.h*")), + ("include/tracy", find_files("tracy/*.h*")), + ], + include_package_data=True, + zip_safe=False, +) diff --git a/python/tracy_client/TracyClientBindings.pyi b/python/tracy_client/TracyClientBindings.pyi new file mode 100644 index 00000000..35be784e --- /dev/null +++ b/python/tracy_client/TracyClientBindings.pyi @@ -0,0 +1,3526 @@ +"""Tracy Client Bindings""" +from __future__ import annotations +import tracy_client.TracyClientBindings +import typing + +__all__ = [ + "AliceBlue", + "AntiqueWhite", + "AntiqueWhite1", + "AntiqueWhite2", + "AntiqueWhite3", + "AntiqueWhite4", + "Aqua", + "Aquamarine", + "Aquamarine1", + "Aquamarine2", + "Aquamarine3", + "Aquamarine4", + "Azure", + "Azure1", + "Azure2", + "Azure3", + "Azure4", + "Beige", + "Bisque", + "Bisque1", + "Bisque2", + "Bisque3", + "Bisque4", + "Black", + "BlanchedAlmond", + "Blue", + "Blue1", + "Blue2", + "Blue3", + "Blue4", + "BlueViolet", + "Brown", + "Brown1", + "Brown2", + "Brown3", + "Brown4", + "Burlywood", + "Burlywood1", + "Burlywood2", + "Burlywood3", + "Burlywood4", + "CadetBlue", + "CadetBlue1", + "CadetBlue2", + "CadetBlue3", + "CadetBlue4", + "Chartreuse", + "Chartreuse1", + "Chartreuse2", + "Chartreuse3", + "Chartreuse4", + "Chocolate", + "Chocolate1", + "Chocolate2", + "Chocolate3", + "Chocolate4", + "ColorType", + "Coral", + "Coral1", + "Coral2", + "Coral3", + "Coral4", + "CornflowerBlue", + "Cornsilk", + "Cornsilk1", + "Cornsilk2", + "Cornsilk3", + "Cornsilk4", + "Crimson", + "Cyan", + "Cyan1", + "Cyan2", + "Cyan3", + "Cyan4", + "DarkBlue", + "DarkCyan", + "DarkGoldenrod", + "DarkGoldenrod1", + "DarkGoldenrod2", + "DarkGoldenrod3", + "DarkGoldenrod4", + "DarkGray", + "DarkGreen", + "DarkGrey", + "DarkKhaki", + "DarkMagenta", + "DarkOliveGreen", + "DarkOliveGreen1", + "DarkOliveGreen2", + "DarkOliveGreen3", + "DarkOliveGreen4", + "DarkOrange", + "DarkOrange1", + "DarkOrange2", + "DarkOrange3", + "DarkOrange4", + "DarkOrchid", + "DarkOrchid1", + "DarkOrchid2", + "DarkOrchid3", + "DarkOrchid4", + "DarkRed", + "DarkSalmon", + "DarkSeaGreen", + "DarkSeaGreen1", + "DarkSeaGreen2", + "DarkSeaGreen3", + "DarkSeaGreen4", + "DarkSlateBlue", + "DarkSlateGray", + "DarkSlateGray1", + "DarkSlateGray2", + "DarkSlateGray3", + "DarkSlateGray4", + "DarkSlateGrey", + "DarkTurquoise", + "DarkViolet", + "DeepPink", + "DeepPink1", + "DeepPink2", + "DeepPink3", + "DeepPink4", + "DeepSkyBlue", + "DeepSkyBlue1", + "DeepSkyBlue2", + "DeepSkyBlue3", + "DeepSkyBlue4", + "DimGray", + "DimGrey", + "DodgerBlue", + "DodgerBlue1", + "DodgerBlue2", + "DodgerBlue3", + "DodgerBlue4", + "Firebrick", + "Firebrick1", + "Firebrick2", + "Firebrick3", + "Firebrick4", + "FloralWhite", + "ForestGreen", + "Fuchsia", + "Gainsboro", + "GhostWhite", + "Gold", + "Gold1", + "Gold2", + "Gold3", + "Gold4", + "Goldenrod", + "Goldenrod1", + "Goldenrod2", + "Goldenrod3", + "Goldenrod4", + "Gray", + "Gray0", + "Gray1", + "Gray10", + "Gray100", + "Gray11", + "Gray12", + "Gray13", + "Gray14", + "Gray15", + "Gray16", + "Gray17", + "Gray18", + "Gray19", + "Gray2", + "Gray20", + "Gray21", + "Gray22", + "Gray23", + "Gray24", + "Gray25", + "Gray26", + "Gray27", + "Gray28", + "Gray29", + "Gray3", + "Gray30", + "Gray31", + "Gray32", + "Gray33", + "Gray34", + "Gray35", + "Gray36", + "Gray37", + "Gray38", + "Gray39", + "Gray4", + "Gray40", + "Gray41", + "Gray42", + "Gray43", + "Gray44", + "Gray45", + "Gray46", + "Gray47", + "Gray48", + "Gray49", + "Gray5", + "Gray50", + "Gray51", + "Gray52", + "Gray53", + "Gray54", + "Gray55", + "Gray56", + "Gray57", + "Gray58", + "Gray59", + "Gray6", + "Gray60", + "Gray61", + "Gray62", + "Gray63", + "Gray64", + "Gray65", + "Gray66", + "Gray67", + "Gray68", + "Gray69", + "Gray7", + "Gray70", + "Gray71", + "Gray72", + "Gray73", + "Gray74", + "Gray75", + "Gray76", + "Gray77", + "Gray78", + "Gray79", + "Gray8", + "Gray80", + "Gray81", + "Gray82", + "Gray83", + "Gray84", + "Gray85", + "Gray86", + "Gray87", + "Gray88", + "Gray89", + "Gray9", + "Gray90", + "Gray91", + "Gray92", + "Gray93", + "Gray94", + "Gray95", + "Gray96", + "Gray97", + "Gray98", + "Gray99", + "Green", + "Green1", + "Green2", + "Green3", + "Green4", + "GreenYellow", + "Grey", + "Grey0", + "Grey1", + "Grey10", + "Grey100", + "Grey11", + "Grey12", + "Grey13", + "Grey14", + "Grey15", + "Grey16", + "Grey17", + "Grey18", + "Grey19", + "Grey2", + "Grey20", + "Grey21", + "Grey22", + "Grey23", + "Grey24", + "Grey25", + "Grey26", + "Grey27", + "Grey28", + "Grey29", + "Grey3", + "Grey30", + "Grey31", + "Grey32", + "Grey33", + "Grey34", + "Grey35", + "Grey36", + "Grey37", + "Grey38", + "Grey39", + "Grey4", + "Grey40", + "Grey41", + "Grey42", + "Grey43", + "Grey44", + "Grey45", + "Grey46", + "Grey47", + "Grey48", + "Grey49", + "Grey5", + "Grey50", + "Grey51", + "Grey52", + "Grey53", + "Grey54", + "Grey55", + "Grey56", + "Grey57", + "Grey58", + "Grey59", + "Grey6", + "Grey60", + "Grey61", + "Grey62", + "Grey63", + "Grey64", + "Grey65", + "Grey66", + "Grey67", + "Grey68", + "Grey69", + "Grey7", + "Grey70", + "Grey71", + "Grey72", + "Grey73", + "Grey74", + "Grey75", + "Grey76", + "Grey77", + "Grey78", + "Grey79", + "Grey8", + "Grey80", + "Grey81", + "Grey82", + "Grey83", + "Grey84", + "Grey85", + "Grey86", + "Grey87", + "Grey88", + "Grey89", + "Grey9", + "Grey90", + "Grey91", + "Grey92", + "Grey93", + "Grey94", + "Grey95", + "Grey96", + "Grey97", + "Grey98", + "Grey99", + "Honeydew", + "Honeydew1", + "Honeydew2", + "Honeydew3", + "Honeydew4", + "HotPink", + "HotPink1", + "HotPink2", + "HotPink3", + "HotPink4", + "IndianRed", + "IndianRed1", + "IndianRed2", + "IndianRed3", + "IndianRed4", + "Indigo", + "Ivory", + "Ivory1", + "Ivory2", + "Ivory3", + "Ivory4", + "Khaki", + "Khaki1", + "Khaki2", + "Khaki3", + "Khaki4", + "Lavender", + "LavenderBlush", + "LavenderBlush1", + "LavenderBlush2", + "LavenderBlush3", + "LavenderBlush4", + "LawnGreen", + "LemonChiffon", + "LemonChiffon1", + "LemonChiffon2", + "LemonChiffon3", + "LemonChiffon4", + "LightBlue", + "LightBlue1", + "LightBlue2", + "LightBlue3", + "LightBlue4", + "LightCoral", + "LightCyan", + "LightCyan1", + "LightCyan2", + "LightCyan3", + "LightCyan4", + "LightGoldenrod", + "LightGoldenrod1", + "LightGoldenrod2", + "LightGoldenrod3", + "LightGoldenrod4", + "LightGoldenrodYellow", + "LightGray", + "LightGreen", + "LightGrey", + "LightPink", + "LightPink1", + "LightPink2", + "LightPink3", + "LightPink4", + "LightSalmon", + "LightSalmon1", + "LightSalmon2", + "LightSalmon3", + "LightSalmon4", + "LightSeaGreen", + "LightSkyBlue", + "LightSkyBlue1", + "LightSkyBlue2", + "LightSkyBlue3", + "LightSkyBlue4", + "LightSlateBlue", + "LightSlateGray", + "LightSlateGrey", + "LightSteelBlue", + "LightSteelBlue1", + "LightSteelBlue2", + "LightSteelBlue3", + "LightSteelBlue4", + "LightYellow", + "LightYellow1", + "LightYellow2", + "LightYellow3", + "LightYellow4", + "Lime", + "LimeGreen", + "Linen", + "Magenta", + "Magenta1", + "Magenta2", + "Magenta3", + "Magenta4", + "Maroon", + "Maroon1", + "Maroon2", + "Maroon3", + "Maroon4", + "MediumAquamarine", + "MediumBlue", + "MediumOrchid", + "MediumOrchid1", + "MediumOrchid2", + "MediumOrchid3", + "MediumOrchid4", + "MediumPurple", + "MediumPurple1", + "MediumPurple2", + "MediumPurple3", + "MediumPurple4", + "MediumSeaGreen", + "MediumSlateBlue", + "MediumSpringGreen", + "MediumTurquoise", + "MediumVioletRed", + "Memory", + "MidnightBlue", + "MintCream", + "MistyRose", + "MistyRose1", + "MistyRose2", + "MistyRose3", + "MistyRose4", + "Moccasin", + "NavajoWhite", + "NavajoWhite1", + "NavajoWhite2", + "NavajoWhite3", + "NavajoWhite4", + "Navy", + "NavyBlue", + "Number", + "OldLace", + "Olive", + "OliveDrab", + "OliveDrab1", + "OliveDrab2", + "OliveDrab3", + "OliveDrab4", + "Orange", + "Orange1", + "Orange2", + "Orange3", + "Orange4", + "OrangeRed", + "OrangeRed1", + "OrangeRed2", + "OrangeRed3", + "OrangeRed4", + "Orchid", + "Orchid1", + "Orchid2", + "Orchid3", + "Orchid4", + "PaleGoldenrod", + "PaleGreen", + "PaleGreen1", + "PaleGreen2", + "PaleGreen3", + "PaleGreen4", + "PaleTurquoise", + "PaleTurquoise1", + "PaleTurquoise2", + "PaleTurquoise3", + "PaleTurquoise4", + "PaleVioletRed", + "PaleVioletRed1", + "PaleVioletRed2", + "PaleVioletRed3", + "PaleVioletRed4", + "PapayaWhip", + "PeachPuff", + "PeachPuff1", + "PeachPuff2", + "PeachPuff3", + "PeachPuff4", + "Percentage", + "Peru", + "Pink", + "Pink1", + "Pink2", + "Pink3", + "Pink4", + "PlotFormatType", + "Plum", + "Plum1", + "Plum2", + "Plum3", + "Plum4", + "PowderBlue", + "Purple", + "Purple1", + "Purple2", + "Purple3", + "Purple4", + "RebeccaPurple", + "Red", + "Red1", + "Red2", + "Red3", + "Red4", + "RosyBrown", + "RosyBrown1", + "RosyBrown2", + "RosyBrown3", + "RosyBrown4", + "RoyalBlue", + "RoyalBlue1", + "RoyalBlue2", + "RoyalBlue3", + "RoyalBlue4", + "SaddleBrown", + "Salmon", + "Salmon1", + "Salmon2", + "Salmon3", + "Salmon4", + "SandyBrown", + "SeaGreen", + "SeaGreen1", + "SeaGreen2", + "SeaGreen3", + "SeaGreen4", + "Seashell", + "Seashell1", + "Seashell2", + "Seashell3", + "Seashell4", + "Sienna", + "Sienna1", + "Sienna2", + "Sienna3", + "Sienna4", + "Silver", + "SkyBlue", + "SkyBlue1", + "SkyBlue2", + "SkyBlue3", + "SkyBlue4", + "SlateBlue", + "SlateBlue1", + "SlateBlue2", + "SlateBlue3", + "SlateBlue4", + "SlateGray", + "SlateGray1", + "SlateGray2", + "SlateGray3", + "SlateGray4", + "SlateGrey", + "Snow", + "Snow1", + "Snow2", + "Snow3", + "Snow4", + "SpringGreen", + "SpringGreen1", + "SpringGreen2", + "SpringGreen3", + "SpringGreen4", + "SteelBlue", + "SteelBlue1", + "SteelBlue2", + "SteelBlue3", + "SteelBlue4", + "Tan", + "Tan1", + "Tan2", + "Tan3", + "Tan4", + "Teal", + "Thistle", + "Thistle1", + "Thistle2", + "Thistle3", + "Thistle4", + "Tomato", + "Tomato1", + "Tomato2", + "Tomato3", + "Tomato4", + "Turquoise", + "Turquoise1", + "Turquoise2", + "Turquoise3", + "Turquoise4", + "Violet", + "VioletRed", + "VioletRed1", + "VioletRed2", + "VioletRed3", + "VioletRed4", + "WebGray", + "WebGreen", + "WebGrey", + "WebMaroon", + "WebPurple", + "Wheat", + "Wheat1", + "Wheat2", + "Wheat3", + "Wheat4", + "White", + "WhiteSmoke", + "X11Gray", + "X11Green", + "X11Grey", + "X11Maroon", + "X11Purple", + "Yellow", + "Yellow1", + "Yellow2", + "Yellow3", + "Yellow4", + "YellowGreen", + "alloc", + "app_info", + "frame_image", + "frame_mark", + "frame_mark_end", + "frame_mark_start", + "free", + "is_enabled", + "message", + "plot", + "program_name", + "thread_name" +] + + +class ColorType(): + """ + Members: + + Snow + + GhostWhite + + WhiteSmoke + + Gainsboro + + FloralWhite + + OldLace + + Linen + + AntiqueWhite + + PapayaWhip + + BlanchedAlmond + + Bisque + + PeachPuff + + NavajoWhite + + Moccasin + + Cornsilk + + Ivory + + LemonChiffon + + Seashell + + Honeydew + + MintCream + + Azure + + AliceBlue + + Lavender + + LavenderBlush + + MistyRose + + White + + Black + + DarkSlateGray + + DarkSlateGrey + + DimGray + + DimGrey + + SlateGray + + SlateGrey + + LightSlateGray + + LightSlateGrey + + Gray + + Grey + + X11Gray + + X11Grey + + WebGray + + WebGrey + + LightGrey + + LightGray + + MidnightBlue + + Navy + + NavyBlue + + CornflowerBlue + + DarkSlateBlue + + SlateBlue + + MediumSlateBlue + + LightSlateBlue + + MediumBlue + + RoyalBlue + + Blue + + DodgerBlue + + DeepSkyBlue + + SkyBlue + + LightSkyBlue + + SteelBlue + + LightSteelBlue + + LightBlue + + PowderBlue + + PaleTurquoise + + DarkTurquoise + + MediumTurquoise + + Turquoise + + Cyan + + Aqua + + LightCyan + + CadetBlue + + MediumAquamarine + + Aquamarine + + DarkGreen + + DarkOliveGreen + + DarkSeaGreen + + SeaGreen + + MediumSeaGreen + + LightSeaGreen + + PaleGreen + + SpringGreen + + LawnGreen + + Green + + Lime + + X11Green + + WebGreen + + Chartreuse + + MediumSpringGreen + + GreenYellow + + LimeGreen + + YellowGreen + + ForestGreen + + OliveDrab + + DarkKhaki + + Khaki + + PaleGoldenrod + + LightGoldenrodYellow + + LightYellow + + Yellow + + Gold + + LightGoldenrod + + Goldenrod + + DarkGoldenrod + + RosyBrown + + IndianRed + + SaddleBrown + + Sienna + + Peru + + Burlywood + + Beige + + Wheat + + SandyBrown + + Tan + + Chocolate + + Firebrick + + Brown + + DarkSalmon + + Salmon + + LightSalmon + + Orange + + DarkOrange + + Coral + + LightCoral + + Tomato + + OrangeRed + + Red + + HotPink + + DeepPink + + Pink + + LightPink + + PaleVioletRed + + Maroon + + X11Maroon + + WebMaroon + + MediumVioletRed + + VioletRed + + Magenta + + Fuchsia + + Violet + + Plum + + Orchid + + MediumOrchid + + DarkOrchid + + DarkViolet + + BlueViolet + + Purple + + X11Purple + + WebPurple + + MediumPurple + + Thistle + + Snow1 + + Snow2 + + Snow3 + + Snow4 + + Seashell1 + + Seashell2 + + Seashell3 + + Seashell4 + + AntiqueWhite1 + + AntiqueWhite2 + + AntiqueWhite3 + + AntiqueWhite4 + + Bisque1 + + Bisque2 + + Bisque3 + + Bisque4 + + PeachPuff1 + + PeachPuff2 + + PeachPuff3 + + PeachPuff4 + + NavajoWhite1 + + NavajoWhite2 + + NavajoWhite3 + + NavajoWhite4 + + LemonChiffon1 + + LemonChiffon2 + + LemonChiffon3 + + LemonChiffon4 + + Cornsilk1 + + Cornsilk2 + + Cornsilk3 + + Cornsilk4 + + Ivory1 + + Ivory2 + + Ivory3 + + Ivory4 + + Honeydew1 + + Honeydew2 + + Honeydew3 + + Honeydew4 + + LavenderBlush1 + + LavenderBlush2 + + LavenderBlush3 + + LavenderBlush4 + + MistyRose1 + + MistyRose2 + + MistyRose3 + + MistyRose4 + + Azure1 + + Azure2 + + Azure3 + + Azure4 + + SlateBlue1 + + SlateBlue2 + + SlateBlue3 + + SlateBlue4 + + RoyalBlue1 + + RoyalBlue2 + + RoyalBlue3 + + RoyalBlue4 + + Blue1 + + Blue2 + + Blue3 + + Blue4 + + DodgerBlue1 + + DodgerBlue2 + + DodgerBlue3 + + DodgerBlue4 + + SteelBlue1 + + SteelBlue2 + + SteelBlue3 + + SteelBlue4 + + DeepSkyBlue1 + + DeepSkyBlue2 + + DeepSkyBlue3 + + DeepSkyBlue4 + + SkyBlue1 + + SkyBlue2 + + SkyBlue3 + + SkyBlue4 + + LightSkyBlue1 + + LightSkyBlue2 + + LightSkyBlue3 + + LightSkyBlue4 + + SlateGray1 + + SlateGray2 + + SlateGray3 + + SlateGray4 + + LightSteelBlue1 + + LightSteelBlue2 + + LightSteelBlue3 + + LightSteelBlue4 + + LightBlue1 + + LightBlue2 + + LightBlue3 + + LightBlue4 + + LightCyan1 + + LightCyan2 + + LightCyan3 + + LightCyan4 + + PaleTurquoise1 + + PaleTurquoise2 + + PaleTurquoise3 + + PaleTurquoise4 + + CadetBlue1 + + CadetBlue2 + + CadetBlue3 + + CadetBlue4 + + Turquoise1 + + Turquoise2 + + Turquoise3 + + Turquoise4 + + Cyan1 + + Cyan2 + + Cyan3 + + Cyan4 + + DarkSlateGray1 + + DarkSlateGray2 + + DarkSlateGray3 + + DarkSlateGray4 + + Aquamarine1 + + Aquamarine2 + + Aquamarine3 + + Aquamarine4 + + DarkSeaGreen1 + + DarkSeaGreen2 + + DarkSeaGreen3 + + DarkSeaGreen4 + + SeaGreen1 + + SeaGreen2 + + SeaGreen3 + + SeaGreen4 + + PaleGreen1 + + PaleGreen2 + + PaleGreen3 + + PaleGreen4 + + SpringGreen1 + + SpringGreen2 + + SpringGreen3 + + SpringGreen4 + + Green1 + + Green2 + + Green3 + + Green4 + + Chartreuse1 + + Chartreuse2 + + Chartreuse3 + + Chartreuse4 + + OliveDrab1 + + OliveDrab2 + + OliveDrab3 + + OliveDrab4 + + DarkOliveGreen1 + + DarkOliveGreen2 + + DarkOliveGreen3 + + DarkOliveGreen4 + + Khaki1 + + Khaki2 + + Khaki3 + + Khaki4 + + LightGoldenrod1 + + LightGoldenrod2 + + LightGoldenrod3 + + LightGoldenrod4 + + LightYellow1 + + LightYellow2 + + LightYellow3 + + LightYellow4 + + Yellow1 + + Yellow2 + + Yellow3 + + Yellow4 + + Gold1 + + Gold2 + + Gold3 + + Gold4 + + Goldenrod1 + + Goldenrod2 + + Goldenrod3 + + Goldenrod4 + + DarkGoldenrod1 + + DarkGoldenrod2 + + DarkGoldenrod3 + + DarkGoldenrod4 + + RosyBrown1 + + RosyBrown2 + + RosyBrown3 + + RosyBrown4 + + IndianRed1 + + IndianRed2 + + IndianRed3 + + IndianRed4 + + Sienna1 + + Sienna2 + + Sienna3 + + Sienna4 + + Burlywood1 + + Burlywood2 + + Burlywood3 + + Burlywood4 + + Wheat1 + + Wheat2 + + Wheat3 + + Wheat4 + + Tan1 + + Tan2 + + Tan3 + + Tan4 + + Chocolate1 + + Chocolate2 + + Chocolate3 + + Chocolate4 + + Firebrick1 + + Firebrick2 + + Firebrick3 + + Firebrick4 + + Brown1 + + Brown2 + + Brown3 + + Brown4 + + Salmon1 + + Salmon2 + + Salmon3 + + Salmon4 + + LightSalmon1 + + LightSalmon2 + + LightSalmon3 + + LightSalmon4 + + Orange1 + + Orange2 + + Orange3 + + Orange4 + + DarkOrange1 + + DarkOrange2 + + DarkOrange3 + + DarkOrange4 + + Coral1 + + Coral2 + + Coral3 + + Coral4 + + Tomato1 + + Tomato2 + + Tomato3 + + Tomato4 + + OrangeRed1 + + OrangeRed2 + + OrangeRed3 + + OrangeRed4 + + Red1 + + Red2 + + Red3 + + Red4 + + DeepPink1 + + DeepPink2 + + DeepPink3 + + DeepPink4 + + HotPink1 + + HotPink2 + + HotPink3 + + HotPink4 + + Pink1 + + Pink2 + + Pink3 + + Pink4 + + LightPink1 + + LightPink2 + + LightPink3 + + LightPink4 + + PaleVioletRed1 + + PaleVioletRed2 + + PaleVioletRed3 + + PaleVioletRed4 + + Maroon1 + + Maroon2 + + Maroon3 + + Maroon4 + + VioletRed1 + + VioletRed2 + + VioletRed3 + + VioletRed4 + + Magenta1 + + Magenta2 + + Magenta3 + + Magenta4 + + Orchid1 + + Orchid2 + + Orchid3 + + Orchid4 + + Plum1 + + Plum2 + + Plum3 + + Plum4 + + MediumOrchid1 + + MediumOrchid2 + + MediumOrchid3 + + MediumOrchid4 + + DarkOrchid1 + + DarkOrchid2 + + DarkOrchid3 + + DarkOrchid4 + + Purple1 + + Purple2 + + Purple3 + + Purple4 + + MediumPurple1 + + MediumPurple2 + + MediumPurple3 + + MediumPurple4 + + Thistle1 + + Thistle2 + + Thistle3 + + Thistle4 + + Gray0 + + Grey0 + + Gray1 + + Grey1 + + Gray2 + + Grey2 + + Gray3 + + Grey3 + + Gray4 + + Grey4 + + Gray5 + + Grey5 + + Gray6 + + Grey6 + + Gray7 + + Grey7 + + Gray8 + + Grey8 + + Gray9 + + Grey9 + + Gray10 + + Grey10 + + Gray11 + + Grey11 + + Gray12 + + Grey12 + + Gray13 + + Grey13 + + Gray14 + + Grey14 + + Gray15 + + Grey15 + + Gray16 + + Grey16 + + Gray17 + + Grey17 + + Gray18 + + Grey18 + + Gray19 + + Grey19 + + Gray20 + + Grey20 + + Gray21 + + Grey21 + + Gray22 + + Grey22 + + Gray23 + + Grey23 + + Gray24 + + Grey24 + + Gray25 + + Grey25 + + Gray26 + + Grey26 + + Gray27 + + Grey27 + + Gray28 + + Grey28 + + Gray29 + + Grey29 + + Gray30 + + Grey30 + + Gray31 + + Grey31 + + Gray32 + + Grey32 + + Gray33 + + Grey33 + + Gray34 + + Grey34 + + Gray35 + + Grey35 + + Gray36 + + Grey36 + + Gray37 + + Grey37 + + Gray38 + + Grey38 + + Gray39 + + Grey39 + + Gray40 + + Grey40 + + Gray41 + + Grey41 + + Gray42 + + Grey42 + + Gray43 + + Grey43 + + Gray44 + + Grey44 + + Gray45 + + Grey45 + + Gray46 + + Grey46 + + Gray47 + + Grey47 + + Gray48 + + Grey48 + + Gray49 + + Grey49 + + Gray50 + + Grey50 + + Gray51 + + Grey51 + + Gray52 + + Grey52 + + Gray53 + + Grey53 + + Gray54 + + Grey54 + + Gray55 + + Grey55 + + Gray56 + + Grey56 + + Gray57 + + Grey57 + + Gray58 + + Grey58 + + Gray59 + + Grey59 + + Gray60 + + Grey60 + + Gray61 + + Grey61 + + Gray62 + + Grey62 + + Gray63 + + Grey63 + + Gray64 + + Grey64 + + Gray65 + + Grey65 + + Gray66 + + Grey66 + + Gray67 + + Grey67 + + Gray68 + + Grey68 + + Gray69 + + Grey69 + + Gray70 + + Grey70 + + Gray71 + + Grey71 + + Gray72 + + Grey72 + + Gray73 + + Grey73 + + Gray74 + + Grey74 + + Gray75 + + Grey75 + + Gray76 + + Grey76 + + Gray77 + + Grey77 + + Gray78 + + Grey78 + + Gray79 + + Grey79 + + Gray80 + + Grey80 + + Gray81 + + Grey81 + + Gray82 + + Grey82 + + Gray83 + + Grey83 + + Gray84 + + Grey84 + + Gray85 + + Grey85 + + Gray86 + + Grey86 + + Gray87 + + Grey87 + + Gray88 + + Grey88 + + Gray89 + + Grey89 + + Gray90 + + Grey90 + + Gray91 + + Grey91 + + Gray92 + + Grey92 + + Gray93 + + Grey93 + + Gray94 + + Grey94 + + Gray95 + + Grey95 + + Gray96 + + Grey96 + + Gray97 + + Grey97 + + Gray98 + + Grey98 + + Gray99 + + Grey99 + + Gray100 + + Grey100 + + DarkGrey + + DarkGray + + DarkBlue + + DarkCyan + + DarkMagenta + + DarkRed + + LightGreen + + Crimson + + Indigo + + Olive + + RebeccaPurple + + Silver + + Teal + """ + def __eq__(self, other: object) -> bool: ... + def __getstate__(self) -> int: ... + def __hash__(self) -> int: ... + def __index__(self) -> int: ... + def __init__(self, value: int) -> None: ... + def __int__(self) -> int: ... + def __ne__(self, other: object) -> bool: ... + def __repr__(self) -> str: ... + def __setstate__(self, state: int) -> None: ... + @property + def name(self) -> str: + """ + :type: str + """ + @property + def value(self) -> int: + """ + :type: int + """ + AliceBlue: TracyClientBindings.ColorType # value = + AntiqueWhite: TracyClientBindings.ColorType # value = + AntiqueWhite1: TracyClientBindings.ColorType # value = + AntiqueWhite2: TracyClientBindings.ColorType # value = + AntiqueWhite3: TracyClientBindings.ColorType # value = + AntiqueWhite4: TracyClientBindings.ColorType # value = + Aqua: TracyClientBindings.ColorType # value = + Aquamarine: TracyClientBindings.ColorType # value = + Aquamarine1: TracyClientBindings.ColorType # value = + Aquamarine2: TracyClientBindings.ColorType # value = + Aquamarine3: TracyClientBindings.ColorType # value = + Aquamarine4: TracyClientBindings.ColorType # value = + Azure: TracyClientBindings.ColorType # value = + Azure1: TracyClientBindings.ColorType # value = + Azure2: TracyClientBindings.ColorType # value = + Azure3: TracyClientBindings.ColorType # value = + Azure4: TracyClientBindings.ColorType # value = + Beige: TracyClientBindings.ColorType # value = + Bisque: TracyClientBindings.ColorType # value = + Bisque1: TracyClientBindings.ColorType # value = + Bisque2: TracyClientBindings.ColorType # value = + Bisque3: TracyClientBindings.ColorType # value = + Bisque4: TracyClientBindings.ColorType # value = + Black: TracyClientBindings.ColorType # value = + BlanchedAlmond: TracyClientBindings.ColorType # value = + Blue: TracyClientBindings.ColorType # value = + Blue1: TracyClientBindings.ColorType # value = + Blue2: TracyClientBindings.ColorType # value = + Blue3: TracyClientBindings.ColorType # value = + Blue4: TracyClientBindings.ColorType # value = + BlueViolet: TracyClientBindings.ColorType # value = + Brown: TracyClientBindings.ColorType # value = + Brown1: TracyClientBindings.ColorType # value = + Brown2: TracyClientBindings.ColorType # value = + Brown3: TracyClientBindings.ColorType # value = + Brown4: TracyClientBindings.ColorType # value = + Burlywood: TracyClientBindings.ColorType # value = + Burlywood1: TracyClientBindings.ColorType # value = + Burlywood2: TracyClientBindings.ColorType # value = + Burlywood3: TracyClientBindings.ColorType # value = + Burlywood4: TracyClientBindings.ColorType # value = + CadetBlue: TracyClientBindings.ColorType # value = + CadetBlue1: TracyClientBindings.ColorType # value = + CadetBlue2: TracyClientBindings.ColorType # value = + CadetBlue3: TracyClientBindings.ColorType # value = + CadetBlue4: TracyClientBindings.ColorType # value = + Chartreuse: TracyClientBindings.ColorType # value = + Chartreuse1: TracyClientBindings.ColorType # value = + Chartreuse2: TracyClientBindings.ColorType # value = + Chartreuse3: TracyClientBindings.ColorType # value = + Chartreuse4: TracyClientBindings.ColorType # value = + Chocolate: TracyClientBindings.ColorType # value = + Chocolate1: TracyClientBindings.ColorType # value = + Chocolate2: TracyClientBindings.ColorType # value = + Chocolate3: TracyClientBindings.ColorType # value = + Chocolate4: TracyClientBindings.ColorType # value = + Coral: TracyClientBindings.ColorType # value = + Coral1: TracyClientBindings.ColorType # value = + Coral2: TracyClientBindings.ColorType # value = + Coral3: TracyClientBindings.ColorType # value = + Coral4: TracyClientBindings.ColorType # value = + CornflowerBlue: TracyClientBindings.ColorType # value = + Cornsilk: TracyClientBindings.ColorType # value = + Cornsilk1: TracyClientBindings.ColorType # value = + Cornsilk2: TracyClientBindings.ColorType # value = + Cornsilk3: TracyClientBindings.ColorType # value = + Cornsilk4: TracyClientBindings.ColorType # value = + Crimson: TracyClientBindings.ColorType # value = + Cyan: TracyClientBindings.ColorType # value = + Cyan1: TracyClientBindings.ColorType # value = + Cyan2: TracyClientBindings.ColorType # value = + Cyan3: TracyClientBindings.ColorType # value = + Cyan4: TracyClientBindings.ColorType # value = + DarkBlue: TracyClientBindings.ColorType # value = + DarkCyan: TracyClientBindings.ColorType # value = + DarkGoldenrod: TracyClientBindings.ColorType # value = + DarkGoldenrod1: TracyClientBindings.ColorType # value = + DarkGoldenrod2: TracyClientBindings.ColorType # value = + DarkGoldenrod3: TracyClientBindings.ColorType # value = + DarkGoldenrod4: TracyClientBindings.ColorType # value = + DarkGray: TracyClientBindings.ColorType # value = + DarkGreen: TracyClientBindings.ColorType # value = + DarkGrey: TracyClientBindings.ColorType # value = + DarkKhaki: TracyClientBindings.ColorType # value = + DarkMagenta: TracyClientBindings.ColorType # value = + DarkOliveGreen: TracyClientBindings.ColorType # value = + DarkOliveGreen1: TracyClientBindings.ColorType # value = + DarkOliveGreen2: TracyClientBindings.ColorType # value = + DarkOliveGreen3: TracyClientBindings.ColorType # value = + DarkOliveGreen4: TracyClientBindings.ColorType # value = + DarkOrange: TracyClientBindings.ColorType # value = + DarkOrange1: TracyClientBindings.ColorType # value = + DarkOrange2: TracyClientBindings.ColorType # value = + DarkOrange3: TracyClientBindings.ColorType # value = + DarkOrange4: TracyClientBindings.ColorType # value = + DarkOrchid: TracyClientBindings.ColorType # value = + DarkOrchid1: TracyClientBindings.ColorType # value = + DarkOrchid2: TracyClientBindings.ColorType # value = + DarkOrchid3: TracyClientBindings.ColorType # value = + DarkOrchid4: TracyClientBindings.ColorType # value = + DarkRed: TracyClientBindings.ColorType # value = + DarkSalmon: TracyClientBindings.ColorType # value = + DarkSeaGreen: TracyClientBindings.ColorType # value = + DarkSeaGreen1: TracyClientBindings.ColorType # value = + DarkSeaGreen2: TracyClientBindings.ColorType # value = + DarkSeaGreen3: TracyClientBindings.ColorType # value = + DarkSeaGreen4: TracyClientBindings.ColorType # value = + DarkSlateBlue: TracyClientBindings.ColorType # value = + DarkSlateGray: TracyClientBindings.ColorType # value = + DarkSlateGray1: TracyClientBindings.ColorType # value = + DarkSlateGray2: TracyClientBindings.ColorType # value = + DarkSlateGray3: TracyClientBindings.ColorType # value = + DarkSlateGray4: TracyClientBindings.ColorType # value = + DarkSlateGrey: TracyClientBindings.ColorType # value = + DarkTurquoise: TracyClientBindings.ColorType # value = + DarkViolet: TracyClientBindings.ColorType # value = + DeepPink: TracyClientBindings.ColorType # value = + DeepPink1: TracyClientBindings.ColorType # value = + DeepPink2: TracyClientBindings.ColorType # value = + DeepPink3: TracyClientBindings.ColorType # value = + DeepPink4: TracyClientBindings.ColorType # value = + DeepSkyBlue: TracyClientBindings.ColorType # value = + DeepSkyBlue1: TracyClientBindings.ColorType # value = + DeepSkyBlue2: TracyClientBindings.ColorType # value = + DeepSkyBlue3: TracyClientBindings.ColorType # value = + DeepSkyBlue4: TracyClientBindings.ColorType # value = + DimGray: TracyClientBindings.ColorType # value = + DimGrey: TracyClientBindings.ColorType # value = + DodgerBlue: TracyClientBindings.ColorType # value = + DodgerBlue1: TracyClientBindings.ColorType # value = + DodgerBlue2: TracyClientBindings.ColorType # value = + DodgerBlue3: TracyClientBindings.ColorType # value = + DodgerBlue4: TracyClientBindings.ColorType # value = + Firebrick: TracyClientBindings.ColorType # value = + Firebrick1: TracyClientBindings.ColorType # value = + Firebrick2: TracyClientBindings.ColorType # value = + Firebrick3: TracyClientBindings.ColorType # value = + Firebrick4: TracyClientBindings.ColorType # value = + FloralWhite: TracyClientBindings.ColorType # value = + ForestGreen: TracyClientBindings.ColorType # value = + Fuchsia: TracyClientBindings.ColorType # value = + Gainsboro: TracyClientBindings.ColorType # value = + GhostWhite: TracyClientBindings.ColorType # value = + Gold: TracyClientBindings.ColorType # value = + Gold1: TracyClientBindings.ColorType # value = + Gold2: TracyClientBindings.ColorType # value = + Gold3: TracyClientBindings.ColorType # value = + Gold4: TracyClientBindings.ColorType # value = + Goldenrod: TracyClientBindings.ColorType # value = + Goldenrod1: TracyClientBindings.ColorType # value = + Goldenrod2: TracyClientBindings.ColorType # value = + Goldenrod3: TracyClientBindings.ColorType # value = + Goldenrod4: TracyClientBindings.ColorType # value = + Gray: TracyClientBindings.ColorType # value = + Gray0: TracyClientBindings.ColorType # value = + Gray1: TracyClientBindings.ColorType # value = + Gray10: TracyClientBindings.ColorType # value = + Gray100: TracyClientBindings.ColorType # value = + Gray11: TracyClientBindings.ColorType # value = + Gray12: TracyClientBindings.ColorType # value = + Gray13: TracyClientBindings.ColorType # value = + Gray14: TracyClientBindings.ColorType # value = + Gray15: TracyClientBindings.ColorType # value = + Gray16: TracyClientBindings.ColorType # value = + Gray17: TracyClientBindings.ColorType # value = + Gray18: TracyClientBindings.ColorType # value = + Gray19: TracyClientBindings.ColorType # value = + Gray2: TracyClientBindings.ColorType # value = + Gray20: TracyClientBindings.ColorType # value = + Gray21: TracyClientBindings.ColorType # value = + Gray22: TracyClientBindings.ColorType # value = + Gray23: TracyClientBindings.ColorType # value = + Gray24: TracyClientBindings.ColorType # value = + Gray25: TracyClientBindings.ColorType # value = + Gray26: TracyClientBindings.ColorType # value = + Gray27: TracyClientBindings.ColorType # value = + Gray28: TracyClientBindings.ColorType # value = + Gray29: TracyClientBindings.ColorType # value = + Gray3: TracyClientBindings.ColorType # value = + Gray30: TracyClientBindings.ColorType # value = + Gray31: TracyClientBindings.ColorType # value = + Gray32: TracyClientBindings.ColorType # value = + Gray33: TracyClientBindings.ColorType # value = + Gray34: TracyClientBindings.ColorType # value = + Gray35: TracyClientBindings.ColorType # value = + Gray36: TracyClientBindings.ColorType # value = + Gray37: TracyClientBindings.ColorType # value = + Gray38: TracyClientBindings.ColorType # value = + Gray39: TracyClientBindings.ColorType # value = + Gray4: TracyClientBindings.ColorType # value = + Gray40: TracyClientBindings.ColorType # value = + Gray41: TracyClientBindings.ColorType # value = + Gray42: TracyClientBindings.ColorType # value = + Gray43: TracyClientBindings.ColorType # value = + Gray44: TracyClientBindings.ColorType # value = + Gray45: TracyClientBindings.ColorType # value = + Gray46: TracyClientBindings.ColorType # value = + Gray47: TracyClientBindings.ColorType # value = + Gray48: TracyClientBindings.ColorType # value = + Gray49: TracyClientBindings.ColorType # value = + Gray5: TracyClientBindings.ColorType # value = + Gray50: TracyClientBindings.ColorType # value = + Gray51: TracyClientBindings.ColorType # value = + Gray52: TracyClientBindings.ColorType # value = + Gray53: TracyClientBindings.ColorType # value = + Gray54: TracyClientBindings.ColorType # value = + Gray55: TracyClientBindings.ColorType # value = + Gray56: TracyClientBindings.ColorType # value = + Gray57: TracyClientBindings.ColorType # value = + Gray58: TracyClientBindings.ColorType # value = + Gray59: TracyClientBindings.ColorType # value = + Gray6: TracyClientBindings.ColorType # value = + Gray60: TracyClientBindings.ColorType # value = + Gray61: TracyClientBindings.ColorType # value = + Gray62: TracyClientBindings.ColorType # value = + Gray63: TracyClientBindings.ColorType # value = + Gray64: TracyClientBindings.ColorType # value = + Gray65: TracyClientBindings.ColorType # value = + Gray66: TracyClientBindings.ColorType # value = + Gray67: TracyClientBindings.ColorType # value = + Gray68: TracyClientBindings.ColorType # value = + Gray69: TracyClientBindings.ColorType # value = + Gray7: TracyClientBindings.ColorType # value = + Gray70: TracyClientBindings.ColorType # value = + Gray71: TracyClientBindings.ColorType # value = + Gray72: TracyClientBindings.ColorType # value = + Gray73: TracyClientBindings.ColorType # value = + Gray74: TracyClientBindings.ColorType # value = + Gray75: TracyClientBindings.ColorType # value = + Gray76: TracyClientBindings.ColorType # value = + Gray77: TracyClientBindings.ColorType # value = + Gray78: TracyClientBindings.ColorType # value = + Gray79: TracyClientBindings.ColorType # value = + Gray8: TracyClientBindings.ColorType # value = + Gray80: TracyClientBindings.ColorType # value = + Gray81: TracyClientBindings.ColorType # value = + Gray82: TracyClientBindings.ColorType # value = + Gray83: TracyClientBindings.ColorType # value = + Gray84: TracyClientBindings.ColorType # value = + Gray85: TracyClientBindings.ColorType # value = + Gray86: TracyClientBindings.ColorType # value = + Gray87: TracyClientBindings.ColorType # value = + Gray88: TracyClientBindings.ColorType # value = + Gray89: TracyClientBindings.ColorType # value = + Gray9: TracyClientBindings.ColorType # value = + Gray90: TracyClientBindings.ColorType # value = + Gray91: TracyClientBindings.ColorType # value = + Gray92: TracyClientBindings.ColorType # value = + Gray93: TracyClientBindings.ColorType # value = + Gray94: TracyClientBindings.ColorType # value = + Gray95: TracyClientBindings.ColorType # value = + Gray96: TracyClientBindings.ColorType # value = + Gray97: TracyClientBindings.ColorType # value = + Gray98: TracyClientBindings.ColorType # value = + Gray99: TracyClientBindings.ColorType # value = + Green: TracyClientBindings.ColorType # value = + Green1: TracyClientBindings.ColorType # value = + Green2: TracyClientBindings.ColorType # value = + Green3: TracyClientBindings.ColorType # value = + Green4: TracyClientBindings.ColorType # value = + GreenYellow: TracyClientBindings.ColorType # value = + Grey: TracyClientBindings.ColorType # value = + Grey0: TracyClientBindings.ColorType # value = + Grey1: TracyClientBindings.ColorType # value = + Grey10: TracyClientBindings.ColorType # value = + Grey100: TracyClientBindings.ColorType # value = + Grey11: TracyClientBindings.ColorType # value = + Grey12: TracyClientBindings.ColorType # value = + Grey13: TracyClientBindings.ColorType # value = + Grey14: TracyClientBindings.ColorType # value = + Grey15: TracyClientBindings.ColorType # value = + Grey16: TracyClientBindings.ColorType # value = + Grey17: TracyClientBindings.ColorType # value = + Grey18: TracyClientBindings.ColorType # value = + Grey19: TracyClientBindings.ColorType # value = + Grey2: TracyClientBindings.ColorType # value = + Grey20: TracyClientBindings.ColorType # value = + Grey21: TracyClientBindings.ColorType # value = + Grey22: TracyClientBindings.ColorType # value = + Grey23: TracyClientBindings.ColorType # value = + Grey24: TracyClientBindings.ColorType # value = + Grey25: TracyClientBindings.ColorType # value = + Grey26: TracyClientBindings.ColorType # value = + Grey27: TracyClientBindings.ColorType # value = + Grey28: TracyClientBindings.ColorType # value = + Grey29: TracyClientBindings.ColorType # value = + Grey3: TracyClientBindings.ColorType # value = + Grey30: TracyClientBindings.ColorType # value = + Grey31: TracyClientBindings.ColorType # value = + Grey32: TracyClientBindings.ColorType # value = + Grey33: TracyClientBindings.ColorType # value = + Grey34: TracyClientBindings.ColorType # value = + Grey35: TracyClientBindings.ColorType # value = + Grey36: TracyClientBindings.ColorType # value = + Grey37: TracyClientBindings.ColorType # value = + Grey38: TracyClientBindings.ColorType # value = + Grey39: TracyClientBindings.ColorType # value = + Grey4: TracyClientBindings.ColorType # value = + Grey40: TracyClientBindings.ColorType # value = + Grey41: TracyClientBindings.ColorType # value = + Grey42: TracyClientBindings.ColorType # value = + Grey43: TracyClientBindings.ColorType # value = + Grey44: TracyClientBindings.ColorType # value = + Grey45: TracyClientBindings.ColorType # value = + Grey46: TracyClientBindings.ColorType # value = + Grey47: TracyClientBindings.ColorType # value = + Grey48: TracyClientBindings.ColorType # value = + Grey49: TracyClientBindings.ColorType # value = + Grey5: TracyClientBindings.ColorType # value = + Grey50: TracyClientBindings.ColorType # value = + Grey51: TracyClientBindings.ColorType # value = + Grey52: TracyClientBindings.ColorType # value = + Grey53: TracyClientBindings.ColorType # value = + Grey54: TracyClientBindings.ColorType # value = + Grey55: TracyClientBindings.ColorType # value = + Grey56: TracyClientBindings.ColorType # value = + Grey57: TracyClientBindings.ColorType # value = + Grey58: TracyClientBindings.ColorType # value = + Grey59: TracyClientBindings.ColorType # value = + Grey6: TracyClientBindings.ColorType # value = + Grey60: TracyClientBindings.ColorType # value = + Grey61: TracyClientBindings.ColorType # value = + Grey62: TracyClientBindings.ColorType # value = + Grey63: TracyClientBindings.ColorType # value = + Grey64: TracyClientBindings.ColorType # value = + Grey65: TracyClientBindings.ColorType # value = + Grey66: TracyClientBindings.ColorType # value = + Grey67: TracyClientBindings.ColorType # value = + Grey68: TracyClientBindings.ColorType # value = + Grey69: TracyClientBindings.ColorType # value = + Grey7: TracyClientBindings.ColorType # value = + Grey70: TracyClientBindings.ColorType # value = + Grey71: TracyClientBindings.ColorType # value = + Grey72: TracyClientBindings.ColorType # value = + Grey73: TracyClientBindings.ColorType # value = + Grey74: TracyClientBindings.ColorType # value = + Grey75: TracyClientBindings.ColorType # value = + Grey76: TracyClientBindings.ColorType # value = + Grey77: TracyClientBindings.ColorType # value = + Grey78: TracyClientBindings.ColorType # value = + Grey79: TracyClientBindings.ColorType # value = + Grey8: TracyClientBindings.ColorType # value = + Grey80: TracyClientBindings.ColorType # value = + Grey81: TracyClientBindings.ColorType # value = + Grey82: TracyClientBindings.ColorType # value = + Grey83: TracyClientBindings.ColorType # value = + Grey84: TracyClientBindings.ColorType # value = + Grey85: TracyClientBindings.ColorType # value = + Grey86: TracyClientBindings.ColorType # value = + Grey87: TracyClientBindings.ColorType # value = + Grey88: TracyClientBindings.ColorType # value = + Grey89: TracyClientBindings.ColorType # value = + Grey9: TracyClientBindings.ColorType # value = + Grey90: TracyClientBindings.ColorType # value = + Grey91: TracyClientBindings.ColorType # value = + Grey92: TracyClientBindings.ColorType # value = + Grey93: TracyClientBindings.ColorType # value = + Grey94: TracyClientBindings.ColorType # value = + Grey95: TracyClientBindings.ColorType # value = + Grey96: TracyClientBindings.ColorType # value = + Grey97: TracyClientBindings.ColorType # value = + Grey98: TracyClientBindings.ColorType # value = + Grey99: TracyClientBindings.ColorType # value = + Honeydew: TracyClientBindings.ColorType # value = + Honeydew1: TracyClientBindings.ColorType # value = + Honeydew2: TracyClientBindings.ColorType # value = + Honeydew3: TracyClientBindings.ColorType # value = + Honeydew4: TracyClientBindings.ColorType # value = + HotPink: TracyClientBindings.ColorType # value = + HotPink1: TracyClientBindings.ColorType # value = + HotPink2: TracyClientBindings.ColorType # value = + HotPink3: TracyClientBindings.ColorType # value = + HotPink4: TracyClientBindings.ColorType # value = + IndianRed: TracyClientBindings.ColorType # value = + IndianRed1: TracyClientBindings.ColorType # value = + IndianRed2: TracyClientBindings.ColorType # value = + IndianRed3: TracyClientBindings.ColorType # value = + IndianRed4: TracyClientBindings.ColorType # value = + Indigo: TracyClientBindings.ColorType # value = + Ivory: TracyClientBindings.ColorType # value = + Ivory1: TracyClientBindings.ColorType # value = + Ivory2: TracyClientBindings.ColorType # value = + Ivory3: TracyClientBindings.ColorType # value = + Ivory4: TracyClientBindings.ColorType # value = + Khaki: TracyClientBindings.ColorType # value = + Khaki1: TracyClientBindings.ColorType # value = + Khaki2: TracyClientBindings.ColorType # value = + Khaki3: TracyClientBindings.ColorType # value = + Khaki4: TracyClientBindings.ColorType # value = + Lavender: TracyClientBindings.ColorType # value = + LavenderBlush: TracyClientBindings.ColorType # value = + LavenderBlush1: TracyClientBindings.ColorType # value = + LavenderBlush2: TracyClientBindings.ColorType # value = + LavenderBlush3: TracyClientBindings.ColorType # value = + LavenderBlush4: TracyClientBindings.ColorType # value = + LawnGreen: TracyClientBindings.ColorType # value = + LemonChiffon: TracyClientBindings.ColorType # value = + LemonChiffon1: TracyClientBindings.ColorType # value = + LemonChiffon2: TracyClientBindings.ColorType # value = + LemonChiffon3: TracyClientBindings.ColorType # value = + LemonChiffon4: TracyClientBindings.ColorType # value = + LightBlue: TracyClientBindings.ColorType # value = + LightBlue1: TracyClientBindings.ColorType # value = + LightBlue2: TracyClientBindings.ColorType # value = + LightBlue3: TracyClientBindings.ColorType # value = + LightBlue4: TracyClientBindings.ColorType # value = + LightCoral: TracyClientBindings.ColorType # value = + LightCyan: TracyClientBindings.ColorType # value = + LightCyan1: TracyClientBindings.ColorType # value = + LightCyan2: TracyClientBindings.ColorType # value = + LightCyan3: TracyClientBindings.ColorType # value = + LightCyan4: TracyClientBindings.ColorType # value = + LightGoldenrod: TracyClientBindings.ColorType # value = + LightGoldenrod1: TracyClientBindings.ColorType # value = + LightGoldenrod2: TracyClientBindings.ColorType # value = + LightGoldenrod3: TracyClientBindings.ColorType # value = + LightGoldenrod4: TracyClientBindings.ColorType # value = + LightGoldenrodYellow: TracyClientBindings.ColorType # value = + LightGray: TracyClientBindings.ColorType # value = + LightGreen: TracyClientBindings.ColorType # value = + LightGrey: TracyClientBindings.ColorType # value = + LightPink: TracyClientBindings.ColorType # value = + LightPink1: TracyClientBindings.ColorType # value = + LightPink2: TracyClientBindings.ColorType # value = + LightPink3: TracyClientBindings.ColorType # value = + LightPink4: TracyClientBindings.ColorType # value = + LightSalmon: TracyClientBindings.ColorType # value = + LightSalmon1: TracyClientBindings.ColorType # value = + LightSalmon2: TracyClientBindings.ColorType # value = + LightSalmon3: TracyClientBindings.ColorType # value = + LightSalmon4: TracyClientBindings.ColorType # value = + LightSeaGreen: TracyClientBindings.ColorType # value = + LightSkyBlue: TracyClientBindings.ColorType # value = + LightSkyBlue1: TracyClientBindings.ColorType # value = + LightSkyBlue2: TracyClientBindings.ColorType # value = + LightSkyBlue3: TracyClientBindings.ColorType # value = + LightSkyBlue4: TracyClientBindings.ColorType # value = + LightSlateBlue: TracyClientBindings.ColorType # value = + LightSlateGray: TracyClientBindings.ColorType # value = + LightSlateGrey: TracyClientBindings.ColorType # value = + LightSteelBlue: TracyClientBindings.ColorType # value = + LightSteelBlue1: TracyClientBindings.ColorType # value = + LightSteelBlue2: TracyClientBindings.ColorType # value = + LightSteelBlue3: TracyClientBindings.ColorType # value = + LightSteelBlue4: TracyClientBindings.ColorType # value = + LightYellow: TracyClientBindings.ColorType # value = + LightYellow1: TracyClientBindings.ColorType # value = + LightYellow2: TracyClientBindings.ColorType # value = + LightYellow3: TracyClientBindings.ColorType # value = + LightYellow4: TracyClientBindings.ColorType # value = + Lime: TracyClientBindings.ColorType # value = + LimeGreen: TracyClientBindings.ColorType # value = + Linen: TracyClientBindings.ColorType # value = + Magenta: TracyClientBindings.ColorType # value = + Magenta1: TracyClientBindings.ColorType # value = + Magenta2: TracyClientBindings.ColorType # value = + Magenta3: TracyClientBindings.ColorType # value = + Magenta4: TracyClientBindings.ColorType # value = + Maroon: TracyClientBindings.ColorType # value = + Maroon1: TracyClientBindings.ColorType # value = + Maroon2: TracyClientBindings.ColorType # value = + Maroon3: TracyClientBindings.ColorType # value = + Maroon4: TracyClientBindings.ColorType # value = + MediumAquamarine: TracyClientBindings.ColorType # value = + MediumBlue: TracyClientBindings.ColorType # value = + MediumOrchid: TracyClientBindings.ColorType # value = + MediumOrchid1: TracyClientBindings.ColorType # value = + MediumOrchid2: TracyClientBindings.ColorType # value = + MediumOrchid3: TracyClientBindings.ColorType # value = + MediumOrchid4: TracyClientBindings.ColorType # value = + MediumPurple: TracyClientBindings.ColorType # value = + MediumPurple1: TracyClientBindings.ColorType # value = + MediumPurple2: TracyClientBindings.ColorType # value = + MediumPurple3: TracyClientBindings.ColorType # value = + MediumPurple4: TracyClientBindings.ColorType # value = + MediumSeaGreen: TracyClientBindings.ColorType # value = + MediumSlateBlue: TracyClientBindings.ColorType # value = + MediumSpringGreen: TracyClientBindings.ColorType # value = + MediumTurquoise: TracyClientBindings.ColorType # value = + MediumVioletRed: TracyClientBindings.ColorType # value = + MidnightBlue: TracyClientBindings.ColorType # value = + MintCream: TracyClientBindings.ColorType # value = + MistyRose: TracyClientBindings.ColorType # value = + MistyRose1: TracyClientBindings.ColorType # value = + MistyRose2: TracyClientBindings.ColorType # value = + MistyRose3: TracyClientBindings.ColorType # value = + MistyRose4: TracyClientBindings.ColorType # value = + Moccasin: TracyClientBindings.ColorType # value = + NavajoWhite: TracyClientBindings.ColorType # value = + NavajoWhite1: TracyClientBindings.ColorType # value = + NavajoWhite2: TracyClientBindings.ColorType # value = + NavajoWhite3: TracyClientBindings.ColorType # value = + NavajoWhite4: TracyClientBindings.ColorType # value = + Navy: TracyClientBindings.ColorType # value = + NavyBlue: TracyClientBindings.ColorType # value = + OldLace: TracyClientBindings.ColorType # value = + Olive: TracyClientBindings.ColorType # value = + OliveDrab: TracyClientBindings.ColorType # value = + OliveDrab1: TracyClientBindings.ColorType # value = + OliveDrab2: TracyClientBindings.ColorType # value = + OliveDrab3: TracyClientBindings.ColorType # value = + OliveDrab4: TracyClientBindings.ColorType # value = + Orange: TracyClientBindings.ColorType # value = + Orange1: TracyClientBindings.ColorType # value = + Orange2: TracyClientBindings.ColorType # value = + Orange3: TracyClientBindings.ColorType # value = + Orange4: TracyClientBindings.ColorType # value = + OrangeRed: TracyClientBindings.ColorType # value = + OrangeRed1: TracyClientBindings.ColorType # value = + OrangeRed2: TracyClientBindings.ColorType # value = + OrangeRed3: TracyClientBindings.ColorType # value = + OrangeRed4: TracyClientBindings.ColorType # value = + Orchid: TracyClientBindings.ColorType # value = + Orchid1: TracyClientBindings.ColorType # value = + Orchid2: TracyClientBindings.ColorType # value = + Orchid3: TracyClientBindings.ColorType # value = + Orchid4: TracyClientBindings.ColorType # value = + PaleGoldenrod: TracyClientBindings.ColorType # value = + PaleGreen: TracyClientBindings.ColorType # value = + PaleGreen1: TracyClientBindings.ColorType # value = + PaleGreen2: TracyClientBindings.ColorType # value = + PaleGreen3: TracyClientBindings.ColorType # value = + PaleGreen4: TracyClientBindings.ColorType # value = + PaleTurquoise: TracyClientBindings.ColorType # value = + PaleTurquoise1: TracyClientBindings.ColorType # value = + PaleTurquoise2: TracyClientBindings.ColorType # value = + PaleTurquoise3: TracyClientBindings.ColorType # value = + PaleTurquoise4: TracyClientBindings.ColorType # value = + PaleVioletRed: TracyClientBindings.ColorType # value = + PaleVioletRed1: TracyClientBindings.ColorType # value = + PaleVioletRed2: TracyClientBindings.ColorType # value = + PaleVioletRed3: TracyClientBindings.ColorType # value = + PaleVioletRed4: TracyClientBindings.ColorType # value = + PapayaWhip: TracyClientBindings.ColorType # value = + PeachPuff: TracyClientBindings.ColorType # value = + PeachPuff1: TracyClientBindings.ColorType # value = + PeachPuff2: TracyClientBindings.ColorType # value = + PeachPuff3: TracyClientBindings.ColorType # value = + PeachPuff4: TracyClientBindings.ColorType # value = + Peru: TracyClientBindings.ColorType # value = + Pink: TracyClientBindings.ColorType # value = + Pink1: TracyClientBindings.ColorType # value = + Pink2: TracyClientBindings.ColorType # value = + Pink3: TracyClientBindings.ColorType # value = + Pink4: TracyClientBindings.ColorType # value = + Plum: TracyClientBindings.ColorType # value = + Plum1: TracyClientBindings.ColorType # value = + Plum2: TracyClientBindings.ColorType # value = + Plum3: TracyClientBindings.ColorType # value = + Plum4: TracyClientBindings.ColorType # value = + PowderBlue: TracyClientBindings.ColorType # value = + Purple: TracyClientBindings.ColorType # value = + Purple1: TracyClientBindings.ColorType # value = + Purple2: TracyClientBindings.ColorType # value = + Purple3: TracyClientBindings.ColorType # value = + Purple4: TracyClientBindings.ColorType # value = + RebeccaPurple: TracyClientBindings.ColorType # value = + Red: TracyClientBindings.ColorType # value = + Red1: TracyClientBindings.ColorType # value = + Red2: TracyClientBindings.ColorType # value = + Red3: TracyClientBindings.ColorType # value = + Red4: TracyClientBindings.ColorType # value = + RosyBrown: TracyClientBindings.ColorType # value = + RosyBrown1: TracyClientBindings.ColorType # value = + RosyBrown2: TracyClientBindings.ColorType # value = + RosyBrown3: TracyClientBindings.ColorType # value = + RosyBrown4: TracyClientBindings.ColorType # value = + RoyalBlue: TracyClientBindings.ColorType # value = + RoyalBlue1: TracyClientBindings.ColorType # value = + RoyalBlue2: TracyClientBindings.ColorType # value = + RoyalBlue3: TracyClientBindings.ColorType # value = + RoyalBlue4: TracyClientBindings.ColorType # value = + SaddleBrown: TracyClientBindings.ColorType # value = + Salmon: TracyClientBindings.ColorType # value = + Salmon1: TracyClientBindings.ColorType # value = + Salmon2: TracyClientBindings.ColorType # value = + Salmon3: TracyClientBindings.ColorType # value = + Salmon4: TracyClientBindings.ColorType # value = + SandyBrown: TracyClientBindings.ColorType # value = + SeaGreen: TracyClientBindings.ColorType # value = + SeaGreen1: TracyClientBindings.ColorType # value = + SeaGreen2: TracyClientBindings.ColorType # value = + SeaGreen3: TracyClientBindings.ColorType # value = + SeaGreen4: TracyClientBindings.ColorType # value = + Seashell: TracyClientBindings.ColorType # value = + Seashell1: TracyClientBindings.ColorType # value = + Seashell2: TracyClientBindings.ColorType # value = + Seashell3: TracyClientBindings.ColorType # value = + Seashell4: TracyClientBindings.ColorType # value = + Sienna: TracyClientBindings.ColorType # value = + Sienna1: TracyClientBindings.ColorType # value = + Sienna2: TracyClientBindings.ColorType # value = + Sienna3: TracyClientBindings.ColorType # value = + Sienna4: TracyClientBindings.ColorType # value = + Silver: TracyClientBindings.ColorType # value = + SkyBlue: TracyClientBindings.ColorType # value = + SkyBlue1: TracyClientBindings.ColorType # value = + SkyBlue2: TracyClientBindings.ColorType # value = + SkyBlue3: TracyClientBindings.ColorType # value = + SkyBlue4: TracyClientBindings.ColorType # value = + SlateBlue: TracyClientBindings.ColorType # value = + SlateBlue1: TracyClientBindings.ColorType # value = + SlateBlue2: TracyClientBindings.ColorType # value = + SlateBlue3: TracyClientBindings.ColorType # value = + SlateBlue4: TracyClientBindings.ColorType # value = + SlateGray: TracyClientBindings.ColorType # value = + SlateGray1: TracyClientBindings.ColorType # value = + SlateGray2: TracyClientBindings.ColorType # value = + SlateGray3: TracyClientBindings.ColorType # value = + SlateGray4: TracyClientBindings.ColorType # value = + SlateGrey: TracyClientBindings.ColorType # value = + Snow: TracyClientBindings.ColorType # value = + Snow1: TracyClientBindings.ColorType # value = + Snow2: TracyClientBindings.ColorType # value = + Snow3: TracyClientBindings.ColorType # value = + Snow4: TracyClientBindings.ColorType # value = + SpringGreen: TracyClientBindings.ColorType # value = + SpringGreen1: TracyClientBindings.ColorType # value = + SpringGreen2: TracyClientBindings.ColorType # value = + SpringGreen3: TracyClientBindings.ColorType # value = + SpringGreen4: TracyClientBindings.ColorType # value = + SteelBlue: TracyClientBindings.ColorType # value = + SteelBlue1: TracyClientBindings.ColorType # value = + SteelBlue2: TracyClientBindings.ColorType # value = + SteelBlue3: TracyClientBindings.ColorType # value = + SteelBlue4: TracyClientBindings.ColorType # value = + Tan: TracyClientBindings.ColorType # value = + Tan1: TracyClientBindings.ColorType # value = + Tan2: TracyClientBindings.ColorType # value = + Tan3: TracyClientBindings.ColorType # value = + Tan4: TracyClientBindings.ColorType # value = + Teal: TracyClientBindings.ColorType # value = + Thistle: TracyClientBindings.ColorType # value = + Thistle1: TracyClientBindings.ColorType # value = + Thistle2: TracyClientBindings.ColorType # value = + Thistle3: TracyClientBindings.ColorType # value = + Thistle4: TracyClientBindings.ColorType # value = + Tomato: TracyClientBindings.ColorType # value = + Tomato1: TracyClientBindings.ColorType # value = + Tomato2: TracyClientBindings.ColorType # value = + Tomato3: TracyClientBindings.ColorType # value = + Tomato4: TracyClientBindings.ColorType # value = + Turquoise: TracyClientBindings.ColorType # value = + Turquoise1: TracyClientBindings.ColorType # value = + Turquoise2: TracyClientBindings.ColorType # value = + Turquoise3: TracyClientBindings.ColorType # value = + Turquoise4: TracyClientBindings.ColorType # value = + Violet: TracyClientBindings.ColorType # value = + VioletRed: TracyClientBindings.ColorType # value = + VioletRed1: TracyClientBindings.ColorType # value = + VioletRed2: TracyClientBindings.ColorType # value = + VioletRed3: TracyClientBindings.ColorType # value = + VioletRed4: TracyClientBindings.ColorType # value = + WebGray: TracyClientBindings.ColorType # value = + WebGreen: TracyClientBindings.ColorType # value = + WebGrey: TracyClientBindings.ColorType # value = + WebMaroon: TracyClientBindings.ColorType # value = + WebPurple: TracyClientBindings.ColorType # value = + Wheat: TracyClientBindings.ColorType # value = + Wheat1: TracyClientBindings.ColorType # value = + Wheat2: TracyClientBindings.ColorType # value = + Wheat3: TracyClientBindings.ColorType # value = + Wheat4: TracyClientBindings.ColorType # value = + White: TracyClientBindings.ColorType # value = + WhiteSmoke: TracyClientBindings.ColorType # value = + X11Gray: TracyClientBindings.ColorType # value = + X11Green: TracyClientBindings.ColorType # value = + X11Grey: TracyClientBindings.ColorType # value = + X11Maroon: TracyClientBindings.ColorType # value = + X11Purple: TracyClientBindings.ColorType # value = + Yellow: TracyClientBindings.ColorType # value = + Yellow1: TracyClientBindings.ColorType # value = + Yellow2: TracyClientBindings.ColorType # value = + Yellow3: TracyClientBindings.ColorType # value = + Yellow4: TracyClientBindings.ColorType # value = + YellowGreen: TracyClientBindings.ColorType # value = + __members__: dict # value = {'Snow': , 'GhostWhite': , 'WhiteSmoke': , 'Gainsboro': , 'FloralWhite': , 'OldLace': , 'Linen': , 'AntiqueWhite': , 'PapayaWhip': , 'BlanchedAlmond': , 'Bisque': , 'PeachPuff': , 'NavajoWhite': , 'Moccasin': , 'Cornsilk': , 'Ivory': , 'LemonChiffon': , 'Seashell': , 'Honeydew': , 'MintCream': , 'Azure': , 'AliceBlue': , 'Lavender': , 'LavenderBlush': , 'MistyRose': , 'White': , 'Black': , 'DarkSlateGray': , 'DarkSlateGrey': , 'DimGray': , 'DimGrey': , 'SlateGray': , 'SlateGrey': , 'LightSlateGray': , 'LightSlateGrey': , 'Gray': , 'Grey': , 'X11Gray': , 'X11Grey': , 'WebGray': , 'WebGrey': , 'LightGrey': , 'LightGray': , 'MidnightBlue': , 'Navy': , 'NavyBlue': , 'CornflowerBlue': , 'DarkSlateBlue': , 'SlateBlue': , 'MediumSlateBlue': , 'LightSlateBlue': , 'MediumBlue': , 'RoyalBlue': , 'Blue': , 'DodgerBlue': , 'DeepSkyBlue': , 'SkyBlue': , 'LightSkyBlue': , 'SteelBlue': , 'LightSteelBlue': , 'LightBlue': , 'PowderBlue': , 'PaleTurquoise': , 'DarkTurquoise': , 'MediumTurquoise': , 'Turquoise': , 'Cyan': , 'Aqua': , 'LightCyan': , 'CadetBlue': , 'MediumAquamarine': , 'Aquamarine': , 'DarkGreen': , 'DarkOliveGreen': , 'DarkSeaGreen': , 'SeaGreen': , 'MediumSeaGreen': , 'LightSeaGreen': , 'PaleGreen': , 'SpringGreen': , 'LawnGreen': , 'Green': , 'Lime': , 'X11Green': , 'WebGreen': , 'Chartreuse': , 'MediumSpringGreen': , 'GreenYellow': , 'LimeGreen': , 'YellowGreen': , 'ForestGreen': , 'OliveDrab': , 'DarkKhaki': , 'Khaki': , 'PaleGoldenrod': , 'LightGoldenrodYellow': , 'LightYellow': , 'Yellow': , 'Gold': , 'LightGoldenrod': , 'Goldenrod': , 'DarkGoldenrod': , 'RosyBrown': , 'IndianRed': , 'SaddleBrown': , 'Sienna': , 'Peru': , 'Burlywood': , 'Beige': , 'Wheat': , 'SandyBrown': , 'Tan': , 'Chocolate': , 'Firebrick': , 'Brown': , 'DarkSalmon': , 'Salmon': , 'LightSalmon': , 'Orange': , 'DarkOrange': , 'Coral': , 'LightCoral': , 'Tomato': , 'OrangeRed': , 'Red': , 'HotPink': , 'DeepPink': , 'Pink': , 'LightPink': , 'PaleVioletRed': , 'Maroon': , 'X11Maroon': , 'WebMaroon': , 'MediumVioletRed': , 'VioletRed': , 'Magenta': , 'Fuchsia': , 'Violet': , 'Plum': , 'Orchid': , 'MediumOrchid': , 'DarkOrchid': , 'DarkViolet': , 'BlueViolet': , 'Purple': , 'X11Purple': , 'WebPurple': , 'MediumPurple': , 'Thistle': , 'Snow1': , 'Snow2': , 'Snow3': , 'Snow4': , 'Seashell1': , 'Seashell2': , 'Seashell3': , 'Seashell4': , 'AntiqueWhite1': , 'AntiqueWhite2': , 'AntiqueWhite3': , 'AntiqueWhite4': , 'Bisque1': , 'Bisque2': , 'Bisque3': , 'Bisque4': , 'PeachPuff1': , 'PeachPuff2': , 'PeachPuff3': , 'PeachPuff4': , 'NavajoWhite1': , 'NavajoWhite2': , 'NavajoWhite3': , 'NavajoWhite4': , 'LemonChiffon1': , 'LemonChiffon2': , 'LemonChiffon3': , 'LemonChiffon4': , 'Cornsilk1': , 'Cornsilk2': , 'Cornsilk3': , 'Cornsilk4': , 'Ivory1': , 'Ivory2': , 'Ivory3': , 'Ivory4': , 'Honeydew1': , 'Honeydew2': , 'Honeydew3': , 'Honeydew4': , 'LavenderBlush1': , 'LavenderBlush2': , 'LavenderBlush3': , 'LavenderBlush4': , 'MistyRose1': , 'MistyRose2': , 'MistyRose3': , 'MistyRose4': , 'Azure1': , 'Azure2': , 'Azure3': , 'Azure4': , 'SlateBlue1': , 'SlateBlue2': , 'SlateBlue3': , 'SlateBlue4': , 'RoyalBlue1': , 'RoyalBlue2': , 'RoyalBlue3': , 'RoyalBlue4': , 'Blue1': , 'Blue2': , 'Blue3': , 'Blue4': , 'DodgerBlue1': , 'DodgerBlue2': , 'DodgerBlue3': , 'DodgerBlue4': , 'SteelBlue1': , 'SteelBlue2': , 'SteelBlue3': , 'SteelBlue4': , 'DeepSkyBlue1': , 'DeepSkyBlue2': , 'DeepSkyBlue3': , 'DeepSkyBlue4': , 'SkyBlue1': , 'SkyBlue2': , 'SkyBlue3': , 'SkyBlue4': , 'LightSkyBlue1': , 'LightSkyBlue2': , 'LightSkyBlue3': , 'LightSkyBlue4': , 'SlateGray1': , 'SlateGray2': , 'SlateGray3': , 'SlateGray4': , 'LightSteelBlue1': , 'LightSteelBlue2': , 'LightSteelBlue3': , 'LightSteelBlue4': , 'LightBlue1': , 'LightBlue2': , 'LightBlue3': , 'LightBlue4': , 'LightCyan1': , 'LightCyan2': , 'LightCyan3': , 'LightCyan4': , 'PaleTurquoise1': , 'PaleTurquoise2': , 'PaleTurquoise3': , 'PaleTurquoise4': , 'CadetBlue1': , 'CadetBlue2': , 'CadetBlue3': , 'CadetBlue4': , 'Turquoise1': , 'Turquoise2': , 'Turquoise3': , 'Turquoise4': , 'Cyan1': , 'Cyan2': , 'Cyan3': , 'Cyan4': , 'DarkSlateGray1': , 'DarkSlateGray2': , 'DarkSlateGray3': , 'DarkSlateGray4': , 'Aquamarine1': , 'Aquamarine2': , 'Aquamarine3': , 'Aquamarine4': , 'DarkSeaGreen1': , 'DarkSeaGreen2': , 'DarkSeaGreen3': , 'DarkSeaGreen4': , 'SeaGreen1': , 'SeaGreen2': , 'SeaGreen3': , 'SeaGreen4': , 'PaleGreen1': , 'PaleGreen2': , 'PaleGreen3': , 'PaleGreen4': , 'SpringGreen1': , 'SpringGreen2': , 'SpringGreen3': , 'SpringGreen4': , 'Green1': , 'Green2': , 'Green3': , 'Green4': , 'Chartreuse1': , 'Chartreuse2': , 'Chartreuse3': , 'Chartreuse4': , 'OliveDrab1': , 'OliveDrab2': , 'OliveDrab3': , 'OliveDrab4': , 'DarkOliveGreen1': , 'DarkOliveGreen2': , 'DarkOliveGreen3': , 'DarkOliveGreen4': , 'Khaki1': , 'Khaki2': , 'Khaki3': , 'Khaki4': , 'LightGoldenrod1': , 'LightGoldenrod2': , 'LightGoldenrod3': , 'LightGoldenrod4': , 'LightYellow1': , 'LightYellow2': , 'LightYellow3': , 'LightYellow4': , 'Yellow1': , 'Yellow2': , 'Yellow3': , 'Yellow4': , 'Gold1': , 'Gold2': , 'Gold3': , 'Gold4': , 'Goldenrod1': , 'Goldenrod2': , 'Goldenrod3': , 'Goldenrod4': , 'DarkGoldenrod1': , 'DarkGoldenrod2': , 'DarkGoldenrod3': , 'DarkGoldenrod4': , 'RosyBrown1': , 'RosyBrown2': , 'RosyBrown3': , 'RosyBrown4': , 'IndianRed1': , 'IndianRed2': , 'IndianRed3': , 'IndianRed4': , 'Sienna1': , 'Sienna2': , 'Sienna3': , 'Sienna4': , 'Burlywood1': , 'Burlywood2': , 'Burlywood3': , 'Burlywood4': , 'Wheat1': , 'Wheat2': , 'Wheat3': , 'Wheat4': , 'Tan1': , 'Tan2': , 'Tan3': , 'Tan4': , 'Chocolate1': , 'Chocolate2': , 'Chocolate3': , 'Chocolate4': , 'Firebrick1': , 'Firebrick2': , 'Firebrick3': , 'Firebrick4': , 'Brown1': , 'Brown2': , 'Brown3': , 'Brown4': , 'Salmon1': , 'Salmon2': , 'Salmon3': , 'Salmon4': , 'LightSalmon1': , 'LightSalmon2': , 'LightSalmon3': , 'LightSalmon4': , 'Orange1': , 'Orange2': , 'Orange3': , 'Orange4': , 'DarkOrange1': , 'DarkOrange2': , 'DarkOrange3': , 'DarkOrange4': , 'Coral1': , 'Coral2': , 'Coral3': , 'Coral4': , 'Tomato1': , 'Tomato2': , 'Tomato3': , 'Tomato4': , 'OrangeRed1': , 'OrangeRed2': , 'OrangeRed3': , 'OrangeRed4': , 'Red1': , 'Red2': , 'Red3': , 'Red4': , 'DeepPink1': , 'DeepPink2': , 'DeepPink3': , 'DeepPink4': , 'HotPink1': , 'HotPink2': , 'HotPink3': , 'HotPink4': , 'Pink1': , 'Pink2': , 'Pink3': , 'Pink4': , 'LightPink1': , 'LightPink2': , 'LightPink3': , 'LightPink4': , 'PaleVioletRed1': , 'PaleVioletRed2': , 'PaleVioletRed3': , 'PaleVioletRed4': , 'Maroon1': , 'Maroon2': , 'Maroon3': , 'Maroon4': , 'VioletRed1': , 'VioletRed2': , 'VioletRed3': , 'VioletRed4': , 'Magenta1': , 'Magenta2': , 'Magenta3': , 'Magenta4': , 'Orchid1': , 'Orchid2': , 'Orchid3': , 'Orchid4': , 'Plum1': , 'Plum2': , 'Plum3': , 'Plum4': , 'MediumOrchid1': , 'MediumOrchid2': , 'MediumOrchid3': , 'MediumOrchid4': , 'DarkOrchid1': , 'DarkOrchid2': , 'DarkOrchid3': , 'DarkOrchid4': , 'Purple1': , 'Purple2': , 'Purple3': , 'Purple4': , 'MediumPurple1': , 'MediumPurple2': , 'MediumPurple3': , 'MediumPurple4': , 'Thistle1': , 'Thistle2': , 'Thistle3': , 'Thistle4': , 'Gray0': , 'Grey0': , 'Gray1': , 'Grey1': , 'Gray2': , 'Grey2': , 'Gray3': , 'Grey3': , 'Gray4': , 'Grey4': , 'Gray5': , 'Grey5': , 'Gray6': , 'Grey6': , 'Gray7': , 'Grey7': , 'Gray8': , 'Grey8': , 'Gray9': , 'Grey9': , 'Gray10': , 'Grey10': , 'Gray11': , 'Grey11': , 'Gray12': , 'Grey12': , 'Gray13': , 'Grey13': , 'Gray14': , 'Grey14': , 'Gray15': , 'Grey15': , 'Gray16': , 'Grey16': , 'Gray17': , 'Grey17': , 'Gray18': , 'Grey18': , 'Gray19': , 'Grey19': , 'Gray20': , 'Grey20': , 'Gray21': , 'Grey21': , 'Gray22': , 'Grey22': , 'Gray23': , 'Grey23': , 'Gray24': , 'Grey24': , 'Gray25': , 'Grey25': , 'Gray26': , 'Grey26': , 'Gray27': , 'Grey27': , 'Gray28': , 'Grey28': , 'Gray29': , 'Grey29': , 'Gray30': , 'Grey30': , 'Gray31': , 'Grey31': , 'Gray32': , 'Grey32': , 'Gray33': , 'Grey33': , 'Gray34': , 'Grey34': , 'Gray35': , 'Grey35': , 'Gray36': , 'Grey36': , 'Gray37': , 'Grey37': , 'Gray38': , 'Grey38': , 'Gray39': , 'Grey39': , 'Gray40': , 'Grey40': , 'Gray41': , 'Grey41': , 'Gray42': , 'Grey42': , 'Gray43': , 'Grey43': , 'Gray44': , 'Grey44': , 'Gray45': , 'Grey45': , 'Gray46': , 'Grey46': , 'Gray47': , 'Grey47': , 'Gray48': , 'Grey48': , 'Gray49': , 'Grey49': , 'Gray50': , 'Grey50': , 'Gray51': , 'Grey51': , 'Gray52': , 'Grey52': , 'Gray53': , 'Grey53': , 'Gray54': , 'Grey54': , 'Gray55': , 'Grey55': , 'Gray56': , 'Grey56': , 'Gray57': , 'Grey57': , 'Gray58': , 'Grey58': , 'Gray59': , 'Grey59': , 'Gray60': , 'Grey60': , 'Gray61': , 'Grey61': , 'Gray62': , 'Grey62': , 'Gray63': , 'Grey63': , 'Gray64': , 'Grey64': , 'Gray65': , 'Grey65': , 'Gray66': , 'Grey66': , 'Gray67': , 'Grey67': , 'Gray68': , 'Grey68': , 'Gray69': , 'Grey69': , 'Gray70': , 'Grey70': , 'Gray71': , 'Grey71': , 'Gray72': , 'Grey72': , 'Gray73': , 'Grey73': , 'Gray74': , 'Grey74': , 'Gray75': , 'Grey75': , 'Gray76': , 'Grey76': , 'Gray77': , 'Grey77': , 'Gray78': , 'Grey78': , 'Gray79': , 'Grey79': , 'Gray80': , 'Grey80': , 'Gray81': , 'Grey81': , 'Gray82': , 'Grey82': , 'Gray83': , 'Grey83': , 'Gray84': , 'Grey84': , 'Gray85': , 'Grey85': , 'Gray86': , 'Grey86': , 'Gray87': , 'Grey87': , 'Gray88': , 'Grey88': , 'Gray89': , 'Grey89': , 'Gray90': , 'Grey90': , 'Gray91': , 'Grey91': , 'Gray92': , 'Grey92': , 'Gray93': , 'Grey93': , 'Gray94': , 'Grey94': , 'Gray95': , 'Grey95': , 'Gray96': , 'Grey96': , 'Gray97': , 'Grey97': , 'Gray98': , 'Grey98': , 'Gray99': , 'Grey99': , 'Gray100': , 'Grey100': , 'DarkGrey': , 'DarkGray': , 'DarkBlue': , 'DarkCyan': , 'DarkMagenta': , 'DarkRed': , 'LightGreen': , 'Crimson': , 'Indigo': , 'Olive': , 'RebeccaPurple': , 'Silver': , 'Teal': } + pass +class PlotFormatType(): + """ + Members: + + Number + + Memory + + Percentage + """ + def __eq__(self, other: object) -> bool: ... + def __getstate__(self) -> int: ... + def __hash__(self) -> int: ... + def __index__(self) -> int: ... + def __init__(self, value: int) -> None: ... + def __int__(self) -> int: ... + def __ne__(self, other: object) -> bool: ... + def __repr__(self) -> str: ... + def __setstate__(self, state: int) -> None: ... + @property + def name(self) -> str: + """ + :type: str + """ + @property + def value(self) -> int: + """ + :type: int + """ + Memory: TracyClientBindings.PlotFormatType # value = + Number: TracyClientBindings.PlotFormatType # value = + Percentage: TracyClientBindings.PlotFormatType # value = + __members__: dict # value = {'Number': , 'Memory': , 'Percentage': } + pass +class _ScopedZone(): + def __init__(self, name: typing.Optional[str], color: int, depth: typing.Optional[int], active: bool, function: str, file: str, line: int) -> None: ... + def _color(self, color: int) -> None: ... + def enter(self) -> None: ... + def exit(self) -> None: ... + def name(self, name: str) -> bool: ... + @typing.overload + def text(self, text: str) -> bool: ... + @typing.overload + def text(self, text: object) -> bool: ... + @property + def is_active(self) -> bool: + """ + :type: bool + """ + pass +def _plot_config(name: str, type: int, step: bool, fill: bool, color: int) -> typing.Optional[int]: + pass +@typing.overload +def alloc(ptr: int, size: int, name: typing.Optional[str] = None, id: typing.Optional[int] = None, depth: typing.Optional[int] = None) -> typing.Optional[int]: + pass +@typing.overload +def alloc(object: object, size: int, name: typing.Optional[str] = None, id: typing.Optional[int] = None, depth: typing.Optional[int] = None) -> typing.Optional[int]: + pass +def app_info(text: str) -> bool: + pass +def frame_image(data: bytes, width: int, height: int, offset: int = 0, flip: bool = False) -> bool: + pass +def frame_mark() -> None: + pass +def frame_mark_end(name: int) -> bool: + pass +def frame_mark_start(name: str) -> typing.Optional[int]: + pass +@typing.overload +def free(ptr: int, id: typing.Optional[int] = None, depth: typing.Optional[int] = None) -> bool: + pass +@typing.overload +def free(object: object, id: typing.Optional[int] = None, depth: typing.Optional[int] = None) -> bool: + pass +def is_enabled() -> bool: + pass +@typing.overload +def message(message: str) -> bool: + pass +@typing.overload +def message(message: str, color: int) -> bool: + pass +@typing.overload +def plot(id: int, value: float) -> bool: + pass +@typing.overload +def plot(id: int, value: int) -> bool: + pass +def program_name(name: str) -> bool: + pass +def thread_name(name: str) -> None: + pass +AliceBlue: TracyClientBindings.ColorType # value = +AntiqueWhite: TracyClientBindings.ColorType # value = +AntiqueWhite1: TracyClientBindings.ColorType # value = +AntiqueWhite2: TracyClientBindings.ColorType # value = +AntiqueWhite3: TracyClientBindings.ColorType # value = +AntiqueWhite4: TracyClientBindings.ColorType # value = +Aqua: TracyClientBindings.ColorType # value = +Aquamarine: TracyClientBindings.ColorType # value = +Aquamarine1: TracyClientBindings.ColorType # value = +Aquamarine2: TracyClientBindings.ColorType # value = +Aquamarine3: TracyClientBindings.ColorType # value = +Aquamarine4: TracyClientBindings.ColorType # value = +Azure: TracyClientBindings.ColorType # value = +Azure1: TracyClientBindings.ColorType # value = +Azure2: TracyClientBindings.ColorType # value = +Azure3: TracyClientBindings.ColorType # value = +Azure4: TracyClientBindings.ColorType # value = +Beige: TracyClientBindings.ColorType # value = +Bisque: TracyClientBindings.ColorType # value = +Bisque1: TracyClientBindings.ColorType # value = +Bisque2: TracyClientBindings.ColorType # value = +Bisque3: TracyClientBindings.ColorType # value = +Bisque4: TracyClientBindings.ColorType # value = +Black: TracyClientBindings.ColorType # value = +BlanchedAlmond: TracyClientBindings.ColorType # value = +Blue: TracyClientBindings.ColorType # value = +Blue1: TracyClientBindings.ColorType # value = +Blue2: TracyClientBindings.ColorType # value = +Blue3: TracyClientBindings.ColorType # value = +Blue4: TracyClientBindings.ColorType # value = +BlueViolet: TracyClientBindings.ColorType # value = +Brown: TracyClientBindings.ColorType # value = +Brown1: TracyClientBindings.ColorType # value = +Brown2: TracyClientBindings.ColorType # value = +Brown3: TracyClientBindings.ColorType # value = +Brown4: TracyClientBindings.ColorType # value = +Burlywood: TracyClientBindings.ColorType # value = +Burlywood1: TracyClientBindings.ColorType # value = +Burlywood2: TracyClientBindings.ColorType # value = +Burlywood3: TracyClientBindings.ColorType # value = +Burlywood4: TracyClientBindings.ColorType # value = +CadetBlue: TracyClientBindings.ColorType # value = +CadetBlue1: TracyClientBindings.ColorType # value = +CadetBlue2: TracyClientBindings.ColorType # value = +CadetBlue3: TracyClientBindings.ColorType # value = +CadetBlue4: TracyClientBindings.ColorType # value = +Chartreuse: TracyClientBindings.ColorType # value = +Chartreuse1: TracyClientBindings.ColorType # value = +Chartreuse2: TracyClientBindings.ColorType # value = +Chartreuse3: TracyClientBindings.ColorType # value = +Chartreuse4: TracyClientBindings.ColorType # value = +Chocolate: TracyClientBindings.ColorType # value = +Chocolate1: TracyClientBindings.ColorType # value = +Chocolate2: TracyClientBindings.ColorType # value = +Chocolate3: TracyClientBindings.ColorType # value = +Chocolate4: TracyClientBindings.ColorType # value = +Coral: TracyClientBindings.ColorType # value = +Coral1: TracyClientBindings.ColorType # value = +Coral2: TracyClientBindings.ColorType # value = +Coral3: TracyClientBindings.ColorType # value = +Coral4: TracyClientBindings.ColorType # value = +CornflowerBlue: TracyClientBindings.ColorType # value = +Cornsilk: TracyClientBindings.ColorType # value = +Cornsilk1: TracyClientBindings.ColorType # value = +Cornsilk2: TracyClientBindings.ColorType # value = +Cornsilk3: TracyClientBindings.ColorType # value = +Cornsilk4: TracyClientBindings.ColorType # value = +Crimson: TracyClientBindings.ColorType # value = +Cyan: TracyClientBindings.ColorType # value = +Cyan1: TracyClientBindings.ColorType # value = +Cyan2: TracyClientBindings.ColorType # value = +Cyan3: TracyClientBindings.ColorType # value = +Cyan4: TracyClientBindings.ColorType # value = +DarkBlue: TracyClientBindings.ColorType # value = +DarkCyan: TracyClientBindings.ColorType # value = +DarkGoldenrod: TracyClientBindings.ColorType # value = +DarkGoldenrod1: TracyClientBindings.ColorType # value = +DarkGoldenrod2: TracyClientBindings.ColorType # value = +DarkGoldenrod3: TracyClientBindings.ColorType # value = +DarkGoldenrod4: TracyClientBindings.ColorType # value = +DarkGray: TracyClientBindings.ColorType # value = +DarkGreen: TracyClientBindings.ColorType # value = +DarkGrey: TracyClientBindings.ColorType # value = +DarkKhaki: TracyClientBindings.ColorType # value = +DarkMagenta: TracyClientBindings.ColorType # value = +DarkOliveGreen: TracyClientBindings.ColorType # value = +DarkOliveGreen1: TracyClientBindings.ColorType # value = +DarkOliveGreen2: TracyClientBindings.ColorType # value = +DarkOliveGreen3: TracyClientBindings.ColorType # value = +DarkOliveGreen4: TracyClientBindings.ColorType # value = +DarkOrange: TracyClientBindings.ColorType # value = +DarkOrange1: TracyClientBindings.ColorType # value = +DarkOrange2: TracyClientBindings.ColorType # value = +DarkOrange3: TracyClientBindings.ColorType # value = +DarkOrange4: TracyClientBindings.ColorType # value = +DarkOrchid: TracyClientBindings.ColorType # value = +DarkOrchid1: TracyClientBindings.ColorType # value = +DarkOrchid2: TracyClientBindings.ColorType # value = +DarkOrchid3: TracyClientBindings.ColorType # value = +DarkOrchid4: TracyClientBindings.ColorType # value = +DarkRed: TracyClientBindings.ColorType # value = +DarkSalmon: TracyClientBindings.ColorType # value = +DarkSeaGreen: TracyClientBindings.ColorType # value = +DarkSeaGreen1: TracyClientBindings.ColorType # value = +DarkSeaGreen2: TracyClientBindings.ColorType # value = +DarkSeaGreen3: TracyClientBindings.ColorType # value = +DarkSeaGreen4: TracyClientBindings.ColorType # value = +DarkSlateBlue: TracyClientBindings.ColorType # value = +DarkSlateGray: TracyClientBindings.ColorType # value = +DarkSlateGray1: TracyClientBindings.ColorType # value = +DarkSlateGray2: TracyClientBindings.ColorType # value = +DarkSlateGray3: TracyClientBindings.ColorType # value = +DarkSlateGray4: TracyClientBindings.ColorType # value = +DarkSlateGrey: TracyClientBindings.ColorType # value = +DarkTurquoise: TracyClientBindings.ColorType # value = +DarkViolet: TracyClientBindings.ColorType # value = +DeepPink: TracyClientBindings.ColorType # value = +DeepPink1: TracyClientBindings.ColorType # value = +DeepPink2: TracyClientBindings.ColorType # value = +DeepPink3: TracyClientBindings.ColorType # value = +DeepPink4: TracyClientBindings.ColorType # value = +DeepSkyBlue: TracyClientBindings.ColorType # value = +DeepSkyBlue1: TracyClientBindings.ColorType # value = +DeepSkyBlue2: TracyClientBindings.ColorType # value = +DeepSkyBlue3: TracyClientBindings.ColorType # value = +DeepSkyBlue4: TracyClientBindings.ColorType # value = +DimGray: TracyClientBindings.ColorType # value = +DimGrey: TracyClientBindings.ColorType # value = +DodgerBlue: TracyClientBindings.ColorType # value = +DodgerBlue1: TracyClientBindings.ColorType # value = +DodgerBlue2: TracyClientBindings.ColorType # value = +DodgerBlue3: TracyClientBindings.ColorType # value = +DodgerBlue4: TracyClientBindings.ColorType # value = +Firebrick: TracyClientBindings.ColorType # value = +Firebrick1: TracyClientBindings.ColorType # value = +Firebrick2: TracyClientBindings.ColorType # value = +Firebrick3: TracyClientBindings.ColorType # value = +Firebrick4: TracyClientBindings.ColorType # value = +FloralWhite: TracyClientBindings.ColorType # value = +ForestGreen: TracyClientBindings.ColorType # value = +Fuchsia: TracyClientBindings.ColorType # value = +Gainsboro: TracyClientBindings.ColorType # value = +GhostWhite: TracyClientBindings.ColorType # value = +Gold: TracyClientBindings.ColorType # value = +Gold1: TracyClientBindings.ColorType # value = +Gold2: TracyClientBindings.ColorType # value = +Gold3: TracyClientBindings.ColorType # value = +Gold4: TracyClientBindings.ColorType # value = +Goldenrod: TracyClientBindings.ColorType # value = +Goldenrod1: TracyClientBindings.ColorType # value = +Goldenrod2: TracyClientBindings.ColorType # value = +Goldenrod3: TracyClientBindings.ColorType # value = +Goldenrod4: TracyClientBindings.ColorType # value = +Gray: TracyClientBindings.ColorType # value = +Gray0: TracyClientBindings.ColorType # value = +Gray1: TracyClientBindings.ColorType # value = +Gray10: TracyClientBindings.ColorType # value = +Gray100: TracyClientBindings.ColorType # value = +Gray11: TracyClientBindings.ColorType # value = +Gray12: TracyClientBindings.ColorType # value = +Gray13: TracyClientBindings.ColorType # value = +Gray14: TracyClientBindings.ColorType # value = +Gray15: TracyClientBindings.ColorType # value = +Gray16: TracyClientBindings.ColorType # value = +Gray17: TracyClientBindings.ColorType # value = +Gray18: TracyClientBindings.ColorType # value = +Gray19: TracyClientBindings.ColorType # value = +Gray2: TracyClientBindings.ColorType # value = +Gray20: TracyClientBindings.ColorType # value = +Gray21: TracyClientBindings.ColorType # value = +Gray22: TracyClientBindings.ColorType # value = +Gray23: TracyClientBindings.ColorType # value = +Gray24: TracyClientBindings.ColorType # value = +Gray25: TracyClientBindings.ColorType # value = +Gray26: TracyClientBindings.ColorType # value = +Gray27: TracyClientBindings.ColorType # value = +Gray28: TracyClientBindings.ColorType # value = +Gray29: TracyClientBindings.ColorType # value = +Gray3: TracyClientBindings.ColorType # value = +Gray30: TracyClientBindings.ColorType # value = +Gray31: TracyClientBindings.ColorType # value = +Gray32: TracyClientBindings.ColorType # value = +Gray33: TracyClientBindings.ColorType # value = +Gray34: TracyClientBindings.ColorType # value = +Gray35: TracyClientBindings.ColorType # value = +Gray36: TracyClientBindings.ColorType # value = +Gray37: TracyClientBindings.ColorType # value = +Gray38: TracyClientBindings.ColorType # value = +Gray39: TracyClientBindings.ColorType # value = +Gray4: TracyClientBindings.ColorType # value = +Gray40: TracyClientBindings.ColorType # value = +Gray41: TracyClientBindings.ColorType # value = +Gray42: TracyClientBindings.ColorType # value = +Gray43: TracyClientBindings.ColorType # value = +Gray44: TracyClientBindings.ColorType # value = +Gray45: TracyClientBindings.ColorType # value = +Gray46: TracyClientBindings.ColorType # value = +Gray47: TracyClientBindings.ColorType # value = +Gray48: TracyClientBindings.ColorType # value = +Gray49: TracyClientBindings.ColorType # value = +Gray5: TracyClientBindings.ColorType # value = +Gray50: TracyClientBindings.ColorType # value = +Gray51: TracyClientBindings.ColorType # value = +Gray52: TracyClientBindings.ColorType # value = +Gray53: TracyClientBindings.ColorType # value = +Gray54: TracyClientBindings.ColorType # value = +Gray55: TracyClientBindings.ColorType # value = +Gray56: TracyClientBindings.ColorType # value = +Gray57: TracyClientBindings.ColorType # value = +Gray58: TracyClientBindings.ColorType # value = +Gray59: TracyClientBindings.ColorType # value = +Gray6: TracyClientBindings.ColorType # value = +Gray60: TracyClientBindings.ColorType # value = +Gray61: TracyClientBindings.ColorType # value = +Gray62: TracyClientBindings.ColorType # value = +Gray63: TracyClientBindings.ColorType # value = +Gray64: TracyClientBindings.ColorType # value = +Gray65: TracyClientBindings.ColorType # value = +Gray66: TracyClientBindings.ColorType # value = +Gray67: TracyClientBindings.ColorType # value = +Gray68: TracyClientBindings.ColorType # value = +Gray69: TracyClientBindings.ColorType # value = +Gray7: TracyClientBindings.ColorType # value = +Gray70: TracyClientBindings.ColorType # value = +Gray71: TracyClientBindings.ColorType # value = +Gray72: TracyClientBindings.ColorType # value = +Gray73: TracyClientBindings.ColorType # value = +Gray74: TracyClientBindings.ColorType # value = +Gray75: TracyClientBindings.ColorType # value = +Gray76: TracyClientBindings.ColorType # value = +Gray77: TracyClientBindings.ColorType # value = +Gray78: TracyClientBindings.ColorType # value = +Gray79: TracyClientBindings.ColorType # value = +Gray8: TracyClientBindings.ColorType # value = +Gray80: TracyClientBindings.ColorType # value = +Gray81: TracyClientBindings.ColorType # value = +Gray82: TracyClientBindings.ColorType # value = +Gray83: TracyClientBindings.ColorType # value = +Gray84: TracyClientBindings.ColorType # value = +Gray85: TracyClientBindings.ColorType # value = +Gray86: TracyClientBindings.ColorType # value = +Gray87: TracyClientBindings.ColorType # value = +Gray88: TracyClientBindings.ColorType # value = +Gray89: TracyClientBindings.ColorType # value = +Gray9: TracyClientBindings.ColorType # value = +Gray90: TracyClientBindings.ColorType # value = +Gray91: TracyClientBindings.ColorType # value = +Gray92: TracyClientBindings.ColorType # value = +Gray93: TracyClientBindings.ColorType # value = +Gray94: TracyClientBindings.ColorType # value = +Gray95: TracyClientBindings.ColorType # value = +Gray96: TracyClientBindings.ColorType # value = +Gray97: TracyClientBindings.ColorType # value = +Gray98: TracyClientBindings.ColorType # value = +Gray99: TracyClientBindings.ColorType # value = +Green: TracyClientBindings.ColorType # value = +Green1: TracyClientBindings.ColorType # value = +Green2: TracyClientBindings.ColorType # value = +Green3: TracyClientBindings.ColorType # value = +Green4: TracyClientBindings.ColorType # value = +GreenYellow: TracyClientBindings.ColorType # value = +Grey: TracyClientBindings.ColorType # value = +Grey0: TracyClientBindings.ColorType # value = +Grey1: TracyClientBindings.ColorType # value = +Grey10: TracyClientBindings.ColorType # value = +Grey100: TracyClientBindings.ColorType # value = +Grey11: TracyClientBindings.ColorType # value = +Grey12: TracyClientBindings.ColorType # value = +Grey13: TracyClientBindings.ColorType # value = +Grey14: TracyClientBindings.ColorType # value = +Grey15: TracyClientBindings.ColorType # value = +Grey16: TracyClientBindings.ColorType # value = +Grey17: TracyClientBindings.ColorType # value = +Grey18: TracyClientBindings.ColorType # value = +Grey19: TracyClientBindings.ColorType # value = +Grey2: TracyClientBindings.ColorType # value = +Grey20: TracyClientBindings.ColorType # value = +Grey21: TracyClientBindings.ColorType # value = +Grey22: TracyClientBindings.ColorType # value = +Grey23: TracyClientBindings.ColorType # value = +Grey24: TracyClientBindings.ColorType # value = +Grey25: TracyClientBindings.ColorType # value = +Grey26: TracyClientBindings.ColorType # value = +Grey27: TracyClientBindings.ColorType # value = +Grey28: TracyClientBindings.ColorType # value = +Grey29: TracyClientBindings.ColorType # value = +Grey3: TracyClientBindings.ColorType # value = +Grey30: TracyClientBindings.ColorType # value = +Grey31: TracyClientBindings.ColorType # value = +Grey32: TracyClientBindings.ColorType # value = +Grey33: TracyClientBindings.ColorType # value = +Grey34: TracyClientBindings.ColorType # value = +Grey35: TracyClientBindings.ColorType # value = +Grey36: TracyClientBindings.ColorType # value = +Grey37: TracyClientBindings.ColorType # value = +Grey38: TracyClientBindings.ColorType # value = +Grey39: TracyClientBindings.ColorType # value = +Grey4: TracyClientBindings.ColorType # value = +Grey40: TracyClientBindings.ColorType # value = +Grey41: TracyClientBindings.ColorType # value = +Grey42: TracyClientBindings.ColorType # value = +Grey43: TracyClientBindings.ColorType # value = +Grey44: TracyClientBindings.ColorType # value = +Grey45: TracyClientBindings.ColorType # value = +Grey46: TracyClientBindings.ColorType # value = +Grey47: TracyClientBindings.ColorType # value = +Grey48: TracyClientBindings.ColorType # value = +Grey49: TracyClientBindings.ColorType # value = +Grey5: TracyClientBindings.ColorType # value = +Grey50: TracyClientBindings.ColorType # value = +Grey51: TracyClientBindings.ColorType # value = +Grey52: TracyClientBindings.ColorType # value = +Grey53: TracyClientBindings.ColorType # value = +Grey54: TracyClientBindings.ColorType # value = +Grey55: TracyClientBindings.ColorType # value = +Grey56: TracyClientBindings.ColorType # value = +Grey57: TracyClientBindings.ColorType # value = +Grey58: TracyClientBindings.ColorType # value = +Grey59: TracyClientBindings.ColorType # value = +Grey6: TracyClientBindings.ColorType # value = +Grey60: TracyClientBindings.ColorType # value = +Grey61: TracyClientBindings.ColorType # value = +Grey62: TracyClientBindings.ColorType # value = +Grey63: TracyClientBindings.ColorType # value = +Grey64: TracyClientBindings.ColorType # value = +Grey65: TracyClientBindings.ColorType # value = +Grey66: TracyClientBindings.ColorType # value = +Grey67: TracyClientBindings.ColorType # value = +Grey68: TracyClientBindings.ColorType # value = +Grey69: TracyClientBindings.ColorType # value = +Grey7: TracyClientBindings.ColorType # value = +Grey70: TracyClientBindings.ColorType # value = +Grey71: TracyClientBindings.ColorType # value = +Grey72: TracyClientBindings.ColorType # value = +Grey73: TracyClientBindings.ColorType # value = +Grey74: TracyClientBindings.ColorType # value = +Grey75: TracyClientBindings.ColorType # value = +Grey76: TracyClientBindings.ColorType # value = +Grey77: TracyClientBindings.ColorType # value = +Grey78: TracyClientBindings.ColorType # value = +Grey79: TracyClientBindings.ColorType # value = +Grey8: TracyClientBindings.ColorType # value = +Grey80: TracyClientBindings.ColorType # value = +Grey81: TracyClientBindings.ColorType # value = +Grey82: TracyClientBindings.ColorType # value = +Grey83: TracyClientBindings.ColorType # value = +Grey84: TracyClientBindings.ColorType # value = +Grey85: TracyClientBindings.ColorType # value = +Grey86: TracyClientBindings.ColorType # value = +Grey87: TracyClientBindings.ColorType # value = +Grey88: TracyClientBindings.ColorType # value = +Grey89: TracyClientBindings.ColorType # value = +Grey9: TracyClientBindings.ColorType # value = +Grey90: TracyClientBindings.ColorType # value = +Grey91: TracyClientBindings.ColorType # value = +Grey92: TracyClientBindings.ColorType # value = +Grey93: TracyClientBindings.ColorType # value = +Grey94: TracyClientBindings.ColorType # value = +Grey95: TracyClientBindings.ColorType # value = +Grey96: TracyClientBindings.ColorType # value = +Grey97: TracyClientBindings.ColorType # value = +Grey98: TracyClientBindings.ColorType # value = +Grey99: TracyClientBindings.ColorType # value = +Honeydew: TracyClientBindings.ColorType # value = +Honeydew1: TracyClientBindings.ColorType # value = +Honeydew2: TracyClientBindings.ColorType # value = +Honeydew3: TracyClientBindings.ColorType # value = +Honeydew4: TracyClientBindings.ColorType # value = +HotPink: TracyClientBindings.ColorType # value = +HotPink1: TracyClientBindings.ColorType # value = +HotPink2: TracyClientBindings.ColorType # value = +HotPink3: TracyClientBindings.ColorType # value = +HotPink4: TracyClientBindings.ColorType # value = +IndianRed: TracyClientBindings.ColorType # value = +IndianRed1: TracyClientBindings.ColorType # value = +IndianRed2: TracyClientBindings.ColorType # value = +IndianRed3: TracyClientBindings.ColorType # value = +IndianRed4: TracyClientBindings.ColorType # value = +Indigo: TracyClientBindings.ColorType # value = +Ivory: TracyClientBindings.ColorType # value = +Ivory1: TracyClientBindings.ColorType # value = +Ivory2: TracyClientBindings.ColorType # value = +Ivory3: TracyClientBindings.ColorType # value = +Ivory4: TracyClientBindings.ColorType # value = +Khaki: TracyClientBindings.ColorType # value = +Khaki1: TracyClientBindings.ColorType # value = +Khaki2: TracyClientBindings.ColorType # value = +Khaki3: TracyClientBindings.ColorType # value = +Khaki4: TracyClientBindings.ColorType # value = +Lavender: TracyClientBindings.ColorType # value = +LavenderBlush: TracyClientBindings.ColorType # value = +LavenderBlush1: TracyClientBindings.ColorType # value = +LavenderBlush2: TracyClientBindings.ColorType # value = +LavenderBlush3: TracyClientBindings.ColorType # value = +LavenderBlush4: TracyClientBindings.ColorType # value = +LawnGreen: TracyClientBindings.ColorType # value = +LemonChiffon: TracyClientBindings.ColorType # value = +LemonChiffon1: TracyClientBindings.ColorType # value = +LemonChiffon2: TracyClientBindings.ColorType # value = +LemonChiffon3: TracyClientBindings.ColorType # value = +LemonChiffon4: TracyClientBindings.ColorType # value = +LightBlue: TracyClientBindings.ColorType # value = +LightBlue1: TracyClientBindings.ColorType # value = +LightBlue2: TracyClientBindings.ColorType # value = +LightBlue3: TracyClientBindings.ColorType # value = +LightBlue4: TracyClientBindings.ColorType # value = +LightCoral: TracyClientBindings.ColorType # value = +LightCyan: TracyClientBindings.ColorType # value = +LightCyan1: TracyClientBindings.ColorType # value = +LightCyan2: TracyClientBindings.ColorType # value = +LightCyan3: TracyClientBindings.ColorType # value = +LightCyan4: TracyClientBindings.ColorType # value = +LightGoldenrod: TracyClientBindings.ColorType # value = +LightGoldenrod1: TracyClientBindings.ColorType # value = +LightGoldenrod2: TracyClientBindings.ColorType # value = +LightGoldenrod3: TracyClientBindings.ColorType # value = +LightGoldenrod4: TracyClientBindings.ColorType # value = +LightGoldenrodYellow: TracyClientBindings.ColorType # value = +LightGray: TracyClientBindings.ColorType # value = +LightGreen: TracyClientBindings.ColorType # value = +LightGrey: TracyClientBindings.ColorType # value = +LightPink: TracyClientBindings.ColorType # value = +LightPink1: TracyClientBindings.ColorType # value = +LightPink2: TracyClientBindings.ColorType # value = +LightPink3: TracyClientBindings.ColorType # value = +LightPink4: TracyClientBindings.ColorType # value = +LightSalmon: TracyClientBindings.ColorType # value = +LightSalmon1: TracyClientBindings.ColorType # value = +LightSalmon2: TracyClientBindings.ColorType # value = +LightSalmon3: TracyClientBindings.ColorType # value = +LightSalmon4: TracyClientBindings.ColorType # value = +LightSeaGreen: TracyClientBindings.ColorType # value = +LightSkyBlue: TracyClientBindings.ColorType # value = +LightSkyBlue1: TracyClientBindings.ColorType # value = +LightSkyBlue2: TracyClientBindings.ColorType # value = +LightSkyBlue3: TracyClientBindings.ColorType # value = +LightSkyBlue4: TracyClientBindings.ColorType # value = +LightSlateBlue: TracyClientBindings.ColorType # value = +LightSlateGray: TracyClientBindings.ColorType # value = +LightSlateGrey: TracyClientBindings.ColorType # value = +LightSteelBlue: TracyClientBindings.ColorType # value = +LightSteelBlue1: TracyClientBindings.ColorType # value = +LightSteelBlue2: TracyClientBindings.ColorType # value = +LightSteelBlue3: TracyClientBindings.ColorType # value = +LightSteelBlue4: TracyClientBindings.ColorType # value = +LightYellow: TracyClientBindings.ColorType # value = +LightYellow1: TracyClientBindings.ColorType # value = +LightYellow2: TracyClientBindings.ColorType # value = +LightYellow3: TracyClientBindings.ColorType # value = +LightYellow4: TracyClientBindings.ColorType # value = +Lime: TracyClientBindings.ColorType # value = +LimeGreen: TracyClientBindings.ColorType # value = +Linen: TracyClientBindings.ColorType # value = +Magenta: TracyClientBindings.ColorType # value = +Magenta1: TracyClientBindings.ColorType # value = +Magenta2: TracyClientBindings.ColorType # value = +Magenta3: TracyClientBindings.ColorType # value = +Magenta4: TracyClientBindings.ColorType # value = +Maroon: TracyClientBindings.ColorType # value = +Maroon1: TracyClientBindings.ColorType # value = +Maroon2: TracyClientBindings.ColorType # value = +Maroon3: TracyClientBindings.ColorType # value = +Maroon4: TracyClientBindings.ColorType # value = +MediumAquamarine: TracyClientBindings.ColorType # value = +MediumBlue: TracyClientBindings.ColorType # value = +MediumOrchid: TracyClientBindings.ColorType # value = +MediumOrchid1: TracyClientBindings.ColorType # value = +MediumOrchid2: TracyClientBindings.ColorType # value = +MediumOrchid3: TracyClientBindings.ColorType # value = +MediumOrchid4: TracyClientBindings.ColorType # value = +MediumPurple: TracyClientBindings.ColorType # value = +MediumPurple1: TracyClientBindings.ColorType # value = +MediumPurple2: TracyClientBindings.ColorType # value = +MediumPurple3: TracyClientBindings.ColorType # value = +MediumPurple4: TracyClientBindings.ColorType # value = +MediumSeaGreen: TracyClientBindings.ColorType # value = +MediumSlateBlue: TracyClientBindings.ColorType # value = +MediumSpringGreen: TracyClientBindings.ColorType # value = +MediumTurquoise: TracyClientBindings.ColorType # value = +MediumVioletRed: TracyClientBindings.ColorType # value = +Memory: TracyClientBindings.PlotFormatType # value = +MidnightBlue: TracyClientBindings.ColorType # value = +MintCream: TracyClientBindings.ColorType # value = +MistyRose: TracyClientBindings.ColorType # value = +MistyRose1: TracyClientBindings.ColorType # value = +MistyRose2: TracyClientBindings.ColorType # value = +MistyRose3: TracyClientBindings.ColorType # value = +MistyRose4: TracyClientBindings.ColorType # value = +Moccasin: TracyClientBindings.ColorType # value = +NavajoWhite: TracyClientBindings.ColorType # value = +NavajoWhite1: TracyClientBindings.ColorType # value = +NavajoWhite2: TracyClientBindings.ColorType # value = +NavajoWhite3: TracyClientBindings.ColorType # value = +NavajoWhite4: TracyClientBindings.ColorType # value = +Navy: TracyClientBindings.ColorType # value = +NavyBlue: TracyClientBindings.ColorType # value = +Number: TracyClientBindings.PlotFormatType # value = +OldLace: TracyClientBindings.ColorType # value = +Olive: TracyClientBindings.ColorType # value = +OliveDrab: TracyClientBindings.ColorType # value = +OliveDrab1: TracyClientBindings.ColorType # value = +OliveDrab2: TracyClientBindings.ColorType # value = +OliveDrab3: TracyClientBindings.ColorType # value = +OliveDrab4: TracyClientBindings.ColorType # value = +Orange: TracyClientBindings.ColorType # value = +Orange1: TracyClientBindings.ColorType # value = +Orange2: TracyClientBindings.ColorType # value = +Orange3: TracyClientBindings.ColorType # value = +Orange4: TracyClientBindings.ColorType # value = +OrangeRed: TracyClientBindings.ColorType # value = +OrangeRed1: TracyClientBindings.ColorType # value = +OrangeRed2: TracyClientBindings.ColorType # value = +OrangeRed3: TracyClientBindings.ColorType # value = +OrangeRed4: TracyClientBindings.ColorType # value = +Orchid: TracyClientBindings.ColorType # value = +Orchid1: TracyClientBindings.ColorType # value = +Orchid2: TracyClientBindings.ColorType # value = +Orchid3: TracyClientBindings.ColorType # value = +Orchid4: TracyClientBindings.ColorType # value = +PaleGoldenrod: TracyClientBindings.ColorType # value = +PaleGreen: TracyClientBindings.ColorType # value = +PaleGreen1: TracyClientBindings.ColorType # value = +PaleGreen2: TracyClientBindings.ColorType # value = +PaleGreen3: TracyClientBindings.ColorType # value = +PaleGreen4: TracyClientBindings.ColorType # value = +PaleTurquoise: TracyClientBindings.ColorType # value = +PaleTurquoise1: TracyClientBindings.ColorType # value = +PaleTurquoise2: TracyClientBindings.ColorType # value = +PaleTurquoise3: TracyClientBindings.ColorType # value = +PaleTurquoise4: TracyClientBindings.ColorType # value = +PaleVioletRed: TracyClientBindings.ColorType # value = +PaleVioletRed1: TracyClientBindings.ColorType # value = +PaleVioletRed2: TracyClientBindings.ColorType # value = +PaleVioletRed3: TracyClientBindings.ColorType # value = +PaleVioletRed4: TracyClientBindings.ColorType # value = +PapayaWhip: TracyClientBindings.ColorType # value = +PeachPuff: TracyClientBindings.ColorType # value = +PeachPuff1: TracyClientBindings.ColorType # value = +PeachPuff2: TracyClientBindings.ColorType # value = +PeachPuff3: TracyClientBindings.ColorType # value = +PeachPuff4: TracyClientBindings.ColorType # value = +Percentage: TracyClientBindings.PlotFormatType # value = +Peru: TracyClientBindings.ColorType # value = +Pink: TracyClientBindings.ColorType # value = +Pink1: TracyClientBindings.ColorType # value = +Pink2: TracyClientBindings.ColorType # value = +Pink3: TracyClientBindings.ColorType # value = +Pink4: TracyClientBindings.ColorType # value = +Plum: TracyClientBindings.ColorType # value = +Plum1: TracyClientBindings.ColorType # value = +Plum2: TracyClientBindings.ColorType # value = +Plum3: TracyClientBindings.ColorType # value = +Plum4: TracyClientBindings.ColorType # value = +PowderBlue: TracyClientBindings.ColorType # value = +Purple: TracyClientBindings.ColorType # value = +Purple1: TracyClientBindings.ColorType # value = +Purple2: TracyClientBindings.ColorType # value = +Purple3: TracyClientBindings.ColorType # value = +Purple4: TracyClientBindings.ColorType # value = +RebeccaPurple: TracyClientBindings.ColorType # value = +Red: TracyClientBindings.ColorType # value = +Red1: TracyClientBindings.ColorType # value = +Red2: TracyClientBindings.ColorType # value = +Red3: TracyClientBindings.ColorType # value = +Red4: TracyClientBindings.ColorType # value = +RosyBrown: TracyClientBindings.ColorType # value = +RosyBrown1: TracyClientBindings.ColorType # value = +RosyBrown2: TracyClientBindings.ColorType # value = +RosyBrown3: TracyClientBindings.ColorType # value = +RosyBrown4: TracyClientBindings.ColorType # value = +RoyalBlue: TracyClientBindings.ColorType # value = +RoyalBlue1: TracyClientBindings.ColorType # value = +RoyalBlue2: TracyClientBindings.ColorType # value = +RoyalBlue3: TracyClientBindings.ColorType # value = +RoyalBlue4: TracyClientBindings.ColorType # value = +SaddleBrown: TracyClientBindings.ColorType # value = +Salmon: TracyClientBindings.ColorType # value = +Salmon1: TracyClientBindings.ColorType # value = +Salmon2: TracyClientBindings.ColorType # value = +Salmon3: TracyClientBindings.ColorType # value = +Salmon4: TracyClientBindings.ColorType # value = +SandyBrown: TracyClientBindings.ColorType # value = +SeaGreen: TracyClientBindings.ColorType # value = +SeaGreen1: TracyClientBindings.ColorType # value = +SeaGreen2: TracyClientBindings.ColorType # value = +SeaGreen3: TracyClientBindings.ColorType # value = +SeaGreen4: TracyClientBindings.ColorType # value = +Seashell: TracyClientBindings.ColorType # value = +Seashell1: TracyClientBindings.ColorType # value = +Seashell2: TracyClientBindings.ColorType # value = +Seashell3: TracyClientBindings.ColorType # value = +Seashell4: TracyClientBindings.ColorType # value = +Sienna: TracyClientBindings.ColorType # value = +Sienna1: TracyClientBindings.ColorType # value = +Sienna2: TracyClientBindings.ColorType # value = +Sienna3: TracyClientBindings.ColorType # value = +Sienna4: TracyClientBindings.ColorType # value = +Silver: TracyClientBindings.ColorType # value = +SkyBlue: TracyClientBindings.ColorType # value = +SkyBlue1: TracyClientBindings.ColorType # value = +SkyBlue2: TracyClientBindings.ColorType # value = +SkyBlue3: TracyClientBindings.ColorType # value = +SkyBlue4: TracyClientBindings.ColorType # value = +SlateBlue: TracyClientBindings.ColorType # value = +SlateBlue1: TracyClientBindings.ColorType # value = +SlateBlue2: TracyClientBindings.ColorType # value = +SlateBlue3: TracyClientBindings.ColorType # value = +SlateBlue4: TracyClientBindings.ColorType # value = +SlateGray: TracyClientBindings.ColorType # value = +SlateGray1: TracyClientBindings.ColorType # value = +SlateGray2: TracyClientBindings.ColorType # value = +SlateGray3: TracyClientBindings.ColorType # value = +SlateGray4: TracyClientBindings.ColorType # value = +SlateGrey: TracyClientBindings.ColorType # value = +Snow: TracyClientBindings.ColorType # value = +Snow1: TracyClientBindings.ColorType # value = +Snow2: TracyClientBindings.ColorType # value = +Snow3: TracyClientBindings.ColorType # value = +Snow4: TracyClientBindings.ColorType # value = +SpringGreen: TracyClientBindings.ColorType # value = +SpringGreen1: TracyClientBindings.ColorType # value = +SpringGreen2: TracyClientBindings.ColorType # value = +SpringGreen3: TracyClientBindings.ColorType # value = +SpringGreen4: TracyClientBindings.ColorType # value = +SteelBlue: TracyClientBindings.ColorType # value = +SteelBlue1: TracyClientBindings.ColorType # value = +SteelBlue2: TracyClientBindings.ColorType # value = +SteelBlue3: TracyClientBindings.ColorType # value = +SteelBlue4: TracyClientBindings.ColorType # value = +Tan: TracyClientBindings.ColorType # value = +Tan1: TracyClientBindings.ColorType # value = +Tan2: TracyClientBindings.ColorType # value = +Tan3: TracyClientBindings.ColorType # value = +Tan4: TracyClientBindings.ColorType # value = +Teal: TracyClientBindings.ColorType # value = +Thistle: TracyClientBindings.ColorType # value = +Thistle1: TracyClientBindings.ColorType # value = +Thistle2: TracyClientBindings.ColorType # value = +Thistle3: TracyClientBindings.ColorType # value = +Thistle4: TracyClientBindings.ColorType # value = +Tomato: TracyClientBindings.ColorType # value = +Tomato1: TracyClientBindings.ColorType # value = +Tomato2: TracyClientBindings.ColorType # value = +Tomato3: TracyClientBindings.ColorType # value = +Tomato4: TracyClientBindings.ColorType # value = +Turquoise: TracyClientBindings.ColorType # value = +Turquoise1: TracyClientBindings.ColorType # value = +Turquoise2: TracyClientBindings.ColorType # value = +Turquoise3: TracyClientBindings.ColorType # value = +Turquoise4: TracyClientBindings.ColorType # value = +Violet: TracyClientBindings.ColorType # value = +VioletRed: TracyClientBindings.ColorType # value = +VioletRed1: TracyClientBindings.ColorType # value = +VioletRed2: TracyClientBindings.ColorType # value = +VioletRed3: TracyClientBindings.ColorType # value = +VioletRed4: TracyClientBindings.ColorType # value = +WebGray: TracyClientBindings.ColorType # value = +WebGreen: TracyClientBindings.ColorType # value = +WebGrey: TracyClientBindings.ColorType # value = +WebMaroon: TracyClientBindings.ColorType # value = +WebPurple: TracyClientBindings.ColorType # value = +Wheat: TracyClientBindings.ColorType # value = +Wheat1: TracyClientBindings.ColorType # value = +Wheat2: TracyClientBindings.ColorType # value = +Wheat3: TracyClientBindings.ColorType # value = +Wheat4: TracyClientBindings.ColorType # value = +White: TracyClientBindings.ColorType # value = +WhiteSmoke: TracyClientBindings.ColorType # value = +X11Gray: TracyClientBindings.ColorType # value = +X11Green: TracyClientBindings.ColorType # value = +X11Grey: TracyClientBindings.ColorType # value = +X11Maroon: TracyClientBindings.ColorType # value = +X11Purple: TracyClientBindings.ColorType # value = +Yellow: TracyClientBindings.ColorType # value = +Yellow1: TracyClientBindings.ColorType # value = +Yellow2: TracyClientBindings.ColorType # value = +Yellow3: TracyClientBindings.ColorType # value = +Yellow4: TracyClientBindings.ColorType # value = +YellowGreen: TracyClientBindings.ColorType # value = diff --git a/python/tracy_client/__init__.py b/python/tracy_client/__init__.py new file mode 100644 index 00000000..dda15386 --- /dev/null +++ b/python/tracy_client/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from tracy_client.tracy import * diff --git a/python/tracy_client/py.typed b/python/tracy_client/py.typed new file mode 100644 index 00000000..e69de29b diff --git a/python/tracy_client/scoped.py b/python/tracy_client/scoped.py new file mode 100644 index 00000000..2a15b161 --- /dev/null +++ b/python/tracy_client/scoped.py @@ -0,0 +1,119 @@ +# -*- coding: utf-8 -*- + +import sys + +from functools import wraps +from typing import Callable, Optional, Union + +from tracy_client.TracyClientBindings import ( + is_enabled, + _ScopedZone, + ColorType, + frame_mark_start, + frame_mark_end, +) + +Color = Union[int, ColorType] + + +class ScopedZone(_ScopedZone): + def __init__( + self, + name: Optional[str] = None, + color: Color = 0, + depth: Optional[int] = None, + active: bool = True, + ) -> None: + frame = sys._getframe(1) + _ScopedZone.__init__( + self, + name, + int(color), + depth, + active, + frame.f_code.co_name, + frame.f_code.co_filename, + frame.f_lineno, + ) + + def color(self, color: Color) -> None: + self._color(int(color)) + + def __enter__(self): + self.enter() + return self + + def __exit__(self, *args): + self.exit() + + +def ScopedZoneDecorator( + name: Optional[str] = None, + color: Color = 0, + depth: Optional[int] = None, + active: bool = True, + class_name: Optional[str] = None, +): + + def decorator(function: Callable): + if not is_enabled(): + return function + + source = function.__name__ + if class_name is not None: + source = f"{class_name}:{source}" + + zone = _ScopedZone( + name, + int(color), + depth, + active, + source, + function.__code__.co_filename, + function.__code__.co_firstlineno, + ) + + @wraps(function) + def wrapped(*args, **kwargs): + zone.enter() + value = function(*args, **kwargs) + zone.exit() + return value + + return wrapped + + return decorator + + +class ScopedFrame: + def __init__(self, name: str) -> None: + self.__name = name + self.__id: Optional[int] = None + + def __enter__(self): + self.__id = frame_mark_start(self.__name) + return self + + def __exit__(self, *args): + if self.__id is None: + return + frame_mark_end(self.__id) + + +def ScopedFrameDecorator(name: str): + + def decorator(function: Callable): + if not is_enabled(): + return function + + @wraps(function) + def wrapped(*args, **kwargs): + frame_id = frame_mark_start(name) + value = function(*args, **kwargs) + if frame_id is not None: + frame_mark_end(frame_id) + return value + + return wrapped + + return decorator diff --git a/python/tracy_client/tracy.py b/python/tracy_client/tracy.py new file mode 100644 index 00000000..df8d3112 --- /dev/null +++ b/python/tracy_client/tracy.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- + +from typing import Optional, Union + +from tracy_client.TracyClientBindings import ( + is_enabled, + program_name, + thread_name, + app_info, + ColorType, + PlotFormatType, + frame_mark, + frame_mark_start, + frame_mark_end, + frame_image, + alloc, + free, + message, + plot, + _plot_config, +) +from tracy_client.scoped import ( + Color, + ScopedZone, + ScopedFrame, + ScopedZoneDecorator, + ScopedFrameDecorator, +) + +PlotType = Union[int, PlotFormatType] + + +def plot_config( + name: str, type: PlotType, step: bool = False, flip: bool = False, color: Color = 0 +) -> Optional[int]: + return _plot_config(name, int(type), step, flip, int(color)) From 059f1487aff85e9514f357046575f13693858037 Mon Sep 17 00:00:00 2001 From: Arnim Balzer Date: Thu, 21 Mar 2024 13:39:06 +0000 Subject: [PATCH 2/3] Option to disable use of external pybind11 --- python/CMakeLists.txt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index b5a267e3..acead3d6 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -1,9 +1,13 @@ -find_package(Python 3.6 COMPONENTS Interpreter Development REQUIRED) +option(EXTERNAL_PYBIND11 "Whether to download pybind11" ON) -include(FetchContent) +if(EXTERNAL_PYBIND11) + find_package(Python 3.6 COMPONENTS Interpreter Development REQUIRED) -FetchContent_Declare(pybind11 GIT_REPOSITORY "https://github.com/pybind/pybind11.git" GIT_TAG "v2.11.1" GIT_SHALLOW ON TEST_BEFORE_INSTALL ON) -FetchContent_MakeAvailable(pybind11) + include(FetchContent) + + FetchContent_Declare(pybind11 GIT_REPOSITORY "https://github.com/pybind/pybind11.git" GIT_TAG "v2.11.1" GIT_SHALLOW ON TEST_BEFORE_INSTALL ON) + FetchContent_MakeAvailable(pybind11) +endif() set(BUFFER_SIZE 128 CACHE STRING "The size of the pointer buffer") set(NAME_LENGTH 128 CACHE STRING "The length of a name in the buffer") From 505afc8f77e0c61ed1a867e166e00605b93b706b Mon Sep 17 00:00:00 2001 From: Arnim Balzer Date: Sat, 23 Mar 2024 06:44:07 +0000 Subject: [PATCH 3/3] Document other CMake options and fix tex errors --- manual/tracy.tex | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/manual/tracy.tex b/manual/tracy.tex index 02d67239..e23bb9d0 100644 --- a/manual/tracy.tex +++ b/manual/tracy.tex @@ -2276,16 +2276,18 @@ Please not the use of ids as way to cope with the need for unique pointers for c \subsubsection{Building the Python package} To build the Python package, you will need to use the CMake build system to compile the Tracy-Client. -The CMake option \texttt{-D TRACY_CLIENT_PYTHON=ON} is used to enable the generation of the Python bindings in conjunction with a mandatory creation of a shared Tracy-Client library via one of the CMake options \texttt{-D BUILD_SHARED_LIBS=ON} or \texttt{-D DEFAULT_STATIC=OFF}. +The CMake option \texttt{-D TRACY\_CLIENT\_PYTHON=ON} is used to enable the generation of the Python bindings in conjunction with a mandatory creation of a shared Tracy-Client library via one of the CMake options \texttt{-D BUILD\_SHARED\_LIBS=ON} or \texttt{-D DEFAULT\_STATIC=OFF}. -The following two variables are available in addition: +The following other variables are available in addition: \begin{itemize} -\item \texttt{BUFFER_SIZE} --- The size of the global pointer buffer (defaults to 128) for naming Tracy profiling entities like frame marks, plots, and memory locations. -\item \texttt{NAME_LENGTH} --- The maximum length (defaults to 128) of a name stored in the global pointer buffer. +\item \texttt{EXTERNAL\_PYBIND11} --- Can be used to disable the download of pybind11 when Tracy is embedded in another CMake project that already uses pybind11. +\item \texttt{TRACY\_CLIENT\_PYTHON\_TARGET} --- Optional directory to copy Tracy Python bindings to when Tracy is embedded in another CMake project. +\item \texttt{BUFFER\_SIZE} --- The size of the global pointer buffer (defaults to 128) for naming Tracy profiling entities like frame marks, plots, and memory locations. +\item \texttt{NAME\_LENGTH} --- The maximum length (defaults to 128) of a name stored in the global pointer buffer. \end{itemize} -Be aware that the memory allocated by this buffer is global and is not freed, see section ~\ref{uniquepointers}. +Be aware that the memory allocated by this buffer is global and is not freed, see section~\ref{uniquepointers}. See below for example steps to build the Python bindings using CMake: