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_matrix(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_matrix(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.


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.1.8.tar.gz (12.7 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.1.8-cp313-cp313-win_arm64.whl (180.6 kB view details)

Uploaded CPython 3.13Windows ARM64

vegasafterglow-0.1.8-cp313-cp313-win_amd64.whl (209.7 kB view details)

Uploaded CPython 3.13Windows x86-64

vegasafterglow-0.1.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (243.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

vegasafterglow-0.1.8-cp313-cp313-macosx_11_0_arm64.whl (183.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

vegasafterglow-0.1.8-cp313-cp313-macosx_10_13_x86_64.whl (203.0 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

vegasafterglow-0.1.8-cp312-cp312-win_arm64.whl (180.6 kB view details)

Uploaded CPython 3.12Windows ARM64

vegasafterglow-0.1.8-cp312-cp312-win_amd64.whl (209.6 kB view details)

Uploaded CPython 3.12Windows x86-64

vegasafterglow-0.1.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (242.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

vegasafterglow-0.1.8-cp312-cp312-macosx_11_0_arm64.whl (182.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

vegasafterglow-0.1.8-cp312-cp312-macosx_10_13_x86_64.whl (202.9 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

vegasafterglow-0.1.8-cp311-cp311-win_arm64.whl (182.3 kB view details)

Uploaded CPython 3.11Windows ARM64

vegasafterglow-0.1.8-cp311-cp311-win_amd64.whl (207.5 kB view details)

Uploaded CPython 3.11Windows x86-64

vegasafterglow-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (243.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

vegasafterglow-0.1.8-cp311-cp311-macosx_11_0_arm64.whl (183.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

vegasafterglow-0.1.8-cp311-cp311-macosx_10_9_x86_64.whl (203.4 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

vegasafterglow-0.1.8-cp310-cp310-win_arm64.whl (181.5 kB view details)

Uploaded CPython 3.10Windows ARM64

vegasafterglow-0.1.8-cp310-cp310-win_amd64.whl (206.4 kB view details)

Uploaded CPython 3.10Windows x86-64

vegasafterglow-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (243.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

vegasafterglow-0.1.8-cp310-cp310-macosx_11_0_arm64.whl (181.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

vegasafterglow-0.1.8-cp310-cp310-macosx_10_9_x86_64.whl (201.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

vegasafterglow-0.1.8-cp39-cp39-win_arm64.whl (179.7 kB view details)

Uploaded CPython 3.9Windows ARM64

vegasafterglow-0.1.8-cp39-cp39-win_amd64.whl (204.4 kB view details)

Uploaded CPython 3.9Windows x86-64

vegasafterglow-0.1.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (243.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

vegasafterglow-0.1.8-cp39-cp39-macosx_11_0_arm64.whl (181.9 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

vegasafterglow-0.1.8-cp39-cp39-macosx_10_9_x86_64.whl (201.9 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

vegasafterglow-0.1.8-cp38-cp38-win_amd64.whl (206.2 kB view details)

Uploaded CPython 3.8Windows x86-64

vegasafterglow-0.1.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (242.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

vegasafterglow-0.1.8-cp38-cp38-macosx_11_0_arm64.whl (181.5 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

vegasafterglow-0.1.8-cp38-cp38-macosx_10_9_x86_64.whl (201.7 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

vegasafterglow-0.1.8-cp37-cp37m-win_amd64.whl (206.5 kB view details)

Uploaded CPython 3.7mWindows x86-64

vegasafterglow-0.1.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (246.7 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

vegasafterglow-0.1.8-cp37-cp37m-macosx_10_9_x86_64.whl (200.8 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for vegasafterglow-0.1.8.tar.gz
Algorithm Hash digest
SHA256 2821217941db0134983ae99e02f4a95426ec87fcefcd8cec171922520ff75fa1
MD5 0bc9a9f565898116e43b5aab8b1bc77b
BLAKE2b-256 9e6bed060ce595e874567aa7385914f9bdd14879d16e7293ef555f52bdf767d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 949b9c85d026b48b906a5a04797a89379aae50f2265fcd64a542be9fba500933
MD5 13416683efc6647489402ba050090ccd
BLAKE2b-256 2a92e16094e00cee1efec59930b5cb0bcdcdb43427a1ac27d88e74829fe52cb2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b6fcfa64b404fde026b2bccda8dc548432f8e97f9b3e9422427b371aecd69840
MD5 56f8dcce027c26f8390fff4350269d40
BLAKE2b-256 ec074810f25911b3721edf6065e4a83db1ca0d3e4b068dee04128c804e15c7f4

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.1.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 57ffaa4dd618f0f050058988e7de8beca8b4b5c548a617579820f81db504c62f
MD5 2842f89033b668b939a95604cd6fbf09
BLAKE2b-256 3cd32924549a6db5af8c50775591fdc5acf47ac0c613e0ed20f595a92f7c7609

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1eb414dd797124c985b59f059463b62b1fab1d0f3bb0528275803ee99c2388f7
MD5 3cc0423e712d339e583c00e5f6ae23b7
BLAKE2b-256 5ccc915d25cb20e3150496d9c33606a0924e9f987941b80578ecb6395866ec52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d911fdd9c3ddb44879e0dda0ff81f37b99eb4a37abcc79b22130d3fc08eb0c6f
MD5 82c3e1220f95cb48c9450bc12a4567b5
BLAKE2b-256 48b9d7de2031e411483cbbdd116ef8e3ff65d9aa95ee5505bf4f1fb929c0570e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 f176f8700b7932da1fe86ed6986023404a7fb9a6dca4db2d3f3935495e4f69ac
MD5 c440600f8205d8e389f0a1a7f706afbf
BLAKE2b-256 a7c516ee40caa0fd4437cfef1868e501be35bc2bb7a2e1c5d62778972424d1d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2124082f5fb3d852c08fec14f6e033f6104ed6ff48246c5a25b55bc6deada8f8
MD5 f5fe3070627d029db38db2dc10001d48
BLAKE2b-256 dd7871a50e2addf41968f6b0e47edd3a68725de7ed2fe506f2551c09a60961ac

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.1.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7f5ee9cac49a9d59e2d9553354ceb471836d4b7cbdec2c739b6b68a207358f87
MD5 f1b391e715149bf0a71e52df8fb9b30e
BLAKE2b-256 3d0d63ec8edde9588d3645a0ffb774a4c813dc898cce9f064b3685aacdc5aab9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 92b1d8ae2f3835fb76f53a4e83d21dfd081425448fa40d18040c46859d3ac81c
MD5 6440c477d7b1ff6454441c3eed5e59f3
BLAKE2b-256 949a8c396123da34df2fcc730dad3e0e1708c8467ca1fcd515e3328f0b89d680

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 4f3ecb4ae381fcb8c9175951e21d7c74f4ac698fd2744d8bfb7d2aa66dd061d5
MD5 f54d7bdbd080c4ab89aa4456bc1b3980
BLAKE2b-256 4ec5ccec3bb9bc1cfb5c7527aebdeda56a730cb4de7949616a09d73e4874465f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 458756d47fedc48595513cc87eafa0da15b3c9477a0b23f43d0faf1debc2d748
MD5 59faf06057494c578f1f20e26ea92be0
BLAKE2b-256 e037f009fa5db38d0bb3622b5718603923c18be79490297eaaf2abc12b277472

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c029a042d6f2ff60fbcad09a4b5faf73a73d2eb88309ee708190f22916cc03c1
MD5 e8f0e53a21f59934effdaf144de0d59c
BLAKE2b-256 ca815afc0659d8c8a3878c3467283af2a7252e37b77c3987120242c7d788e73a

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eb94fb34ec627dfacdc40b40cb87032623e6cfe5907c9b653b4cbcabf6b2b138
MD5 2f909726cd142c692d3d5084aa69570a
BLAKE2b-256 f2418de06ff81d66a322cad8d22d465e6849a9580cc9bf8107af9537d3946474

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 196a8b7532aa86c0b8f10c5a566ecfd604e6d47499b406e28d39946739959679
MD5 b1c014b5633fc39b96b6882842e0a84d
BLAKE2b-256 8995998524a324630b419f64f76ff0ffa6aed01f0242560bf84f94e5e018336b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fce47adf30712c8a62bb9f440f20ed9c1b034663f88ebba62d690fae64c4111f
MD5 782a640dc9c8de9136439f0abb25941a
BLAKE2b-256 dd0bc72b11d285999bb4854bab3e7b42e18a72da406953458c943167e7c2f3c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 f5d1a9b4b8f35e350b535e89953b04d39c9e228a8978be33f1b0766a2f1d6dca
MD5 038b96e06f6a0de9bd3409dad6674e38
BLAKE2b-256 6b83f13b7237ba1c0eb315a933dabc3ef105e35f4f354ebc4cc7103c2b9ba5a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1cf719321e5239160e4888c1d043cbd738b236f67716084b269aba1485dc26e4
MD5 140e8c74202869648efbe5dbb3484c63
BLAKE2b-256 1114bcadbb32f0e67e837abd1d74350a203b66a4b83029905be236cc21997f85

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d7edf9168de8e55af5c049a038347b0eaaf8a544b17d9f411b16882eeadebf25
MD5 4d80a68a75eaa490c64ba2840b87783e
BLAKE2b-256 f7eb0d895a0c3d53ebc92113a26151be187f8675f571f83dd46836eb4b813339

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9dc2005e8caa44361a92444a0d152e325bbfda40ec08169a83b9c35188c8bc2c
MD5 d38587a4c9666d73cbe5b0047fd56dcd
BLAKE2b-256 d3ea267e3871182763a3bd233cf8f993a17689e8e3fab066c509eeab6b54dcc0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7d9c3590d4a82d9fffdca76727c7a14e1e1865110507e4e01a1ca18a2187f5f4
MD5 642b6791a3f1115b80a49ab4029f3d41
BLAKE2b-256 0bee2312ce10c15f1335497d5dd34fa781ff847914d3bcd1e73e3ef1fe203ea9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 051f94faaf92747e6346298c46e9845a279f1dccfd411c08409dec62d234bff3
MD5 01ccd43969b936c2c90c9979af6fbde3
BLAKE2b-256 7c7af0d3b188fd7bc85c3b23365be53175bfe90f2928a8dcd3a9b216bfae5ef8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 68e7da340d7d8257fbc43e62ec4dc382d62ad82fe115e55b41bc86a3fe845f3d
MD5 2bc434d32067cf6cee26336e25a39b8b
BLAKE2b-256 4541bb469477b086b1417145c8823f0cf56bd00757bebbebb01201f850232a6e

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.1.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 77c130cd947aaad5ceda61c2612f5449a46e1022160c8221d1946c36792f478e
MD5 4be4586eb64ee6d84eda262701d20db3
BLAKE2b-256 71c7818593c19e09b37bcb67397a35e6647ec44db8b441293ce4d59a10c6567f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d2c86566d1b0e20b86fded2f2df0a7947dc6cb972d843534ada06921199f82b
MD5 e53482f26ab48e471e7fb29ea14f031b
BLAKE2b-256 0a2843feabfb6705fecfe0f547156032cec36f806e7acc9630256476c064376b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 59132773cf5ca1ace0e94b43a547957d764eae8d24bfb290432551349d75903c
MD5 96bfd3fa994e33f55711e61cbae5932e
BLAKE2b-256 668dd906f2fc3484cec7459a22c835ffcbd02e99fc06b51bd0bc4d4e8d85d25f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 70330c4b0b8cd1870a9405aecbcdf0e23423229df373b38c6ea81e786835d75c
MD5 e209dcb295b8c47c5623d9641468f58c
BLAKE2b-256 b16556c03a48695cd8c6850bc64117e72f4a7234603b0af1d954be807d6ee092

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.1.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 21272b95343c9d40cb4a772086e29bd425213183b707af551c2167d387fc3977
MD5 32ed6ff7711b9c24f7265e445090ae3a
BLAKE2b-256 543e3b565b7c22f2e0f94204ad064bee492f8ff01cae05969b998416cb3426a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d55e4a5a436b165efab8aa9069e91147bb24de48ba8990d1a471943776b107d4
MD5 3f487e2e3460ecce3e94235765b94aaf
BLAKE2b-256 7c97bfef1ca861d30f35a28809c5270ba8ee9527b61a5ef911734c1ec968122d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9c6216c2b066fa5cd6f2cabad3409dd7e59d5622b9b3517fc7dc31079187ee99
MD5 ac4982da896f1ed9a2e78a186af0a3ec
BLAKE2b-256 ee8f4e5da80192ef275968d3179d27211f20b50ef1a1f84e98493b497d4691ef

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.1.8-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 2034e3d410e9de66cc87e632cfea6d080e4de5310039b2000177075213038d06
MD5 ff264683d8d54262446b5fb581fd14fd
BLAKE2b-256 3dd59f569e8e211b315d761c5600925f34ded97a801d994afea2b7c72cb85a42

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.1.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 04359fe0a132476b2da16246f8d3b9df649493af10a8df24f1a92287879a1da7
MD5 ed6dc62216ab0df0be2d83cf34c98a46
BLAKE2b-256 f6ad88994ee7566d7b58a97213664ce9f7b34c9ce59ea7180b10adaef0f9d6f3

See more details on using hashes here.

File details

Details for the file vegasafterglow-0.1.8-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-0.1.8-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e71cf9170d69141dd0b0be06b7b1d0aca7ea2191133e2eb31dade8c17c0c577b
MD5 f8468173369d7c119490e6e51693c30f
BLAKE2b-256 9b375a29ce33935637b06ed3a570fc0166a6660b3eee2883826d3b619ba12e5c

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