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, 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.5.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.5-cp313-cp313-win_arm64.whl (194.9 kB view details)

Uploaded CPython 3.13Windows ARM64

vegasafterglow-0.2.5-cp313-cp313-win_amd64.whl (218.7 kB view details)

Uploaded CPython 3.13Windows x86-64

vegasafterglow-0.2.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (242.5 kB view details)

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

vegasafterglow-0.2.5-cp313-cp313-macosx_11_0_arm64.whl (203.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

vegasafterglow-0.2.5-cp313-cp313-macosx_10_13_x86_64.whl (228.3 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

vegasafterglow-0.2.5-cp312-cp312-win_arm64.whl (195.0 kB view details)

Uploaded CPython 3.12Windows ARM64

vegasafterglow-0.2.5-cp312-cp312-win_amd64.whl (218.6 kB view details)

Uploaded CPython 3.12Windows x86-64

vegasafterglow-0.2.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (242.2 kB view details)

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

vegasafterglow-0.2.5-cp312-cp312-macosx_11_0_arm64.whl (203.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

vegasafterglow-0.2.5-cp312-cp312-macosx_10_13_x86_64.whl (228.2 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

vegasafterglow-0.2.5-cp311-cp311-win_arm64.whl (196.3 kB view details)

Uploaded CPython 3.11Windows ARM64

vegasafterglow-0.2.5-cp311-cp311-win_amd64.whl (217.3 kB view details)

Uploaded CPython 3.11Windows x86-64

vegasafterglow-0.2.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (239.9 kB view details)

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

vegasafterglow-0.2.5-cp311-cp311-macosx_11_0_arm64.whl (202.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

vegasafterglow-0.2.5-cp311-cp311-macosx_10_9_x86_64.whl (226.7 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

vegasafterglow-0.2.5-cp310-cp310-win_arm64.whl (196.6 kB view details)

Uploaded CPython 3.10Windows ARM64

vegasafterglow-0.2.5-cp310-cp310-win_amd64.whl (216.5 kB view details)

Uploaded CPython 3.10Windows x86-64

vegasafterglow-0.2.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (239.1 kB view details)

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

vegasafterglow-0.2.5-cp310-cp310-macosx_11_0_arm64.whl (201.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

vegasafterglow-0.2.5-cp310-cp310-macosx_10_9_x86_64.whl (225.2 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

vegasafterglow-0.2.5-cp39-cp39-win_arm64.whl (193.4 kB view details)

Uploaded CPython 3.9Windows ARM64

vegasafterglow-0.2.5-cp39-cp39-win_amd64.whl (220.0 kB view details)

Uploaded CPython 3.9Windows x86-64

vegasafterglow-0.2.5-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (238.8 kB view details)

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

vegasafterglow-0.2.5-cp39-cp39-macosx_11_0_arm64.whl (201.2 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

vegasafterglow-0.2.5-cp39-cp39-macosx_10_9_x86_64.whl (225.3 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

vegasafterglow-0.2.5-cp38-cp38-win_amd64.whl (216.5 kB view details)

Uploaded CPython 3.8Windows x86-64

vegasafterglow-0.2.5-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (238.7 kB view details)

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

vegasafterglow-0.2.5-cp38-cp38-macosx_11_0_arm64.whl (200.9 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

vegasafterglow-0.2.5-cp38-cp38-macosx_10_9_x86_64.whl (225.0 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: vegasafterglow-0.2.5.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.5.tar.gz
Algorithm Hash digest
SHA256 12b0e2d21b61d8d7972a1aafbf21d3b997cd37165ae4a1b9eded77d259bffe09
MD5 ad0e3dfbd5f635f59ae70551fbf13030
BLAKE2b-256 6f9104b7fa699641a28045bf3b9391998fa5aac138c3d48b6bbe18f0979ca576

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 1776b14af0427e48db816150dabb8411f59ad1ed4c9c57281b009b1573423e2a
MD5 bf4ae4311bc86f2851d9c440e2bac495
BLAKE2b-256 4445bba946c417ecbf2c685e29a22cab76e2177925df23bf68b2cb0594b93a60

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 388e09420006ded70684f19af4ae993209b500c109dd26b9a4b06d20d1205514
MD5 ef1d0e473901f8a1368192d272b46742
BLAKE2b-256 33e79d1926a9f8ecdb6377e4bfff48d0b9feca0c0970e35177cf4843df10161c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b662d447300add861744ae8b31a2d67d651be1950a0460c0af8871287edc530d
MD5 7a3042dab8202ede545a8b9cb2a3e0d8
BLAKE2b-256 88ec2244ffbb8855a312723a680d1694450a4e9429fc7d9357a88f0fcdace847

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0636360af1bbc3253c2df1bed3db7c5505aa8738a51c847853858a6b61412ee8
MD5 92bb82677203147ddc69be10465d0e80
BLAKE2b-256 ac3f2f104b0733431c60b11f23776b3322fdf278939dc992edc5dee698983d9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b89ec789804b2a4e0665ddc6c1c2151d5167dcdb568eb5f3f46d8d096b818716
MD5 7f1d2d4e13e78aec43f3926b0f30a34d
BLAKE2b-256 cc870344a433528a0ba7d8836865b67744b8371bcde7bb972fd347b239fd9cb1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 6294337d14f60280ae1a18923fba3b38cef06da801aefd874525d314da06c2f1
MD5 2f13cc2111705dac4286c2f1995cbe2d
BLAKE2b-256 686bfa407dfa6510a2da006071e0add68c2a924bc7d6c3b7ede9f5c7582b198c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1dfcbf1dbdf3d8bcca6db91eaf13e8ddeda03dad2bdf5a25585eb3c8f78ad0df
MD5 d639979c7a90ff8940459985db9b65d0
BLAKE2b-256 9c412654798cf7e700b43ca777db3d4b153610b0f866dd087e4b59bb226f1351

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5330af12b2df813f252f0200db2cc06d8e74d4f73cb34b8cf685291ada364026
MD5 4220f94eda86312d2dc1de389f796af1
BLAKE2b-256 4d39dee326b400396bfe4991952ae8c20fed189383aa8f6c61cbe9a9945453da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8ed506696a4b7219c3d305c3f0b2285aa52f4b5d998354c7a599ccbdfa82f68a
MD5 3e82fef64db653cbc41e44afad69a694
BLAKE2b-256 86f489a95a4daa05ba030eda2137c2ea88435c2873069af3e0fb2cf50220b2bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 148b37212b56a2a5223854054b1e24814241d2981d87e6d75178ded3cad4a5c8
MD5 ed54713026d0260d605bb50beb814d9f
BLAKE2b-256 8c19601a7fcdbc470344ea73fa3f2f0ab220c933897117702b8e39cc3180108d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 54ad38973bb11d13cec13d4b13b1acf0352db1e3637ff662507ad6b4692bb177
MD5 6e15920bb9d072d0ece1135ce53e807b
BLAKE2b-256 c8fa9962656ca2d126eb1cef0c1763799f610b5b71470e05096b4d6de7bbd992

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6d9162e22f58aac3528f00fa33080cb56c5c43c6d997d2bf0ca68db4b01cefaf
MD5 213857a16481d9055f0016fbf18c1668
BLAKE2b-256 4f98c944d0ebc5d1b896ed07a2ec158cd2a71136ddb48a2dfcb844efdb01e146

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eb4b85e44af796c070d4d0f748a66b2ea101a465daf1d4fe9c239b5c3386dba0
MD5 6e9bc69da02a5a0f3de15132b4e846a4
BLAKE2b-256 ddc90f4873bb3cbe6322ad93cc0d77df2562efe270cce3adb71725f455ed6528

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b989b37564ad609f74085b10f9302ee988205ff75dd7863f21973cc2b17ab2c6
MD5 afdb22e3d1add240bc1b11e565bd878c
BLAKE2b-256 e3daf3b3dd4ba78b4120e3665f692c6da56aa467b3b541130e0c49dae0ad95d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ed5917bd72cd5bfbae5b75abaf7fb1644077ab086bea18b8d9cde34f270fbb26
MD5 a6a82ce3c9e92b26a2442edb5a7baecb
BLAKE2b-256 4ce115972c46e9190660e51a591652c71b0e112748aa2466dc484621defce922

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 1232ec8775b646b267d40493817bba548a89ba5fa8d2d6b8c60854e4e6d1263d
MD5 9670896a3c8cd1b69e84857377371ada
BLAKE2b-256 4be45b63581dc725007d82dec20aa1ef0b8251cc3d46056c1622f058e22f41b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 09caab761f600fafa6f53bef340d8c0b8481148dac3688cc3b450f9946fb46e1
MD5 aa3b2ab41230fc537ec91c221375019b
BLAKE2b-256 999d9662dd40b45dcdd088e6d3f7c485af1dc3317f777aa58541107385a1dd91

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a804eb9b893ecae446275ed281c71fbbdad5a60ccc3fc70d7421f1963d12b486
MD5 a3822ac0071bd92ad193180d7f707ee7
BLAKE2b-256 016ffcbe5e24ab508f596ced5dc9b9d0a99469385d3921d185b1155be80d5d7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c6a28551d1e33dab67feb57de0129708b07c2888408103c455a6958ed2dd93ac
MD5 fe81451499bdfee3e97cb1bede0fa71c
BLAKE2b-256 6a3f192ea1b4f4cd6cf8c210cf8dc60057e0d59976c83da86c89c3c7d94cde8e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9e747d52fb9d975bcb58a8e9c23c36183f5cecbee7d36f618739e298563f86b7
MD5 b329920c772c85e300ac59b4bc6b4b85
BLAKE2b-256 2470ec0cab402b9c3bf1ce5a6526143c66336f5ab95e912e0f7e4b8dbdf19c50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 c5c0086bc928e876bda0fe991f5c28e31696a94f55213df9a2524f5d938909c7
MD5 0a0afd745112a92378d9464f7048bda7
BLAKE2b-256 6f0a5c125759c0eb9aa2bbde9440a6d3bc51c1b2e3c7d831529b91f070a20d98

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 aaaba0dc2d177559c5bf6db16acd2ac7fdb7f256488ce8e1a416d87ad3a8d652
MD5 a8979eda99e89b4d2a2dd0dc2b3f3e4f
BLAKE2b-256 71e044e43c40a76b1c7701a347b41d6cdba4fb8a27b2bc8e5cbbb26b39ccc6ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0a3b98638f82756543e9db064ac37f626fadff7303bee76dedf34d41ebf911a0
MD5 27dd9d68a8de2c2eab081d0ff6d89ab7
BLAKE2b-256 99c842b6ed033ee78af965854323762542292e451dc699fd687702c232f2d7d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ec22f39b253358484e63680d35e21dcdd4775f29209d19bb66d9cdcde81b7979
MD5 2e89475de16c65147c8f3912a57bf0e4
BLAKE2b-256 f86f989442dffda87a29266679ab31a167dd1d919a9723f0b60fdf8708fefc66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3ea168e3dc07e37137742cc23e68f801ae210bbf1e1c90865252cabfcf366ff4
MD5 514ef48b21956da1bb1d42dcb7bce56e
BLAKE2b-256 51c010f1f8c974493b04386c38bdede183c95d01f1057818c40423d36d202d16

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 af05826d7402334e44a740283970a6b93f92e0453ee18468d98866c4e5c94fc3
MD5 44fe1410e802a3b10cd94657ada10f40
BLAKE2b-256 9a4b708282dc5a6649a55be684aa3a972a42aaa90149e44bb2c8ad0d8423f2b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3d7221f130840bcd0b631b28b01dffe62337c1113cbfa49af0f56c31f2aa2d91
MD5 afff60a1eb0f55ee2b126521e6578c50
BLAKE2b-256 566eb9e65e65cc47dca5e783d8e232f774a618abd1700fc8dd633b6b27b2307e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2a4c42f1383592c4e58f4ae6cc26509ccc7950e03f7a18e68be7de351610db1b
MD5 97bcefacfee0bca5051f381fffe4bece
BLAKE2b-256 c53ef6f9e1aa66cd1e80699d9c1d2c1ad01fee4101a36861cb5154eb210115d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.5-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b2347240100ae5b41723c0609379fcdf7210463ee207a4348d85e1b0853dcd19
MD5 e91b41661d1f438492a25bccb76658fb
BLAKE2b-256 9189f7c67ba54629ee87a0d73f60438cadd9340482b08a3f21cd09d16458083b

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