Skip to main content

MCMC tools for astrophysics

Project description

VegasAfterglow (under construction, stay tuned!)

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.3.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.3-cp313-cp313-win_arm64.whl (189.2 kB view details)

Uploaded CPython 3.13Windows ARM64

vegasafterglow-0.2.3-cp313-cp313-win_amd64.whl (211.7 kB view details)

Uploaded CPython 3.13Windows x86-64

vegasafterglow-0.2.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (236.4 kB view details)

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

vegasafterglow-0.2.3-cp313-cp313-macosx_11_0_arm64.whl (195.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

vegasafterglow-0.2.3-cp313-cp313-macosx_10_13_x86_64.whl (216.9 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

vegasafterglow-0.2.3-cp312-cp312-win_arm64.whl (189.3 kB view details)

Uploaded CPython 3.12Windows ARM64

vegasafterglow-0.2.3-cp312-cp312-win_amd64.whl (211.7 kB view details)

Uploaded CPython 3.12Windows x86-64

vegasafterglow-0.2.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (236.3 kB view details)

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

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

Uploaded CPython 3.12macOS 11.0+ ARM64

vegasafterglow-0.2.3-cp312-cp312-macosx_10_13_x86_64.whl (216.8 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

vegasafterglow-0.2.3-cp311-cp311-win_arm64.whl (190.8 kB view details)

Uploaded CPython 3.11Windows ARM64

vegasafterglow-0.2.3-cp311-cp311-win_amd64.whl (210.8 kB view details)

Uploaded CPython 3.11Windows x86-64

vegasafterglow-0.2.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (234.3 kB view details)

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

vegasafterglow-0.2.3-cp311-cp311-macosx_11_0_arm64.whl (194.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

vegasafterglow-0.2.3-cp311-cp311-macosx_10_9_x86_64.whl (217.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

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

Uploaded CPython 3.10Windows ARM64

vegasafterglow-0.2.3-cp310-cp310-win_amd64.whl (210.1 kB view details)

Uploaded CPython 3.10Windows x86-64

vegasafterglow-0.2.3-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.3-cp310-cp310-macosx_11_0_arm64.whl (193.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

vegasafterglow-0.2.3-cp310-cp310-macosx_10_9_x86_64.whl (215.8 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

vegasafterglow-0.2.3-cp39-cp39-win_arm64.whl (188.0 kB view details)

Uploaded CPython 3.9Windows ARM64

vegasafterglow-0.2.3-cp39-cp39-win_amd64.whl (213.4 kB view details)

Uploaded CPython 3.9Windows x86-64

vegasafterglow-0.2.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (231.6 kB view details)

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

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

Uploaded CPython 3.9macOS 11.0+ ARM64

vegasafterglow-0.2.3-cp39-cp39-macosx_10_9_x86_64.whl (215.9 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

vegasafterglow-0.2.3-cp38-cp38-win_amd64.whl (209.9 kB view details)

Uploaded CPython 3.8Windows x86-64

vegasafterglow-0.2.3-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (231.2 kB view details)

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

vegasafterglow-0.2.3-cp38-cp38-macosx_11_0_arm64.whl (193.1 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

vegasafterglow-0.2.3-cp38-cp38-macosx_10_9_x86_64.whl (215.6 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: vegasafterglow-0.2.3.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.3.tar.gz
Algorithm Hash digest
SHA256 d7f3d5595085b0267cda2d57bdce1fff7c843645e808344046f79369afbd1def
MD5 e6da0c488fc4355f4297a742660540cb
BLAKE2b-256 8defbbf3b60a0824aec735a1b02ab03a790bfe80f342d5fdb602cc8887d94d34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 a29b5e0a69dbaed5fa9a93bd003fbcd05b25152ee7a0a0a7fb219f83f6b919c7
MD5 406a86a10a35d64a8b97018c5c9cc777
BLAKE2b-256 898011233d7390f6d4343df67e1f57f7a461563bc2e5f330a0e9c7e1ff248ce2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7d57af83fc308ef91b4f77e684734fa1c95c76e603e511168ecc185e4d9e2fb9
MD5 64ec14eb9cc4fcd0c6935ef694150ec4
BLAKE2b-256 ebfa14e02443c0c06f4b9353120b9093ba3d75d28bd557c822febad88fe427d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 206912257f375903ae80d158c0045499c26568fa4447e9e04843884af8e7ad9b
MD5 66eae70742d54996655784d5c211f88c
BLAKE2b-256 0fbe7d21673614d430f296d3b73b06f67e01821b4120261631481866f303fa51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6509cd37193afc2cf60024d759ba542485e9a25a9a8d857aee3f640a7c73f7b1
MD5 2e5df018449a534b45e0c2dc0ce03f07
BLAKE2b-256 5d99071c5e60b330afe0816946a074825bd96dc8558c970dff2bd9b3f3ef553e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d9c088b5593cf6d3bed53a80318cd89e6bf919d0a65047f34d53e3ae140cb8c3
MD5 c742235320d8bec3dcb17183fbcc3b62
BLAKE2b-256 e3f222f7c47cc9c4d6ec8db36b3eedf57248dd62de1d0bab509c7c445a6c4740

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 b88335cf51b0fc9f061a83fb495fdbcf60691b89d750a6ac50e8d669dc954afd
MD5 0b72db8bba9c925e8a06d776b2c17597
BLAKE2b-256 cab0f45da764f60c356458ce306e9d3ecd255ddcc46dc69a6d467ef3da0c10a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2c4e1e13001a3dcd744fc078e6145e821f4573f5cda40f11c3e609269912dac2
MD5 5ab3a947b0d48a5d7ad336a92a565914
BLAKE2b-256 66cfdd3e2f697ab28b3d1d36a37e900387a0934a2680a944ec47d75e20050e96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2355b7eed8f21d298e2807a1e813118500ab7357abab864e5540b07e9c9ee35b
MD5 8ff4892bcc3ba8f0083a9704fcf5651a
BLAKE2b-256 efb4c13358df21abe5d00de77f9d5d1943ad477b3a365d052bc83e0b4a392feb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e627dd117d694efa64e2279c51005cf707545872ec433de88ca720bacd3e78bd
MD5 d2094581855c339af72000a71bb1bc71
BLAKE2b-256 a13b55bf0b3151e0514ec96a3141f9eb3604771447a1f1310fea625f7d87953f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 7d3004797349d2f4db722f65b0f247f19f42fe130a90e65169e044b77eb1f041
MD5 d01e2e40ed9d0c96cb13c65685e7b7dc
BLAKE2b-256 58df26b2009be2a716b4a42bccb5c5970fc728f565164b49fb04e7838b6494ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 75cbfa1ca93afd7f949d176039d0de0b014a2bb1a2829b94ee92a36acdbb872b
MD5 37359c8c07dc106e2d120c4b6b9de0fa
BLAKE2b-256 ff7110d8f4da5d16f86f88629bde3f1ad5c77dac42134b4b73e74811f04e35e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 737fc508c1cbab18e01e8e3613a1181a786961e734611bd8f3c9a843c72a2279
MD5 975afca77afef036b4b9a0176852c952
BLAKE2b-256 74065fc1d9d268d4b29fbc5a85e86bf43430746fb9659d7a5b0fa2b27cd6a177

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b22502413dd1a1623dd245ae8cf197fb313bd548742a66c5665a489493b5adbc
MD5 7d5558db32b564a460582c91ab8f37b6
BLAKE2b-256 1e533436def306d16a134a785adc0b8580f63fed79c8a38e59f33965ba5eca67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 318e9ab1a6f47e1e660550757270c65e3153ae969cd18c7ab223f1de8f1d7339
MD5 7e827a9d2500d1aa256a13c00f62a00b
BLAKE2b-256 14eae8bcf69de2248260b3d2b4566f4f1366afb767e5fb94df7cb03924b79e91

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 65b64f34a40ecd6162675719457e78a0cb80d31a616acee47fbf89c2425c9232
MD5 2b40644694784288dfcd6b43eedbc3b6
BLAKE2b-256 8a9c05efb105eda4aa7c4d64fd2afd1e6e50c1ec07e712ae771a88c5051d0131

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 a6021113df7656947ef2204960852f3ecb8f7166fbe0ce7bc9e090fa38328181
MD5 a3554c4827534a3c193cd2b0fbfd621a
BLAKE2b-256 2a83ea905a833211490b015606fb3458e76937fbff740cd0fba8014a544e96a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d449d7c46e04226bb58de5dac62931fc9a49daf6a4f1b20fbe5dfe5d0db8d2f2
MD5 1bdfc8f295f10a2daeb53234705ff03c
BLAKE2b-256 0332fd07f76e1cf3b48adaa2e2d73381dbdaef548aee85e284782c00ca71b6eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 19ec83788a52a09d960a100c259206862b193ec74666f9e0171b1f6650652aaa
MD5 21b3f756ab35c53300a41829c590ced2
BLAKE2b-256 61bfe0f00d8e5a7f3c65a49612ede72e3500d6d5cb7acccc07d43a4ae286bdda

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ef73b18213fe5d3cd4704702e546ad3e45be91e1665b7322f51e8ebb03826f42
MD5 d24aa7b3abcc2472059513983c2b02b6
BLAKE2b-256 eab645f284c5e4d5b9af76fcd9659f563d3c7c1f1d7b69364e10ff460319632e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 212d284b3dc77f4850cffd003473dcb8e7bea46f80c2b73ad637485f5874fa1e
MD5 5fe09309e1b6d878f1d819c1e97d5901
BLAKE2b-256 9ffa73d54d1b9b5d1f80422a4206557804ea1faa068b7e2d266d388a7f06b536

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 170d557f11396d58d75837fae46aa9b1a10a0b624a55295577d8d7b7f6993b95
MD5 b58a8b92878bd760ca45c42d417d08ec
BLAKE2b-256 3cdff99e2bfc333056489fb4e6695b7091837f43c3fca37d9acb904d73393284

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 2d5e91ea3ae705259d6ad2d33f3cefcfbb6dc8f92537264b33b8a24463c8c8dd
MD5 d9146c350e3ec4d8d67dd06956d36118
BLAKE2b-256 ab2128ea3cc4a5ea127e73ece69fe0a64dd4895b9f0d364fb2db5ee48a03ffff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bfaf9e1bf6145b2f572ea5b3b0acf58c534ff489f3f96e3fdff08a7a5873c868
MD5 aef769ad1e0e1a9b4dda19605f84f84b
BLAKE2b-256 2db6a92f4d6265f2e6ae9c79c1629c7af9e19c9f1c03f5e15e373b6b7ed2617d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 23eee7a65439f662db16eab0963eb8e80822f5ce3a0ac4a7a43d06f638e5c3d0
MD5 ab84e5c7989f9acecb933730583b0810
BLAKE2b-256 e25cae3ed7bf37c8faafa98c13217ddbb4265c73f6a9a2932cafbf89829e0a81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 13aacb2a78313be90380fbc1b9f3823d717061b16066b8deb68fe36f7259e75c
MD5 1984fe86fa646006c62fffee1356a8ac
BLAKE2b-256 312ee032d91531612d3660873c4cae7541ac5d4107880677a436744d6e975884

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 283ffb9dfbb532de0898f6ab058cf946fe9cb64e065d943ccaec05d767af647e
MD5 5c9d64cde37112120e6e96a7df72ddfa
BLAKE2b-256 37bb5c5f9ec44baeb33b18a6452cd4aa1567beb23efaccc10af7c87f002355ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dfaf5ed17771a36a86b2c36bc1fe188ba8d09b988f05a809d057297f5abe16ef
MD5 140b6dfdfdc2d9a06ba1162b47479f26
BLAKE2b-256 cdc762172f930df5d48b3c806b1e87f3ab0eb0533b551bbb3c16cced51307d33

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 567dfbf714ea4371cf221376c36238e8ac1c77e4bdf5ac8169f32e2b5b158f4f
MD5 7ec2e54ab206c44824aafd16ba8b10fd
BLAKE2b-256 369e3f6ac0be2caabd28fdc5215739c0313cbadf95454d82ee21848696120f69

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a811f121b7055a8c1ee961a121e023f07a60e6a3669c030450a5ba24d1cfd3b5
MD5 a0880fefca9ee2eec2ff733637d71b9d
BLAKE2b-256 e3fd65224bc404db57c4069ea951dc06b8ac2bf92188360ca07da4cd10456744

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