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

Uploaded CPython 3.13Windows ARM64

vegasafterglow-0.2.2-cp313-cp313-win_amd64.whl (205.6 kB view details)

Uploaded CPython 3.13Windows x86-64

vegasafterglow-0.2.2-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.2-cp313-cp313-macosx_11_0_arm64.whl (188.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

vegasafterglow-0.2.2-cp313-cp313-macosx_10_13_x86_64.whl (208.2 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

vegasafterglow-0.2.2-cp312-cp312-win_arm64.whl (184.2 kB view details)

Uploaded CPython 3.12Windows ARM64

vegasafterglow-0.2.2-cp312-cp312-win_amd64.whl (205.7 kB view details)

Uploaded CPython 3.12Windows x86-64

vegasafterglow-0.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (229.4 kB view details)

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

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

Uploaded CPython 3.12macOS 11.0+ ARM64

vegasafterglow-0.2.2-cp312-cp312-macosx_10_13_x86_64.whl (208.1 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

vegasafterglow-0.2.2-cp311-cp311-win_arm64.whl (185.8 kB view details)

Uploaded CPython 3.11Windows ARM64

vegasafterglow-0.2.2-cp311-cp311-win_amd64.whl (204.6 kB view details)

Uploaded CPython 3.11Windows x86-64

vegasafterglow-0.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (226.6 kB view details)

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

vegasafterglow-0.2.2-cp311-cp311-macosx_11_0_arm64.whl (188.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

vegasafterglow-0.2.2-cp311-cp311-macosx_10_9_x86_64.whl (208.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

vegasafterglow-0.2.2-cp310-cp310-win_arm64.whl (185.0 kB view details)

Uploaded CPython 3.10Windows ARM64

vegasafterglow-0.2.2-cp310-cp310-win_amd64.whl (203.8 kB view details)

Uploaded CPython 3.10Windows x86-64

vegasafterglow-0.2.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (224.3 kB view details)

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

vegasafterglow-0.2.2-cp310-cp310-macosx_11_0_arm64.whl (186.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

vegasafterglow-0.2.2-cp310-cp310-macosx_10_9_x86_64.whl (207.2 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

vegasafterglow-0.2.2-cp39-cp39-win_arm64.whl (183.1 kB view details)

Uploaded CPython 3.9Windows ARM64

vegasafterglow-0.2.2-cp39-cp39-win_amd64.whl (207.4 kB view details)

Uploaded CPython 3.9Windows x86-64

vegasafterglow-0.2.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (224.5 kB view details)

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

vegasafterglow-0.2.2-cp39-cp39-macosx_11_0_arm64.whl (186.7 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

vegasafterglow-0.2.2-cp39-cp39-macosx_10_9_x86_64.whl (207.3 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

vegasafterglow-0.2.2-cp38-cp38-win_amd64.whl (203.6 kB view details)

Uploaded CPython 3.8Windows x86-64

vegasafterglow-0.2.2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (224.0 kB view details)

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

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

Uploaded CPython 3.8macOS 11.0+ ARM64

vegasafterglow-0.2.2-cp38-cp38-macosx_10_9_x86_64.whl (206.9 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: vegasafterglow-0.2.2.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.2.tar.gz
Algorithm Hash digest
SHA256 8961a93f27ae1ac1818bfe881f0d1f4be081d0a1edd17800e3e4479bd44e4b72
MD5 51d8b07d33103f696f8ce96c9aac4967
BLAKE2b-256 6394dffcd1be36ff27fc99e14a4c3f92a8e588c615fb5b6739059a47c992e729

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 b2aae36ab6110857c1ebaeb04d4075467e083b769a8b12c159aa4b51326df7dc
MD5 a9c9f294af8ebb48deeb1b286fe93712
BLAKE2b-256 e87d44f8a64266cebd53f2b4c1d393b8d2f402b6738b28d15687e79e5d57517d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 fc23b947fb3fb84f75bac600ee506afbf730e93da0a11a630ed985d065c5af27
MD5 6d126538a851eb4023a3d9b76011c846
BLAKE2b-256 e655306fb44d93bddc91ecfcebe7d3a2b4b3474374d27b5591038c8f975f1e12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ef8572ae2962bd36f07e50ee4033ecb864423ca2a0d1298f1e1ef642c62dd0f4
MD5 541fb1532723c36e7344bbc3ea9e61ea
BLAKE2b-256 2ff95bf52346c1b890d1c4e1ccbb0a0c8630e10166565e27dd9d7067ab07aac5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ecbec986563a38ec0bc5e787fe53ef9da26e6fe6786f2d82b2d595a1efae6824
MD5 36e4b9df1f05c815db7a0d1af399a3f8
BLAKE2b-256 7f99aacfe85314bbe9043e45d52911b3d2ea02198fab45a2781f90793253fc51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 7384201a6974a28db45624724683e9cfa899e5d8d8fa697a533489fdca236f1d
MD5 b0369ae1e9a90d5ed7ec2ac2320aae1f
BLAKE2b-256 89e20a99cd45b017a4b7ee2a37dbf3d38f58b8a4dbb6edf81b9d084157d45931

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 c45f0e0cfa5877b37f2710430f5d714de2aa58d2184eb43d2a209d997559c2dd
MD5 4b835938ddc48d9a9440a9cff2dfce4e
BLAKE2b-256 78e77a96c26b912f254c0c226e86c75ab4eed152dfc4f1520beac7660edb1dc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d611697afcc9c6733bd5caaee0416a2c70fff74fd8fcb5ff672b78239a6b2f2e
MD5 4647f755acd4c6337fdd34e40dc084e9
BLAKE2b-256 1b15fde3c2d095ed27575bd09c5ef134bf6b131d23b4ebcf2f426ff991baf05e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f1129f2ef041509cf6ed8f98bea6d079b1a9952b4dbe8fc43e34d49e270bb5eb
MD5 3122e50988db38b903a1c6b3f4772b13
BLAKE2b-256 f49bee08740e830ba9807459dbe296afb11b660feec2c1b3c6531947d8743340

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2c3e621f4a7cf38e3971f2fc27ed2d55207c6304da9da1b3e628d2369280e285
MD5 436627c99ecb714207033f45d4c38709
BLAKE2b-256 2cac89f3c8c7acc0c3d22f176bff4b35c585705c003d642991545d0f1bb37d70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 3e4e3d853bf9cc9eec55382c299f761f8dc170cf7d96760d49f0f9dc00b1c387
MD5 f2c73de26431a69e4f35458c004c29b6
BLAKE2b-256 1bdf92e372f420b92214b5d5bad39bfcab064ba0c369867239f65a40d9c302c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 d674664ad3f6eca3b0e8504c55f451c4ca89ba2ec3f11f8e5ac56b658ce73b8a
MD5 b73460c7c5f2034ee8bf35f6538e1660
BLAKE2b-256 ce62e7badca5e3b05b8d21e2fcc9dcfab3fdbb7842778dcd2911e25bbe6a83b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8b96d351e67899445f4753d91eb75224d869291c2b333e1bac455a46a74979d9
MD5 1dcc99faf6febb4bf8a330c9a555ee73
BLAKE2b-256 c5fe76400d1f45f3d6ebfada14942f19b0ca9031d7e35a0a27f82d4579d6bb1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bf2c140650bb09c33ae4742e6ece132a1ec551a11557189e51d61652f3575fdd
MD5 0410b1785ca3cc3dfc1a5e4b1a27220c
BLAKE2b-256 4f318d796a8c501f683efe43ad355f1d85d825b90dd56fec61d2d3c6e880c91f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bd8ff7c58b1de5a9a794e8f0683f6c4862172ae795ba3d95c86a8ccf47b81555
MD5 d60b995c108fa3ed4d06ef4ab55f4141
BLAKE2b-256 ba8714fd26e3285aec6949b5f4636beab4ad8d48a8ce05ed18ad5ca2b282b101

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8feb10686bc8f326d980320e3856d63e50b469be6e7fad4b4be0c8942a2b8b79
MD5 83eb8bc1b3b1d2e41e08b13291bc97d6
BLAKE2b-256 099e917f526d898f4f89f20be01fe710fb6e952a21414f46e6588a9473ef8706

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 326285dc6575e5cec62f4edea7b98249784a97dd29ccd1505947a3fbd7360360
MD5 59e13248bc9e6cd511d8cca8b933f65f
BLAKE2b-256 edab61bf04024c1a96a2beb6a3284f0ed1dd68b61f78486ad23569e1daee3580

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a95d7f67e99330b5f762e70e17633e35674ed36efe80394216fa85064a2ccc3f
MD5 ec4faf2fd7f37226421aa7679702fbac
BLAKE2b-256 bd4005f3693e3e39bf47ebf2ea937304489803528c83ce1201dab87599ae0be5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 863ac18afcb9ed5e4e7bcf5f857648d127146b5e2250d44f565279616beeb74b
MD5 19296e2b5d5250b7ec72c95ff47233f2
BLAKE2b-256 1450e5929c49b32a31fd9577734b83a30ab0d0abd96cfbe708ac4276ec9a4c92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e55abe1fdfaa88fe624f9bce808cccb6257d7416dc6fa182de1db17dd73dcad4
MD5 17d2d80618eb0e2f26457069dfb9ecef
BLAKE2b-256 228872af6dbcc4e3a283a28dce5d9fd068a0e16cbcd38dd3fa5cc5f6caa1d528

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3418567586891c46bd2f0c4295585c24df527221ebff84bf959cf4ecddf35ecb
MD5 0c09b7953e8963f84cc1360a826520af
BLAKE2b-256 9e678d514f76a835563cd872636cffddd82dd6a86cd735160f25ba916d1a2757

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 5810b537f61936fffa9b4d4cfdb2171a3999b67311aa736f6bf066091dd16e5a
MD5 3de9bb5207cdb1414756ffedba40d480
BLAKE2b-256 0fe2a0973495d6609b1d3ca93f8af25f475f64c4782377b347c3acc87c8acb06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8d41957c6ef3e19ca7df5bd5eaecf046bbe9d07b995f5e8543285f920e822d5e
MD5 6098e5ff473d015e062eb27ad82eef4a
BLAKE2b-256 f43401de561d52525400ad187599202af5fbab348366feaa2cc493b863823bb1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 671511bb7f89edfba111bf2de8d9ff25ca66ce74e8301f9826dec81db52270a6
MD5 f1af03831c09480501d3a38e8d4b7e1d
BLAKE2b-256 c161a65dd995622cc33823fcec4140ee2a4bfb935d3dea8191d00fb284aeb38a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6b8124160357dd0d28df245962b6a28bc8387c6a29742e805bff29a27e8047a5
MD5 cb6ca5c0791b690bd474b4682f5dd434
BLAKE2b-256 eb4acae8b7c1a9373600f4e918e661d0f1febb344e771c0aa6b23cf5bef66969

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ebf67a4e6f2aa87a8ff954958332d6879c630e2a802fdfd47d91f95a608d43ec
MD5 1daedad4fd2a6ef17d4bc89819fe92ed
BLAKE2b-256 38a4a9d8742b93b9a4e7d00139f2467726455892310505a3b628a9e24102cd2d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 ae9865219fc20148668e7dca0955b48b33fb289d74b0e57cf0023c11f9285f44
MD5 05c4a33c3aa01bd160f8c026694711f6
BLAKE2b-256 3bd48ef5f57eb1e69337f72dede73419c5cdeef73fb476660525ee7b6142dfd3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2e29ad382e06bc14b38c686d91febd67e4ccb3f92d62cbe57b522b91215a1a19
MD5 84aad636d6b0cbbe5a66411deacd2a81
BLAKE2b-256 deb81bdf4c461100b584dff17b5bbb897d8a9f8bac57e722077bf18fe88c6002

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e2eabc890809ee453d868943baa8eb2d79acdefdd776268a4e44f899055027d0
MD5 2f97cbf9c89995306ca3bb4222b50a13
BLAKE2b-256 9fef6aed4b11308de63a0ebb4404fb46f4bbb6f1de384e764365c001f9f67afd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for vegasafterglow-0.2.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 309f30ea5d0beb18f08f47e84ad485797f3c0531d37fe7bf217756568ed56ae9
MD5 ec4b628eca2de23984e385482b1a15f0
BLAKE2b-256 11890cafd0f75db1e0f12449f2504459c68f4d542014fdfb0ad896a8b202f0ca

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