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",         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):

If you use specific modules or features that are described in other publications, please cite those as well according to standard academic practice.

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.4.tar.gz (12.2 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.4-cp313-cp313-win_arm64.whl (189.4 kB view details)

Uploaded CPython 3.13Windows ARM64

vegasafterglow-0.2.4-cp313-cp313-win_amd64.whl (211.9 kB view details)

Uploaded CPython 3.13Windows x86-64

vegasafterglow-0.2.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (236.3 kB view details)

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

vegasafterglow-0.2.4-cp313-cp313-macosx_11_0_arm64.whl (195.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

vegasafterglow-0.2.4-cp313-cp313-macosx_10_13_x86_64.whl (217.1 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

vegasafterglow-0.2.4-cp312-cp312-win_arm64.whl (189.4 kB view details)

Uploaded CPython 3.12Windows ARM64

vegasafterglow-0.2.4-cp312-cp312-win_amd64.whl (211.9 kB view details)

Uploaded CPython 3.12Windows x86-64

vegasafterglow-0.2.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (236.5 kB view details)

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

vegasafterglow-0.2.4-cp312-cp312-macosx_11_0_arm64.whl (195.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

vegasafterglow-0.2.4-cp312-cp312-macosx_10_13_x86_64.whl (217.0 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

vegasafterglow-0.2.4-cp311-cp311-win_arm64.whl (190.9 kB view details)

Uploaded CPython 3.11Windows ARM64

vegasafterglow-0.2.4-cp311-cp311-win_amd64.whl (211.1 kB view details)

Uploaded CPython 3.11Windows x86-64

vegasafterglow-0.2.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (234.7 kB view details)

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

vegasafterglow-0.2.4-cp311-cp311-macosx_11_0_arm64.whl (195.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

vegasafterglow-0.2.4-cp311-cp311-macosx_10_9_x86_64.whl (217.8 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

vegasafterglow-0.2.4-cp310-cp310-win_arm64.whl (190.0 kB view details)

Uploaded CPython 3.10Windows ARM64

vegasafterglow-0.2.4-cp310-cp310-win_amd64.whl (210.3 kB view details)

Uploaded CPython 3.10Windows x86-64

vegasafterglow-0.2.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (231.8 kB view details)

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

vegasafterglow-0.2.4-cp310-cp310-macosx_11_0_arm64.whl (193.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

vegasafterglow-0.2.4-cp310-cp310-macosx_10_9_x86_64.whl (216.1 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

vegasafterglow-0.2.4-cp39-cp39-win_arm64.whl (188.2 kB view details)

Uploaded CPython 3.9Windows ARM64

vegasafterglow-0.2.4-cp39-cp39-win_amd64.whl (213.7 kB view details)

Uploaded CPython 3.9Windows x86-64

vegasafterglow-0.2.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (231.9 kB view details)

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

vegasafterglow-0.2.4-cp39-cp39-macosx_11_0_arm64.whl (193.7 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

vegasafterglow-0.2.4-cp39-cp39-macosx_10_9_x86_64.whl (216.1 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

vegasafterglow-0.2.4-cp38-cp38-win_amd64.whl (210.1 kB view details)

Uploaded CPython 3.8Windows x86-64

vegasafterglow-0.2.4-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (231.4 kB view details)

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

vegasafterglow-0.2.4-cp38-cp38-macosx_11_0_arm64.whl (193.2 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

vegasafterglow-0.2.4-cp38-cp38-macosx_10_9_x86_64.whl (215.8 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: vegasafterglow-0.2.4.tar.gz
  • Upload date:
  • Size: 12.2 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.4.tar.gz
Algorithm Hash digest
SHA256 d104ffdea41fe491b20fb40b2a41eac810321331ced51f5bc16045a36926edc7
MD5 8ed43c50ffab8a2b848d78d72e547036
BLAKE2b-256 c925f6092b4d1876783a61dbb70d7165a684e6096d4633943c9467eec789f2d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 5e35efe41d6e4616f67477c1010146080c7dacbc8e0193d3c84ba45109e957cb
MD5 1c242263ee7584165c86a3f2e5998a95
BLAKE2b-256 9333b2abd31c368e91716214d91022876d9a6f3f17f09f02953895b9008ab5c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e2272759bd15e227ef9d68615dcd8ac6d24b6ddfa4ae871d4ed0fcc4c84b996e
MD5 a52283258a64819ca65fb6e9891a522e
BLAKE2b-256 9d66fc7773f4938df3b66df1a6d71a246419e9206c2e69852aa652c9e09aab9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a1675daf5488354bb8dc9e534add77ac7ebbc6e0d7a0e3d4d92b3f8236f72b82
MD5 fdbeef216a89fe80bb754ec0af9c62b4
BLAKE2b-256 b772ed0c921bbe7f135fca311d0785e5fc5c237fc9360406a413ae665387138f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8ddcbbc9d336e5951d5534682204a331bfc6c73fb8833067fe53b29bb40d3cca
MD5 26b98d67b70bbfe3141626e33f339b82
BLAKE2b-256 f7dc3136d4b0a79736dbcb325212b9a6f3ca5c8c6ca191f9a5c9004c02ffc54c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 25b30e8c875b141cd4f2d8efdaa8f802a8962d2324a969de6201c15c98321b91
MD5 2e7cfebca268e3276c31624ca170a3d4
BLAKE2b-256 5925814f802e0bb781e0288006b31381bc556b15ecb7591959d7e9a72858d6d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 2aadb249bd87b91499bfcb2a408bf2e46898b4b7d3b8d24f75fdc6019d82cdf7
MD5 c06d5654466fedadcadd5ae27d76c306
BLAKE2b-256 f8280ac674e7afb87612cee79ce670629dc0e6b859140b0ef8612e1c6cb57cba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 275ed540d6480d2eac1057411b4d6228bbaad93e073ba745c30c0dce52537e28
MD5 2f225372affc93a75f25cf9d2522f87e
BLAKE2b-256 0644ddfda6002d24fb770dbd0113df2ead62768ec9ba839dc06555360eeeb6cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e162874f7c40fe29dae605b8e92e1008123bce06057a1ff3377d812e081a6ff2
MD5 6579c44b3c4237fa66159886b6d44d51
BLAKE2b-256 bc66f292d56007cefd60a02b16de3a5d37c82b6b91b8c9f2a4a74308117322a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1b0ff12a528083b59468563893f7494b2ce9ff387c5922288de29fe6eebefce1
MD5 144465574a610d7182bba0cc9debe24c
BLAKE2b-256 865118bc93505592ab371b9663fd826b7b0f46080c04c7601cdb488b321d64a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d5d0b3a075f4901a1f54eb2652f4ccd3ba5b65d01935ddacd688b08c449aa2ee
MD5 515916b2d2e2c1c8fcbddf17afc7384e
BLAKE2b-256 aa6405a1ee8dc036ba542050ff2e29d104961502f77c87f99891a81c33074055

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 a5ea5ee6cf208b317674257c89dca42d326b635951890133cff0bb36390435aa
MD5 15c3995fb53a94b2085bb0fbdc5cabc7
BLAKE2b-256 bcad90e3fe63078d652283522016e65778f583606cad8d06dcb542a67f584351

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b67a75d88a3ff9da8e94304e6c76d54ed9d6f67f9f50356e52165c0a3c8a933a
MD5 c2f9f64be01f0cf70112e298e32029f0
BLAKE2b-256 1a9faca263ac81d85b245c6a2483ccef46e5604a8a02ddbbb40d8dfd284cc1d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bb37df4bc8285995ee4fdf4ba55b1cad60747ea392219a8e7c5906bd399fb23f
MD5 a5951e9e38e5dc1ecae0dc00d84f8d55
BLAKE2b-256 e0caf75834b8897f8ad6f6e87af99fe1be9a458a3c953c83741dee87319c78fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 762f70cb7b9a09fc8d43a69f3f2b9248689d09f1f67ea06e9aa424bc1ac8d892
MD5 83f83b6bb0a0582d5615d6ba16800d55
BLAKE2b-256 158dd1fe04917ffc096dba9ff52abcdf5e7d20a044063aa853d96f6328cf02d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 98426d5c10808a214618d780a73492755c248cd782fc4bc262a1db089493bb33
MD5 6e014623daf3733f779a3fbbec6f9d80
BLAKE2b-256 0afd1cff230d6f32bd745a018f9ce633d08f922b970eed1824356c2143bf9ac2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 fecadbe6632fc82fc11893106ce088c1f6a7ec2833c44e4998845720886ef063
MD5 075e3e8546b4ff7728efc5f7a64543c9
BLAKE2b-256 bc492bc95f463e71e47bc6c64df74edcdc5287e8f7a97e5c165ce7ce78214966

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 51a17a8e0b250ac56c9fa71c72b1fffa4dd0e48977a9b7e2e7ef7d5a8ca2fb24
MD5 1f0169a55ebc9f0b4cb73112bb345072
BLAKE2b-256 df2858bf72db1b82bc1f18b487115df5ba20e0789cc34929f4378ee70be3875c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 98b80c713bfa194d5179fc9dd05d8dfc705f6e94c2b737c0219c6ebe3110f591
MD5 1561e6a9e4feeeacea338ef8eeb73f54
BLAKE2b-256 ae33dc36267bc482bbac776c9cc09155329b8ef52897479ce1178ad39463a609

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 86f8bc335943ac09bfcbdb707d72678f7d2e92e3ccd91372e52bef71f645ce67
MD5 2c31e998d0b429a3e8c42b5bccdfd479
BLAKE2b-256 af40eaf8e4b7e5965bac8f1c62620cdf98237c3bd939d23b91f3e7e69607c557

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8d2bea281541cf779de2bdf9680bb65fd7b99025b8ab8af79503efac9c6fb218
MD5 d29940ae57b9104c4f4ad92387431ec5
BLAKE2b-256 5453ad2bc2fd7513fa19acc4eb191f21f337afdd7fd1ea79da4cf55a8cc8b494

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 e5e1ea57e160681896b09469a8b7b3af498d821fdf68119d60d1382c5887461e
MD5 67d6d0d2438f685d3210c137c6c23df2
BLAKE2b-256 3d90c5a2c411942890474d8b9882de28a71d350379fc451b1c772f645591adb6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0b58c973a34188b1ee7d440533c72f3430d564a771915af5eb1f3f952f9be0ff
MD5 fe640d28cd304818152175f88ccc6b77
BLAKE2b-256 4a234a8c1668bc28020bf16fecfd75ba641cff7a36fade38409e4a27386e0f18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bc2110010df7b50c648bf876f438261f93520f917187612905c30dd2e54fbe3d
MD5 30e79e701b6eb147b8d8116d85782247
BLAKE2b-256 63f0577415cf852f59abba038e32545067c976443c2282dac6999b4c0030cea2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 df57a03644f8d13fe5af18f2125d4d61d1618689ef3988a0f973f952636716a5
MD5 ca30f3b488321d4645b8dfdf5db8fa00
BLAKE2b-256 ad6bbd321574311f075d25d70e6ff90f4efe6af9a7bfa59588c2b4ac4be27772

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bd5c1bc5e8d93afa5d8863e367728dc72785c0f177a95d4a46075f07793648ba
MD5 25b4d586b9d70694e4f9e6527678294c
BLAKE2b-256 b14040aab36e40839cbd537d00a574bb1f5e8a6758c35e019a2fe8fcd480128b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 05c56f7b96eb2d8fe6b87373c363adc66b6ceb0dd699094c786f2ea8ffa0df1e
MD5 5e84dfdee8d8f57d50852b95a80ae5db
BLAKE2b-256 b1e63bf04495ec7f07e7628006a21a7e97482231ff439e2d6d6b6145bd53adf9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 235d779370c6aec105d3d7a662dfeeffd0debc8553f18ec4c115b18602a18eb2
MD5 356111c11de0bc3f5cb95c56a029e037
BLAKE2b-256 a5fef7afda4b0e406a521a53163695bbd13010f0650a4417cfb582d0a1ed33bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5de8bc83a45a524887431aabad2f5acb55cdaddaaed63b4823009a409f1b7e3a
MD5 fcc887271285b52f4249ca400e3f8dbd
BLAKE2b-256 9733fe7182be6224f0e4582a686e3e7f1facf35886dadb6123f347d892451ed4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4c9805eb9f4792d33e921b69ae823220bbc0f2f4733170b8d37239efc79ce984
MD5 c8e32d7537fcfb80ea12be1d60e959a7
BLAKE2b-256 fc68a016b6830c010b4b88260b6c0e4d6ec2c5403010844162972a9c659ecc44

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