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.1.tar.gz (12.0 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.1-cp313-cp313-win_arm64.whl (184.1 kB view details)

Uploaded CPython 3.13Windows ARM64

vegasafterglow-0.2.1-cp313-cp313-win_amd64.whl (205.4 kB view details)

Uploaded CPython 3.13Windows x86-64

vegasafterglow-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (229.1 kB view details)

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

vegasafterglow-0.2.1-cp313-cp313-macosx_11_0_arm64.whl (188.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

vegasafterglow-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl (208.0 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

vegasafterglow-0.2.1-cp312-cp312-win_arm64.whl (184.1 kB view details)

Uploaded CPython 3.12Windows ARM64

vegasafterglow-0.2.1-cp312-cp312-win_amd64.whl (205.4 kB view details)

Uploaded CPython 3.12Windows x86-64

vegasafterglow-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (229.3 kB view details)

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

vegasafterglow-0.2.1-cp312-cp312-macosx_11_0_arm64.whl (188.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

vegasafterglow-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl (207.9 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

vegasafterglow-0.2.1-cp311-cp311-win_arm64.whl (185.7 kB view details)

Uploaded CPython 3.11Windows ARM64

vegasafterglow-0.2.1-cp311-cp311-win_amd64.whl (204.4 kB view details)

Uploaded CPython 3.11Windows x86-64

vegasafterglow-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (226.2 kB view details)

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

vegasafterglow-0.2.1-cp311-cp311-macosx_11_0_arm64.whl (188.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

vegasafterglow-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl (208.4 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

vegasafterglow-0.2.1-cp310-cp310-win_arm64.whl (184.8 kB view details)

Uploaded CPython 3.10Windows ARM64

vegasafterglow-0.2.1-cp310-cp310-win_amd64.whl (203.7 kB view details)

Uploaded CPython 3.10Windows x86-64

vegasafterglow-0.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (224.2 kB view details)

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

vegasafterglow-0.2.1-cp310-cp310-macosx_11_0_arm64.whl (186.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

vegasafterglow-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl (207.0 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

vegasafterglow-0.2.1-cp39-cp39-win_arm64.whl (182.9 kB view details)

Uploaded CPython 3.9Windows ARM64

vegasafterglow-0.2.1-cp39-cp39-win_amd64.whl (207.2 kB view details)

Uploaded CPython 3.9Windows x86-64

vegasafterglow-0.2.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (224.1 kB view details)

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

vegasafterglow-0.2.1-cp39-cp39-macosx_11_0_arm64.whl (186.6 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

vegasafterglow-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl (207.1 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

vegasafterglow-0.2.1-cp38-cp38-win_amd64.whl (203.4 kB view details)

Uploaded CPython 3.8Windows x86-64

vegasafterglow-0.2.1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (223.7 kB view details)

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

vegasafterglow-0.2.1-cp38-cp38-macosx_11_0_arm64.whl (186.3 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

vegasafterglow-0.2.1-cp38-cp38-macosx_10_9_x86_64.whl (206.8 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: vegasafterglow-0.2.1.tar.gz
  • Upload date:
  • Size: 12.0 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.1.tar.gz
Algorithm Hash digest
SHA256 c7ca019fd5d18affb6458521f6170bb998ac856b0992393fd47197183e839659
MD5 0acdcf9afad0fec642dec1b970a4f09f
BLAKE2b-256 864405d63b37afea8c37561617cdc85015b6998c7b34beb0478424cd51bc2c5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 c047da1b7a8728764b96822e1ad403e2b783fd36802b1926d57e1c5ce8e6480b
MD5 2892f10900cb8bcaf7c6a1277e922f36
BLAKE2b-256 bd18f6e09922458389bfa827d543092cc59830a1117bf857354944eb17ddc18b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e1734794a9bd0d8a5f7b50a877667f331739328c5c00a56ef89abcc123c997a2
MD5 118a7c3c10077686953c20c5fb319c49
BLAKE2b-256 9fe7a5ecac7d40f6ea3eb29e1d0d2af09e13ac6dba6b3f96921f62f1d867d391

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4b57e5e38c56457c6e967d7629a8af9059832b8ca3053c504ac41eef7b66b72c
MD5 30b084a355c92c9aef71a5273af7bdb2
BLAKE2b-256 86358c67dcd7c491a9f9a0b43aed5cfd80be88b1b1743e5012dfd9373e3bcead

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ad0d9147051d02e18ac26465d6b3cf0a2b844b3332b505b2875f232e40e7e822
MD5 74a2a04f12932eb440847e64caee0b9f
BLAKE2b-256 3918f61548f163e460b7c812ed441620bcb3a25ae59a7239270823bf596c599f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ec19080888c4c8d5ab638c657ea86254a46e144b9e2715f568888e2b86e2b60e
MD5 6b2c8c5b69429976af59d1bd3af236af
BLAKE2b-256 e78489a90cb85098fd77ad3fe4918a3ce89a920a553c6ce1448bd1ea11ee2ab7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 a6d77dd950281dcdfdfef9f236408ad15a2da0ae72eed3541ff0bb86ff9350d8
MD5 8bd82d91d822da5c5b5e1821a89e418b
BLAKE2b-256 787365564557aa454899378e058c8a75e3a13410fbf8dd6d6d837bfcd8da030a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8d1f08f430921432c738d999dfe93d772239c643fb47ba42c043fd731127abec
MD5 3d17d28638e310eddba0e47d1f233ee2
BLAKE2b-256 30932382e82ccbf594a5b10b40df97bb110f8fe414923c9d4de1339fa9a6b872

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6ecedfcc0e8df127e5ff01d13c6991295757f3a2cc3861c5d0d5e23e9f6deab8
MD5 d66d31829d5b3b6a195358fbab820de1
BLAKE2b-256 00a4c6ade4ec6f741a448ed4f155be799093a4d4bad22903148adad78f8f5e29

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1565395daeeb91b4b4ede8f5ce2a6e8cd5caf049345674fe65fd866914543f03
MD5 3ee72d8414149a62793833bb8c02e1ff
BLAKE2b-256 6e1c83af2c5cae686b259862440d8425bbf45368aa563766e897260e27690bb6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 f0ba66752b4522f6d9deaab985982995830867736c1d99a85752fee7888c5484
MD5 a5b5dbeaf7551bf6981bf165b6d3377b
BLAKE2b-256 48abb108344cb75335f016982583665f9cf62a68b1c0eb57f86046fc826d2ca3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 d90d25e33ac36aad1a325c9e4a18c27e7ca579d8e3d758aa306d741148475efe
MD5 9525308ac23c082f00258d77c95cc220
BLAKE2b-256 bb80bf18bc8fea4bb23aeca4669e3014f7df00e4b486de26f395b6ac966c2b99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 bb3c4ac4b13ccd0daf4638974e2b06815e2d6f54e69a6ed9d68f3f39954100f5
MD5 0d46aa4806d79b9772a66f8c582b9a17
BLAKE2b-256 b3d29de66c72ff37577446087169f3bdc0632b78f7fd310b4009e7a935e58449

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 909289115eb83de6485f9d498724a0a550a9c35a5a88494fda0d9d558198e716
MD5 d2526a1affa03f47ccac44217c5d0ed5
BLAKE2b-256 dd38ebdef84b17ea11d619832f640eb942a085c531376dda3f3e1a8b96c58b1c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a5c357e60fc91e1bf87ecaeb60e93a060c5c788f1a951d7040246ab876985373
MD5 ce1fd72f6c3b97f2a8f1ffb76c04382e
BLAKE2b-256 d3769058b85a495f9282796101ae066e8909a2c2e9d824cb39b17db0d1288731

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 80ba58ed68aed71d867d470bf1b88d3618feda1f7a37c1c739f45b74c75fffd0
MD5 f077e0b81a4715a3d24ee9f9a33116da
BLAKE2b-256 8423a2d982abede1706ba2f5481a1765280fa10ae3a673c9b14e0d5e81cd431b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 191aa02ac0cc5e8915ae0b7afdde9e02c33f55aaeef17e6909cde914c387f0b1
MD5 92c002fdbe087009b89bd17aa11b742f
BLAKE2b-256 aea34ab5cf736a0e74f433da2c882055dd38ade16430ef5a0362b8a51a972220

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1f726e12044e8abb68d6e7dcc723cfd6fe76f081856a0ae2c570057d6ca6c401
MD5 30b8021eca5fdc90c6911e01fd5c7546
BLAKE2b-256 c9f64c3f232ac77ae321216ccc3fc5c86f620af3319b5735dde717b2f2fa6f5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 90aa25fa633e9bb77455a66932a9fdc1c4de7af0e8fd92d2672ab84fbbab01b3
MD5 8ec51edd9ad846657ed1d7c9df6fad7d
BLAKE2b-256 13fa2352436e8afd7b03916e884b2db9009aa679c71c45f277d107f98830302b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4fa3ba3f9a3ed654b53f4543efd5e17f47a4d9308b4309408dea3aeccb7bf0c9
MD5 12fb1a645f796587391391c29d9da7bb
BLAKE2b-256 71f46668b7aa9c9c5ab4c3c77109d3c6b0b9458966fb482f84936910d5ff0abe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c21ca49f791ede4b6119d4a30da414a68546dd13861cbe856e2c8a8f4a91614f
MD5 5da48c6fca1089f5e6b0b9d063487e1d
BLAKE2b-256 cba0506fe02d7478089698d4c1b438afe378c1221bb1930a8d0107ea86db5fb9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 bc8fe3d630b6d6c087e819984a3ceb3798722a8e8200d187dc96a739688e8029
MD5 b62683ed95304858553a087f655623b2
BLAKE2b-256 97664f91681436669211889c59944a823ff6a7e30c03b0f45e1e42deaea3794e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 6e4d3a697adff0a94785c07bdde8ce5e4245bbfa77e302c95815f6035232cba0
MD5 2343fb1654f5477193abdaa4c854c573
BLAKE2b-256 8b7fbbdd2e4c3f1a692f91399c19c321be098b864c3838fecbd9eab36e85b6c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 65085b53e3f17f8bdc95e5029774dd64c5096a0218874fb19e969fbab876cb82
MD5 feaca4c580cd04f42b37badfdca18909
BLAKE2b-256 aa5b7781be5396af2132bcd73d1976274e1afd7f3d17c7c27dc10b2e6faccb01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a1f66b5f48a5ebf82d49a54cc06b298727c01d6530cbab487446716983ef619b
MD5 2c8ae674e3fd3ae58aa2fd9dd7a55e31
BLAKE2b-256 7c1c243e81df95bf1398846cd06406daf3b91a604a3ad8deab146e5b572bab35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3e51256d0d8dc2c0649733093ec999cf111f47158edb0b0d864da82bc514ebe5
MD5 49945a45d392e22a7c633d6e636f598c
BLAKE2b-256 a5af44633c2a641700666942fa5bfc4d8c62cfa6ac0a521bcb5f2b80e1ec662d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 1007d289913eba305d2bb0c927485359327321afb78aa946252f6402d93dff50
MD5 af5ff58adffaa399f1b8a5c5588ccfbc
BLAKE2b-256 b813a75f1ba6754ba51508ea2211f98d3f722aaf9f1744973008f4920a9de963

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d99d63c503c5242e98f131a0fd254c2083f70549fbf8603a7d19aeac1b902491
MD5 69892b28586f5268a1a0b10e01dc505d
BLAKE2b-256 c759ec2f2886237678d3e5040b3fc241d8db278e7041893cc7716a4f1d5fdf2a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7abf6e04138f782eae5ab150104c58c20d56c571394946a7e7560702284787bd
MD5 a6fb29cb2a05bf863a54c8e85bf22de3
BLAKE2b-256 856a77d48a4283ccf92f64c8cd8c11fe18f46a981ed7b0a55bec82b5e029a681

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1589f5c2bc1e2147972ed16c5f5ddc379940c97c181096f0b81c4c8209dad42f
MD5 baaea124dfd138f81b5ed0f28d06bd28
BLAKE2b-256 a23235ab1b3681f982f5419b063f9beef870fd1c9677295c28066f26d9159ed6

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