Skip to main content

MCMC tools for astrophysics

Project description

VegasAfterglow

VegasAfterglow Logo

C++ Version PyPI version Build Status License Platform Python Version Documentation

VegasAfterglow is a high-performance C++ framework with a user-friendly Python interface designed for the comprehensive modeling of gamma-ray burst (GRB) afterglows. It achieves exceptional computational efficiency, enabling the generation of multi-wavelength light curves in milliseconds and facilitating robust Markov Chain Monte Carlo (MCMC) parameter inference in seconds to minutes. The framework incorporates advanced models for shock dynamics (both forward and reverse shocks), diverse radiation mechanisms (synchrotron with self-absorption, and inverse Compton scattering with Klein-Nishina corrections), and complex structured jet configurations.



Table of Contents


Features

Shock Dynamics

  • Forward and Reverse Shock Modeling: Simulates both shocks via shock crossing dynamics with arbitrary magnetization levels and shell thicknesses.
  • Relativistic and Non-Relativistic Regimes: Accurately models shock evolution across all velocity regimes.
  • Adiabatic and Radiative Blast Wave: Supports smooth transition between adiabatic and radiative blast wave.
  • Ambient Medium: Supports uniform Interstellar Medium (ISM), stellar wind environments, and user-defined density profiles.
  • Energy and Mass Injection: Supports user-defined profiles for continuous energy and/or mass injection into the blast wave.

Jet Structure & Geometry

  • Structured Jet Profiles: Allows user-defined angular profiles for energy distribution, initial Lorentz factor, and magnetization.
  • Arbitrary Viewing Angles: Supports off-axis observers at any viewing angle relative to the jet axis.
  • Jet Spreading: Includes lateral expansion dynamics for realistic jet evolution (experimental).
  • Non-Axisymmetric Jets: Capable of modeling complex, non-axisymmetric jet structures.

Radiation Mechanisms

  • Synchrotron Radiation: Calculates synchrotron emission from shocked electrons.
  • Synchrotron Self-Absorption (SSA): Includes SSA effects, crucial at low frequencies.
  • Inverse Compton (IC) Scattering: Models IC processes, including:
    • Synchrotron Self-Compton (SSC) from both forward and reverse shocks.
    • Pairwise IC between forward and reverse shock electron and photon populations (experimental).
    • Includes Klein-Nishina corrections for accurate synchrotron and IC emission.


Performance Highlights

VegasAfterglow delivers exceptional computational performance through deep optimization of its core algorithms:

  • Ultra-fast Light Curve Computation: Generates a 100-point single-frequency light curve (forward shock & synchrotron only) from a structured jet viewed off-axis in approximately 1 milliseconds on an Apple M2 chip with a single core.

  • Rapid MCMC Exploration: Enables parameter estimation with 10,000 MCMC steps for 8 parameters on 20 data points across multi-wavelength light curves and spectra on an 8-core Apple M2 chip in:

    • ~20 seconds for on-axis structured jet scenarios

This level of performance is achieved through optimized algorithm implementation and efficient memory access patterns, facilitating comprehensive Bayesian inference on standard laptop hardware in seconds to minutes rather than hours or days. The accelerated convergence speed enables rapid iteration through different physical models and makes VegasAfterglow suitable for both detailed analysis of individual GRB events and large-scale population studies.



Installation

VegasAfterglow is available as a Python package with C++ source code also provided for direct use.

Python Installation

To install VegasAfterglow using pip:

pip install VegasAfterglow

This is the recommended method for most users. VegasAfterglow requires Python 3.7 or higher.

Alternative: Install from Source (click to expand/collapse)

For cases where pip installation is not viable or when the development version is required:

  1. Clone this repository:
git clone https://github.com/YihanWangAstro/VegasAfterglow.git
  1. Navigate to the directory and install the Python package:
cd VegasAfterglow
pip install .

Standard development environments typically include the necessary prerequisites (C++20 compatible compiler). For build-related issues, refer to the prerequisites section in C++ Installation.

C++ Installation

For advanced users who need to compile and use the C++ library directly:

Instructions for C++ Installation (click to expand/collapse)
  1. Clone the repository (if not previously done):
git clone https://github.com/YihanWangAstro/VegasAfterglow.git
cd VegasAfterglow
  1. Compile the static library:
make lib
  1. (Optional) Compile and run tests:
make tests

Upon successful compilation, you can create custom C++ problem generators using the VegasAfterglow interfaces. For implementation details, refer to the Creating Custom Problem Generators with C++ section or examine the example problem generators in tests/demo/.

Build Prerequisites (click to expand for dependency information)

The following development tools are required:

  • C++20 compatible compiler:

    • Linux: GCC 10+ or Clang 13+
    • macOS: Apple Clang 13+ (with Xcode 13+) or GCC 10+ (via Homebrew)
    • Windows: MSVC 19.29+ (Visual Studio 2019 16.10+) or MinGW-w64 with GCC 10+
  • Build tools:

    • Make (GNU Make 4.0+ recommended)

Usage

Quick Start

We provide basic example scripts (script/quick.ipynb and script/mcmc.ipynb) that demonstrate how to set up and run afterglow simulations. This section shows how to calculate light curves and spectra for a simple GRB afterglow model without the need for observational data and perform MCMC parameter fitting with observational data. The notebook can be run using either Jupyter Notebook or VSCode with the Jupyter extension.

To avoid conflicts when updating the repository in the future, make a copy of the example notebook in the same directory and work with the copy instead of the original.

Light Curve & Spectrum Calculation

The example below walks through the main components needed to model a GRB afterglow, from setting up the physical parameters to producing light curves and spectra.

Model Setup (click to expand/collapse)

First, let's set up the physical components of our afterglow model, including the environment, jet, observer, and radiation parameters:

import numpy as np
import matplotlib.pyplot as plt
from VegasAfterglow import ISM, TophatJet, Observer, Radiation, Model

# 1. Define the circumburst environment (constant density ISM)
medium = ISM(n_ism=1) #in cgs unit

# 2. Configure the jet structure (top-hat with opening angle, energy, and Lorentz factor)
jet = TophatJet(theta_c=0.1, E_iso=1e52, Gamma0=300) #in cgs unit

# 3. Set observer parameters (distance, redshift, viewing angle)
obs = Observer(lumi_dist=1e26, z=0.1, theta_obs=0) #in cgs unit

# 4. Define radiation microphysics parameters
rad = Radiation(eps_e=1e-1, eps_B=1e-3, p=2.3)

# 5. Combine all components into a complete afterglow model
model = Model(jet=jet, medium=medium, observer=obs, forward_rad=rad)
Light Curve Calculation (click to expand/collapse)

Now, let's compute and plot multi-wavelength light curves to see how the afterglow evolves over time:

# 1. Create logarithmic time array from 10² to 10⁸ seconds (100s to ~3yrs)
times = np.logspace(2, 8, 100)  

# 2. Define observing frequencies (radio, optical, X-ray bands in Hz)
bands = np.array([1e9, 1e14, 1e17])  

# 3. Calculate the afterglow emission at each time and frequency
results = model.specific_flux(times, bands)

# 4. Visualize the multi-wavelength light curves
plt.figure(figsize=(4.8, 3.6),dpi=200)

# 5. Plot each frequency band 
for i, nu in enumerate(bands):
    exp = int(np.floor(np.log10(nu)))
    base = nu / 10**exp
    plt.loglog(times, results['syn'][i,:], label=fr'${base:.1f} \times 10^{{{exp}}}$ Hz')

def add_note(plt):
    plt.annotate('jet break',xy=(3e4, 1e-26), xytext=(3e3, 5e-28), arrowprops=dict(arrowstyle='->'))
    plt.annotate(r'$\nu_m=\nu_a$',xy=(8e5, 2e-25), xytext=(7.5e4, 5e-24), arrowprops=dict(arrowstyle='->'))
    plt.annotate(r'$\nu=\nu_a$',xy=(4e6, 4e-25), xytext=(7.5e5, 5e-24), arrowprops=dict(arrowstyle='->'))

add_note(plt)   
plt.xlabel('Time (s)')
plt.ylabel('Flux Density (erg/cm²/s/Hz)')
plt.legend()
plt.title('Light Curves')
plt.savefig('quick-lc.png',dpi=300,bbox_inches='tight')
Afterglow Light Curves

Running the light curve script will produce this figure showing the afterglow evolution across different frequencies.

Spectrum Analysis (click to expand/collapse)

We can also examine how the broadband spectrum evolves at different times after the burst:

# 1. Define broad frequency range (10⁵ to 10²² Hz) 
frequencies = np.logspace(5, 22, 100)  

# 2. Select specific time epochs for spectral snapshots 
epochs = np.array([1e2, 1e3, 1e4, 1e5 ,1e6, 1e7, 1e8])

# 3. Calculate spectra at each epoch
results = model.specific_flux(epochs, frequencies)

# 4. Plot broadband spectra at each epoch
plt.figure(figsize=(4.8, 3.6),dpi=200)
colors = plt.cm.viridis(np.linspace(0,1,len(epochs)))

for i, t in enumerate(epochs):
    exp = int(np.floor(np.log10(t)))
    base = t / 10**exp
    plt.loglog(frequencies, results['syn'][:,i], color=colors[i], label=fr'${base:.1f} \times 10^{{{exp}}}$ s')

# 5. Add vertical lines marking the bands from the light curve plot
for i, band in enumerate(bands):
    exp = int(np.floor(np.log10(band)))
    base = band / 10**exp
    plt.axvline(band,ls='--',color='C'+str(i))

plt.xlabel('frequency (Hz)')
plt.ylabel('flux density (erg/cm²/s/Hz)')
plt.legend(ncol=2)
plt.title('Synchrotron Spectra')
plt.savefig('quick-spec.png',dpi=300,bbox_inches='tight')
Broadband Spectra

The spectral analysis code will generate this visualization showing spectra at different times, with vertical lines indicating the frequencies calculated in the light curve example.

These examples demonstrate the core functionality of VegasAfterglow for modeling GRB afterglows. The code is designed to be highly efficient, allowing for rapid exploration of parameter space and comparison with observational data.

MCMC Parameter Fitting

We provide some example data files in the data folder. Remember to keep your copy in the same directory as the original to ensure all data paths work correctly.

1. Preparing Data and Configuring the Model (click to expand/collapse)
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import corner
from VegasAfterglow import ObsData, Setups, Fitter, ParamDef, Scale

VegasAfterglow provides flexible options for loading observational data through the ObsData class. You can add light curves (specific flux vs. time) and spectra (specific flux vs. frequency) in multiple ways.

# Create an instance to store observational data
data = ObsData()

# Method 1: Add data directly from lists or numpy arrays

# For light curves
t_data = [1e3, 2e3, 5e3, 1e4, 2e4]  # Time in seconds
flux_data = [1e-26, 8e-27, 5e-27, 3e-27, 2e-27]  # Specific flux in erg/cm²/s/Hz
flux_err = [1e-28, 8e-28, 5e-28, 3e-28, 2e-28]  # Specific flux error in erg/cm²/s/Hz
data.add_light_curve(nu_cgs=4.84e14, t_cgs=t_data, Fnu_cgs=flux_data, Fnu_err=flux_err)

# For spectra
nu_data = [...]  # Frequencies in Hz
spectrum_data = [...] # Specific flux values in erg/cm²/s/Hz
spectrum_err = [...]   # Specific flux errors in erg/cm²/s/Hz
data.add_spectrum(t_cgs=3000, nu_cgs=nu_data, Fnu_cgs=spectrum_data, Fnu_err=spectrum_err)
# Method 2: Load from CSV files

data = ObsData()
# Define your bands and files
bands = [2.4e17, 4.84e14, 1.4e14]  # Example: X-ray, optical R-band
lc_files = ["data/ep.csv", "data/r.csv", "data/vt-r.csv"]

# Load light curves from files
for nu, fname in zip(bands, lc_files):
    df = pd.read_csv(fname)
    data.add_light_curve(nu_cgs=nu, t_cgs=df["t"], Fnu_cgs=df["Fv_obs"], Fnu_err=df["Fv_err"])

times = [3000] # Example: time in seconds
spec_files = ["data/ep-spec.csv"]

# Load spectra from files
for t, fname in zip(times, spec_files):
    df = pd.read_csv(fname)
    data.add_spectrum(t_cgs=t, nu_cgs=df["nu"], Fnu_cgs=df["Fv_obs"], Fnu_err=df["Fv_err"])

Note: The ObsData interface is designed to be flexible. You can mix and match different data sources, and add multiple light curves at different frequencies as well as multiple spectra at different times.

The Setups class defines the global properties and environment for your model. These settings remain fixed during the MCMC process.

cfg = Setups()

# Source properties
cfg.lumi_dist = 3.364e28    # Luminosity distance [cm]  
cfg.z = 1.58               # Redshift

# Physical model configuration
cfg.medium = "wind"        # Ambient medium: "wind", "ism" (Interstellar Medium) or "user" (user-defined)
cfg.jet = "powerlaw"       # Jet structure: "powerlaw", "gaussian", "tophat" or "user" (user-defined)

These settings affect how the model is calculated but are not varied during the MCMC process.

2. Defining Parameters and Running MCMC (click to expand/collapse)

The ParamDef class is used to define the parameters for MCMC exploration. Each parameter requires a name, prior range, and sampling scale:

mc_params = [
    ParamDef("E_iso",      1e50,  1e54,  Scale.LOG),       # Isotropic energy [erg]
    ParamDef("Gamma0",        5,  1000,  Scale.LOG),       # Lorentz factor at the core
    ParamDef("theta_c",     0.0,   0.5,  Scale.LINEAR),    # Core half-opening angle [rad]
    ParamDef("theta_v",     0.0,   0.0,  Scale.FIXED),     # Viewing angle [rad]
    ParamDef("p",             2,     3,  Scale.LINEAR),    # Shocked electron power law index
    ParamDef("eps_e",      1e-2,   0.5,  Scale.LOG),       # Electron energy fraction
    ParamDef("eps_B",      1e-4,   0.5,  Scale.LOG),       # Magnetic field energy fraction
    ParamDef("A_star",     1e-3,     1,  Scale.LOG),       # Wind parameter
    ParamDef("xi_e",       1e-3,     1,  Scale.LOG),       # Electron acceleration fraction
]

Scale Types:

  • Scale.LOG: Sample in logarithmic space (log10) - ideal for parameters spanning multiple orders of magnitude
  • Scale.LINEAR: Sample in linear space - appropriate for parameters with narrower ranges
  • Scale.FIXED: Keep parameter fixed at the initial value - use for parameters you don't want to vary

Parameter Choices: The parameters you include depend on your model configuration:

  • For "wind" medium: use A_star parameter
  • For "ISM" medium: use n_ism parameter instead
  • Different jet structures may require different parameters

Initialize the Fitter class with your data and configuration, then run the MCMC process:

# Create the fitter object
fitter = Fitter(data, cfg)

# Run the MCMC fitting
result = fitter.fit(
    param_defs=mc_params,          # Parameter definitions
    total_steps=10000,             # Total number of MCMC steps
    burn_frac=0.3,                 # Fraction of steps to discard as burn-in
    thin=1                         # Thinning factor
)

The result object contains:

  • samples: The MCMC chain samples (posterior distribution)
  • labels: Parameter names
  • best_params: Maximum likelihood parameter values
3. Analyzing Results and Generating Predictions (click to expand/collapse)

Check the best-fit parameters and their uncertainties:

# Print best-fit parameters (maximum likelihood)
print("Best-fit parameters:")
for name, val in zip(result.labels, result.best_params):
    print(f"  {name}: {val:.4f}")

# Compute median and credible intervals
flat_chain = result.samples.reshape(-1, result.samples.shape[-1])
medians = np.median(flat_chain, axis=0)
lower = np.percentile(flat_chain, 16, axis=0)
upper = np.percentile(flat_chain, 84, axis=0)

print("\nParameter constraints (median and 68% credible intervals):")
for i, name in enumerate(result.labels):
    print(f"  {name}: {medians[i]:.4f} (+{upper[i]-medians[i]:.4f}, -{medians[i]-lower[i]:.4f})")

Use the best-fit parameters to generate model predictions

# Define time and frequency ranges for predictions
t_out = np.logspace(2, 9, 150)
bands = [2.4e17, 4.84e14, 1.4e14] 

# Generate light curves with the best-fit model
lc_best = fitter.light_curves(result.best_params, t_out, bands)

nu_out = np.logspace(6, 20, 150)
times = [3000]
# Generate model spectra at the specified times using the best-fit parameters
spec_best = fitter.spectra(result.best_params, nu_out, times)

Now you can plot the best-fit model:

def draw_bestfit(t, lc_fit, nu, spec_fit):
    # Create figure with two subplots
    fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(4.5, 7.5))
    
    # Plot light curves
    shifts = [1, 1, 200]
    colors = ['blue', 'orange', 'green']
    
    for i in range(len(lc_files)):
        df = pd.read_csv(lc_files[i])
        ax1.errorbar(df["t"], df["Fv_obs"] * shifts[i], df["Fv_err"] * shifts[i], 
                    fmt='o', color=colors[i], label=lc_files[i])
        ax1.plot(t, np.array(lc_fit[i]) * shifts[i], color=colors[i], lw=1)

    # Plot spectra
    for i in range(len(spec_files)):
        df = pd.read_csv(spec_files[i])
        ax2.errorbar(df["nu"], df["Fv_obs"] * shifts[i], df["Fv_err"] * shifts[i], 
                    fmt='o', color=colors[i], label=spec_files[i])
        ax2.plot(nu, np.array(spec_fit[0]) * shifts[i], color=colors[i], lw=1)

    # Configure axes
    for ax, xlabel, ylabel in [(ax1, 't [s]', r'$F_\nu$ [erg/cm$^2$/s/Hz]'),
                              (ax2, r'$\nu$ [Hz]', r'$F_\nu$ [erg/cm$^2$/s/Hz]')]:
        ax.set_xscale('log'); ax.set_yscale('log')
        ax.set_xlabel(xlabel); ax.set_ylabel(ylabel)
        ax.legend()

    plt.tight_layout()

draw_bestfit(t_out, lc_best, nu_out, spec_best)

Corner plots are essential for visualizing parameter correlations and posterior distributions:

def plot_corner(flat_chain, labels, filename="corner_plot.png"):
    fig = corner.corner(
        flat_chain,
        labels=labels,
        quantiles=[0.16, 0.5, 0.84],  # For median and ±1σ
        show_titles=True,
        title_kwargs={"fontsize": 14},
        label_kwargs={"fontsize": 14},
        truths=np.median(flat_chain, axis=0),  # Show median values
        truth_color='red',
        bins=30,
        smooth=1,
        fill_contours=True,
        levels=[0.16, 0.5, 0.68],  # 1σ and 2σ contours
        color='k'
    )
    fig.savefig(filename, dpi=300, bbox_inches='tight')

# Create the corner plot
flat_chain = result.samples.reshape(-1, result.samples.shape[-1])
plot_corner(flat_chain, result.labels)

Documentation

Comprehensive documentation is available at Documentation including:

  • Installation Guide: Detailed instructions for setting up VegasAfterglow
  • Examples: Practical examples showing common use cases
  • Python API Reference: Complete documentation of the Python interface
  • C++ API Reference: Detailed documentation of C++ classes and functions
  • Contributing Guide: Information for developers who wish to contribute

The documentation is regularly updated with the latest features and improvements (NOT officially released).


Contributing

If you encounter any issues, have questions about the code, or want to request new features:

  1. GitHub Issues - The most straightforward and fastest way to get help:

    • Open an issue at Issues
    • You can report bugs, suggest features, or ask questions
    • This allows other users to see the problem/solution as well
    • Can be done anonymously if preferred
  2. Pull Requests - If you've implemented a fix or feature:

    • Fork the repository
    • Create a branch for your changes
    • Submit a pull request with your changes

We value all contributions and aim to respond to issues promptly.


License

VegasAfterglow is released under the BSD-3-Clause License.

The BSD 3-Clause License is a permissive open source license that allows you to:

  • Freely use, modify, and distribute the software in source and binary forms
  • Use the software for commercial purposes
  • Integrate the software into proprietary applications

Requirements:

  • You must include the original copyright notice and the license text
  • You cannot use the names of the authors or contributors to endorse derived products
  • The license provides no warranty or liability protection

For the full license text, see the LICENSE file in the repository.


Acknowledgments & Citation

We would like to thank the contributors who helped improve VegasAfterglow. Special thanks to Weihua Lei, Shaoyu Fu, Liang-Jun Chen, Iris Yin, Cuiyuan Dai and Binbin Zhang for their invaluable work as beta testers, providing feedback and helping with bug fixes during development. We also thank the broader community for their suggestions and support.

If you use VegasAfterglow in your research, please cite the relevant paper(s):

https://ui.adsabs.harvard.edu/abs/2025arXiv250710829W/abstract

Project details


Download files

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

Source Distribution

vegasafterglow-0.2.6.tar.gz (12.4 MB view details)

Uploaded Source

Built Distributions

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

vegasafterglow-0.2.6-cp313-cp313-win_arm64.whl (196.1 kB view details)

Uploaded CPython 3.13Windows ARM64

vegasafterglow-0.2.6-cp313-cp313-win_amd64.whl (220.1 kB view details)

Uploaded CPython 3.13Windows x86-64

vegasafterglow-0.2.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (244.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vegasafterglow-0.2.6-cp313-cp313-macosx_11_0_arm64.whl (205.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

vegasafterglow-0.2.6-cp313-cp313-macosx_10_13_x86_64.whl (229.9 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

vegasafterglow-0.2.6-cp312-cp312-win_arm64.whl (196.0 kB view details)

Uploaded CPython 3.12Windows ARM64

vegasafterglow-0.2.6-cp312-cp312-win_amd64.whl (220.0 kB view details)

Uploaded CPython 3.12Windows x86-64

vegasafterglow-0.2.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (244.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vegasafterglow-0.2.6-cp312-cp312-macosx_11_0_arm64.whl (204.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

vegasafterglow-0.2.6-cp312-cp312-macosx_10_13_x86_64.whl (229.8 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

vegasafterglow-0.2.6-cp311-cp311-win_arm64.whl (197.8 kB view details)

Uploaded CPython 3.11Windows ARM64

vegasafterglow-0.2.6-cp311-cp311-win_amd64.whl (218.6 kB view details)

Uploaded CPython 3.11Windows x86-64

vegasafterglow-0.2.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (242.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vegasafterglow-0.2.6-cp311-cp311-macosx_11_0_arm64.whl (204.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

vegasafterglow-0.2.6-cp311-cp311-macosx_10_9_x86_64.whl (228.4 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

vegasafterglow-0.2.6-cp310-cp310-win_arm64.whl (198.1 kB view details)

Uploaded CPython 3.10Windows ARM64

vegasafterglow-0.2.6-cp310-cp310-win_amd64.whl (217.8 kB view details)

Uploaded CPython 3.10Windows x86-64

vegasafterglow-0.2.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (241.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vegasafterglow-0.2.6-cp310-cp310-macosx_11_0_arm64.whl (202.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

vegasafterglow-0.2.6-cp310-cp310-macosx_10_9_x86_64.whl (226.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

vegasafterglow-0.2.6-cp39-cp39-win_arm64.whl (194.6 kB view details)

Uploaded CPython 3.9Windows ARM64

vegasafterglow-0.2.6-cp39-cp39-win_amd64.whl (221.7 kB view details)

Uploaded CPython 3.9Windows x86-64

vegasafterglow-0.2.6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (240.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vegasafterglow-0.2.6-cp39-cp39-macosx_11_0_arm64.whl (202.9 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

vegasafterglow-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl (226.8 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

vegasafterglow-0.2.6-cp38-cp38-win_amd64.whl (217.8 kB view details)

Uploaded CPython 3.8Windows x86-64

vegasafterglow-0.2.6-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (240.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vegasafterglow-0.2.6-cp38-cp38-macosx_11_0_arm64.whl (202.4 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

vegasafterglow-0.2.6-cp38-cp38-macosx_10_9_x86_64.whl (226.4 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

Details for the file vegasafterglow-0.2.6.tar.gz.

File metadata

  • Download URL: vegasafterglow-0.2.6.tar.gz
  • Upload date:
  • Size: 12.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for vegasafterglow-0.2.6.tar.gz
Algorithm Hash digest
SHA256 7cd734d6a39222bc42921c6f432295524ed7151eb646fb7498bc5fb5c07f7b8d
MD5 21e1bbc37de283231a9158d6f9a0440c
BLAKE2b-256 8201e363dce0cd6b53e6d7ee250057bc3e3908bcca937f0736f8e5a27dafc49c

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp313-cp313-win_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 ea911512bcdcd375c17dfd821c1101b276d5d11578530a9671cf3c4405af7e92
MD5 820bb8db7a16b687a0644689f7d67469
BLAKE2b-256 97d15d16989e8a23b28b89bd2834d877f991abb305a4baebd2d8830ca77fb13c

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6eb6a083776c67ada672b469460e060131d4edab90e5fdd1412a7316546fe762
MD5 69f3fa414760b60bafbfaa4a52f4210d
BLAKE2b-256 842322a105e831737e3238e5a0ce865c3172ea4bdc88820d4868eb63b926a302

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ec3e558cae63f5e71d115bf3799e804913cd1d80af051bb2d3735e06234c5ff4
MD5 bb3b5126cee3c0e36852112a7a6d5a98
BLAKE2b-256 738c7298b877e72055efd4fbecf436f264ed57d78332cf8a7bd8b3701188e57f

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1a58dce528ba170c8e825ffd25e2ea9195590ca859ae099a4a201f490b4be10b
MD5 3ce0af41252aeba485f4dc9459aab73a
BLAKE2b-256 b310ec125977f4ece101cbe4c79cafd9f28cec3c9608c5952f456997f4f4695c

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 3e4d2adbff0dda1e46128dd6f603025aeab4270d15345d777acb1631e3dc026d
MD5 eeab945ac99f8a6336b73c912e3b5d71
BLAKE2b-256 48bb4bf26e83439169c7448ff88746fc5ba4807d88f8ef09fad98c25ea58fecf

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 fa9be3d01ebf0667ca2f17b7b9e1ee2486ded0e12e7ff1c808cf80c3fd21e0db
MD5 41e0becb6ebe853156a19fe1dd47b42f
BLAKE2b-256 dbbd261df1f03a950ced1bebd1c743782955bb86c0e20ff6fd197cc7ebd20b2b

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 23958a0d27d9ed4276c431e630b706672a5917bb308f955a6c10fe8ac50a7241
MD5 3bede343a2260981bdf759d8c408e331
BLAKE2b-256 bc15a9cea8ab5b1ae8dc15fb43e036909ccb40b81e4cb9cc9744d4f92d5a853d

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 69ba1806fe57ec4d581646f47d11cf849464b3da7993e8d5f325bf6697952eac
MD5 6224bf194caa5f02fa941d0b45be35a2
BLAKE2b-256 eeb57bf4d1fe32980000ac5854781c9c1c10001ae0d4da4be2befd90e6dd6627

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c320cb0d5faef3cb9ed61598720b138fb1bac0a3f3f8d0304bcc0cfc5d824dd8
MD5 0d20a12d509f49481a89be1f4472c576
BLAKE2b-256 f6a1a01c04e77ec9133ec49d9bc57e7b7ffd72408e8883c2dbcb236277a212cb

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ddf184b163d46a6de934912209ee87e95de36a7ac85a3cbb8eaf1b98dcaf71bd
MD5 b2b9d0f584d4b1a142f2fa5a5129b3cc
BLAKE2b-256 f16b12b3b968ea50d2a75bba35f20099a13b989139810b278a1dc8f83f738f0a

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 1688ad0a6c1c374c6bae6e3abadb96adcce726f331997449d6bca081065ec653
MD5 5d04089ccb27c44cc729edfd8c8720e9
BLAKE2b-256 38256d84866d751627de24054d6c02fb758400980f2893255a87979008d31a92

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 71d627afc85c51c7054e9cffd69408c92aac7ba1ea38e688ece4d0906df9e8b0
MD5 2edb91d32d7ba22e03e17e4573265f2d
BLAKE2b-256 4e4a2b84201b4e7b8abc91ae0c7d860c5daa5aabeb554eb75228da72f02b9fcb

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 914814dd539718fb772b4e33b39178137cf19371d8294b75343e0c2a29eb716c
MD5 83df722494cffbfaf0ba75feb79bb504
BLAKE2b-256 2cab8d19e678891aa21832cf1eecd290fff3d410215312fc0cbc98ee97f5099c

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1a61db12f202e9be19ab0a03119715bc50a275e4f54f7e7c84c57e7a17d1f2e0
MD5 656539c276546229d6bea9c4d6e8843f
BLAKE2b-256 707f3d76ac414e5ab6e91b630ce0cfe3b3a64eb855a38ad9ec9ad408bbfd70ab

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 27c6be6b2314400ed8eec434311cd0161b57aca4663654bf302dce245de28a40
MD5 3e38d98d6580edc7aebf9053291bda69
BLAKE2b-256 8b43e32527eba9d68683bfe2de550ccda68f17462101e74bd4c00c3f59ed04ca

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp310-cp310-win_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 da06909834054dd14978cef67f100f2970bdd38a33120a7a5a4cf82155a16927
MD5 dfd5e6182064f908209281704514225f
BLAKE2b-256 f10a4229f74d75cabfd195b4865b670578939b7e34219fd8e545c59c048e3025

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 34ba3d02db06b46fa17dbc57b386eff1d9b1a3419c59d73040eae9881da1c629
MD5 b3ea56b9747dfdd0d87d4dd6d0de3a29
BLAKE2b-256 1d708d07eb9ca1a86e349cecc4fbb771dff87f22fc695c2721875a3f0cc2dbbf

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1124b0319444f3d80ce23419deb9cb10a6c5d3236842012ff1c437385422ead2
MD5 9a31d54018401b862699ef3ad527df42
BLAKE2b-256 af195c0956ca6faad02fb2996f5f61eec0e8bc2888abec9bc999aa70b16528a7

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f1df43a188c0aff1a3b034daf1e55f3b8466bbacc4c59adb9e7200bdafcbd091
MD5 5fdb90de905d329c4f04b8759f07231b
BLAKE2b-256 aa8cf1120bdb2fcf5ff3dda0bc6876ba68a78acaa6c291c5d61e09dd3746dfa7

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5ffe8a32303862838d7f3a38c98e68e840f066a2834a2051b3a52500115c9c03
MD5 2121f9d8567280a963a55f337948f436
BLAKE2b-256 e131b80f01881af214b0b68f432783089acd17f516d20ef082f93e1110d19a98

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp39-cp39-win_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 5c3804f5dc32a43100bee7df659c01835d3193e17ce0ac9f5d31d3c77d6d08e8
MD5 a6cd4b1e2282ebbb982945a814025fc9
BLAKE2b-256 cb73eaee43ad4548598f60827c4003f3b74bc17d0e845fd6df38334c69ce665f

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 6142983221139555f210c18d21b2e9fb4c08e1d9fe005d9a9935d49f692df960
MD5 80f5b2ff28975c3acddd2bacdc8fc07a
BLAKE2b-256 9050fa1d84be5985db476b300b6acc7bbafcc65da1dac255d9c1e77104292b1e

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 351031951bf81f9239e561d90ee7b18cf789dbba76b67b7689e9820c4b70cca0
MD5 a381b8a34021c862d0fc8bfea883a2a3
BLAKE2b-256 d76d2b62c01c51a740cd9e2103959e0bfab6bc988f96107bc6427f3345edd429

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 65e2363dfc2e04a5ed3466cc1e7868413dc901bce0bb4c40f6100bd28aeb0410
MD5 78cd2726cd6bbb876e5417b1a87f3029
BLAKE2b-256 d906fdc3bb0d58f3ee878583190fdbb5af9ef5f0fa41e490d174a8479265bcfc

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b3f0f0593cadf375175e96b6e5e40f48c36e7a68d12a190b32c9a9ed38b73af1
MD5 3fe93b534265af512bc96720f21e68c5
BLAKE2b-256 1c2d4167018e288d037624e6e4d898c670f5328ba182f13e495069d1a74dcb23

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 bc7bfbbc023476440b884b943687bf80b37409dd3c9ab4cbd1efb5d062ddec9f
MD5 52ba49993586533da514625bb4642f44
BLAKE2b-256 a7cd23ceee59df20c6df805b2ccb10a95ce98f069b7e8f7af4dba342bfeb9d5f

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dba4f568eded6352fc2f7dd82b0efb7281de0404d52f0a669e29acc0d71a16a4
MD5 042c2ac4e470805542346b796c014e48
BLAKE2b-256 5283b63d7c4c6200398558eb1ee498b3ed898350f95108094ccffdd1ff0229f6

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a640b38b7f240ccf2ad608787409d5d988a94738d4f81c2331ed850937b3cfe0
MD5 1350db5291caf094cf8759a92144be95
BLAKE2b-256 3349c8fa7f4f3ce5e9400f1e2d5bc37b5bcd5474d52c94e6749e7668280d71be

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.2.6-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.2.6-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 98dca1c89f6acbb305eda7de3ea174643e67d1c69d655a7451d0ebf1e762a9ee
MD5 52ecee35c2f88135b5cc8608c8ad5286
BLAKE2b-256 7e7f7537898f16f092be31027f3e36d9cbe56bd124af1b316ce94ab57e3fe203

See more details on using hashes here.

Supported by

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