2023-08-06T17:25:42,638 Created temporary directory: /tmp/pip-build-tracker-f76pm437 2023-08-06T17:25:42,641 Initialized build tracking at /tmp/pip-build-tracker-f76pm437 2023-08-06T17:25:42,641 Created build tracker: /tmp/pip-build-tracker-f76pm437 2023-08-06T17:25:42,642 Entered build tracker: /tmp/pip-build-tracker-f76pm437 2023-08-06T17:25:42,643 Created temporary directory: /tmp/pip-wheel-m6y_u_lv 2023-08-06T17:25:42,651 Created temporary directory: /tmp/pip-ephem-wheel-cache-rx8268e2 2023-08-06T17:25:42,704 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-08-06T17:25:42,712 2 location(s) to search for versions of pyspk: 2023-08-06T17:25:42,712 * https://pypi.org/simple/pyspk/ 2023-08-06T17:25:42,712 * https://www.piwheels.org/simple/pyspk/ 2023-08-06T17:25:42,713 Fetching project page and analyzing links: https://pypi.org/simple/pyspk/ 2023-08-06T17:25:42,714 Getting page https://pypi.org/simple/pyspk/ 2023-08-06T17:25:42,718 Found index url https://pypi.org/simple/ 2023-08-06T17:25:42,903 Fetched page https://pypi.org/simple/pyspk/ as application/vnd.pypi.simple.v1+json 2023-08-06T17:25:42,913 Skipping link: No binaries permitted for pyspk: https://files.pythonhosted.org/packages/5e/28/45cc983684e34adf374c2d114a24861d4d9e1c2250a56078fa251ecde3fa/pyspk-1.0-py3-none-any.whl (from https://pypi.org/simple/pyspk/) 2023-08-06T17:25:42,914 Found link https://files.pythonhosted.org/packages/a8/d2/0734e1e3790826d866e4d99bdc646fba69430f90883d2ba783b2ec83ec06/pyspk-1.0.tar.gz (from https://pypi.org/simple/pyspk/), version: 1.0 2023-08-06T17:25:42,914 Skipping link: No binaries permitted for pyspk: https://files.pythonhosted.org/packages/b1/c7/ee2389a93f921f2c51aac240ab5039aa4d26a5ffcb617b68cbe0e469b4b7/pyspk-1.1-py3-none-any.whl (from https://pypi.org/simple/pyspk/) 2023-08-06T17:25:42,915 Found link https://files.pythonhosted.org/packages/61/93/710ef3373d68aa7569f17af7a78e4dc9cb7f07aafb4cbcc56155120846f7/pyspk-1.1.tar.gz (from https://pypi.org/simple/pyspk/), version: 1.1 2023-08-06T17:25:42,916 Skipping link: No binaries permitted for pyspk: https://files.pythonhosted.org/packages/c2/6b/7271ba22fe0d78e89f627a570997ae4a369fecda22088c350bfe8b9f9b9f/pyspk-1.2-py3-none-any.whl (from https://pypi.org/simple/pyspk/) 2023-08-06T17:25:42,916 Found link https://files.pythonhosted.org/packages/ba/6d/e1283dfc400ad9f9eceacc38e56c49b7614fdb996001ab298678bd394e90/pyspk-1.2.tar.gz (from https://pypi.org/simple/pyspk/), version: 1.2 2023-08-06T17:25:42,917 Skipping link: No binaries permitted for pyspk: https://files.pythonhosted.org/packages/e1/72/d87a0c6679f43fb1d299509860e44bf7437d3108ba7816e0213a9f4479d2/pyspk-1.3-py3-none-any.whl (from https://pypi.org/simple/pyspk/) 2023-08-06T17:25:42,917 Found link https://files.pythonhosted.org/packages/5a/7f/3b4c6ab139cf3771fcb53c4cdd65e8c36cf86ba024e132aa3a38a0db5929/pyspk-1.3.tar.gz (from https://pypi.org/simple/pyspk/), version: 1.3 2023-08-06T17:25:42,918 Skipping link: No binaries permitted for pyspk: https://files.pythonhosted.org/packages/ba/f2/06c887225a955a4c2022e3835bba85543421172d03236e6ad2a7c650d31f/pyspk-1.4-py3-none-any.whl (from https://pypi.org/simple/pyspk/) 2023-08-06T17:25:42,919 Found link https://files.pythonhosted.org/packages/40/f4/170424c88049316ddccc683d5caae03e9e598e4b9bfc5b855e5c12a84e42/pyspk-1.4.tar.gz (from https://pypi.org/simple/pyspk/), version: 1.4 2023-08-06T17:25:42,919 Skipping link: No binaries permitted for pyspk: https://files.pythonhosted.org/packages/f0/e2/5bac0d5d344b818eab812410cd125093c1013075c4c02683a978fd5ab6a7/pyspk-1.5-py3-none-any.whl (from https://pypi.org/simple/pyspk/) 2023-08-06T17:25:42,920 Found link https://files.pythonhosted.org/packages/de/42/7fc705db4a4cc3f762a58788ed3e9e2bafb87eb5ffa06ac12fda19ef0c90/pyspk-1.5.tar.gz (from https://pypi.org/simple/pyspk/), version: 1.5 2023-08-06T17:25:42,920 Skipping link: No binaries permitted for pyspk: https://files.pythonhosted.org/packages/13/8a/c893bf21c365de202210bc167bbf597c1e0ca11dfacfd08d594318ffdfe9/pyspk-1.6-py3-none-any.whl (from https://pypi.org/simple/pyspk/) 2023-08-06T17:25:42,921 Found link https://files.pythonhosted.org/packages/8c/56/7390a102e9ffc123a7c98ce38a01df97a66f31cd6d3bc27c6109b4194913/pyspk-1.6.tar.gz (from https://pypi.org/simple/pyspk/), version: 1.6 2023-08-06T17:25:42,922 Skipping link: No binaries permitted for pyspk: https://files.pythonhosted.org/packages/5d/f0/be4b0916ea3defb00ebe3ce90f35c79d6777198bc551ed1cbb29ad2c3f83/pyspk-1.7-py3-none-any.whl (from https://pypi.org/simple/pyspk/) 2023-08-06T17:25:42,922 Found link https://files.pythonhosted.org/packages/9e/f4/ace24aafe88a5335667e28463cecbd44021cd19ab628a1a157843b9c1c08/pyspk-1.7.tar.gz (from https://pypi.org/simple/pyspk/), version: 1.7 2023-08-06T17:25:42,923 Skipping link: No binaries permitted for pyspk: https://files.pythonhosted.org/packages/b1/b7/100c153661dcb0e02ba5057ea516323952e2d0ee5299dc0a57a999af8110/pyspk-1.8-py3-none-any.whl (from https://pypi.org/simple/pyspk/) 2023-08-06T17:25:42,923 Found link https://files.pythonhosted.org/packages/9a/08/53bf0ab968a55a9de30dd55b463ae86dc743893fb0757a3e0f09a4e993d8/pyspk-1.8.tar.gz (from https://pypi.org/simple/pyspk/), version: 1.8 2023-08-06T17:25:42,924 Fetching project page and analyzing links: https://www.piwheels.org/simple/pyspk/ 2023-08-06T17:25:42,925 Getting page https://www.piwheels.org/simple/pyspk/ 2023-08-06T17:25:42,927 Found index url https://www.piwheels.org/simple/ 2023-08-06T17:25:43,498 Fetched page https://www.piwheels.org/simple/pyspk/ as text/html 2023-08-06T17:25:43,506 Skipping link: No binaries permitted for pyspk: https://www.piwheels.org/simple/pyspk/pyspk-1.7-py3-none-any.whl#sha256=241669df5740a5c288f362b105952aea67d094ba03f4ab69bd89715c2144455d (from https://www.piwheels.org/simple/pyspk/) 2023-08-06T17:25:43,507 Skipping link: No binaries permitted for pyspk: https://www.piwheels.org/simple/pyspk/pyspk-1.6-py3-none-any.whl#sha256=bf980607caf0e2261fcddc053db216d0a957c2cd7efefca370986f9f119729f5 (from https://www.piwheels.org/simple/pyspk/) 2023-08-06T17:25:43,507 Skipping link: No binaries permitted for pyspk: https://www.piwheels.org/simple/pyspk/pyspk-1.5-py3-none-any.whl#sha256=93305fb0b22ddc50cd6b6f015ba94f8a7a76d3d68323707388b4d03718c46854 (from https://www.piwheels.org/simple/pyspk/) 2023-08-06T17:25:43,508 Skipping link: No binaries permitted for pyspk: https://www.piwheels.org/simple/pyspk/pyspk-1.4-py3-none-any.whl#sha256=dea174bb5bfae84e6b0cc9e4565f70dc0182a66c20f3065689e23598401574a3 (from https://www.piwheels.org/simple/pyspk/) 2023-08-06T17:25:43,508 Skipping link: No binaries permitted for pyspk: https://www.piwheels.org/simple/pyspk/pyspk-1.3-py3-none-any.whl#sha256=9a5918d4a9524a9e7ae6cbb9fa78f638bf79250975d3a6df402bb9451aeea281 (from https://www.piwheels.org/simple/pyspk/) 2023-08-06T17:25:43,509 Skipping link: No binaries permitted for pyspk: https://www.piwheels.org/simple/pyspk/pyspk-1.2-py3-none-any.whl#sha256=83010a88648bf4bbe2dffd0eb64c5a1892d598c03297cd19ce0d785f28662c28 (from https://www.piwheels.org/simple/pyspk/) 2023-08-06T17:25:43,509 Skipping link: No binaries permitted for pyspk: https://www.piwheels.org/simple/pyspk/pyspk-1.1-py3-none-any.whl#sha256=2c787ef97d85f7abf4348ac04aa1b05fc7f6dc20af7fb5e0dd1551349d6446ac (from https://www.piwheels.org/simple/pyspk/) 2023-08-06T17:25:43,510 Skipping link: No binaries permitted for pyspk: https://www.piwheels.org/simple/pyspk/pyspk-1.0-py3-none-any.whl#sha256=cfc057fd75e4214b94b5938b6e9840b03b3933ac7e44d0c84e2ce139ee2f42da (from https://www.piwheels.org/simple/pyspk/) 2023-08-06T17:25:43,510 Skipping link: not a file: https://www.piwheels.org/simple/pyspk/ 2023-08-06T17:25:43,511 Skipping link: not a file: https://pypi.org/simple/pyspk/ 2023-08-06T17:25:43,546 Given no hashes to check 1 links for project 'pyspk': discarding no candidates 2023-08-06T17:25:43,582 Collecting pyspk==1.8 2023-08-06T17:25:43,587 Created temporary directory: /tmp/pip-unpack-2ijymb_8 2023-08-06T17:25:43,780 Downloading pyspk-1.8.tar.gz (154 kB) 2023-08-06T17:25:43,997 Added pyspk==1.8 from https://files.pythonhosted.org/packages/9a/08/53bf0ab968a55a9de30dd55b463ae86dc743893fb0757a3e0f09a4e993d8/pyspk-1.8.tar.gz to build tracker '/tmp/pip-build-tracker-f76pm437' 2023-08-06T17:25:44,000 Running setup.py (path:/tmp/pip-wheel-m6y_u_lv/pyspk_3022741b75fc4c579b0a8cab420de61c/setup.py) egg_info for package pyspk 2023-08-06T17:25:44,001 Created temporary directory: /tmp/pip-pip-egg-info-6ozaqbka 2023-08-06T17:25:44,002 Preparing metadata (setup.py): started 2023-08-06T17:25:44,004 Running command python setup.py egg_info 2023-08-06T17:25:45,075 # py-SP(k) - A hydrodynamical simulation-based model for the impact of baryon physics on the non-linear matter power spectrum 2023-08-06T17:25:45,076 _____ ____ ____ _ 2023-08-06T17:25:45,076 ____ __ __ / ___// __ \_/_/ /__| | 2023-08-06T17:25:45,077 / __ \/ / / /_____\__ \/ /_/ / // //_// / 2023-08-06T17:25:45,078 / /_/ / /_/ /_____/__/ / ____/ // ,< / / 2023-08-06T17:25:45,078 / .___/\__, / /____/_/ / //_/|_|/_/ 2023-08-06T17:25:45,078 /_/ /____/ |_| /_/ 2023-08-06T17:25:45,079 py-SP(k) [(Salcido et al. 2023)](https://academic.oup.com/mnras/article/523/2/2247/7165765) is a python package aimed at predicting the suppression of the total matter power spectrum due to baryonic physics as a function of the baryon fraction of haloes and redshift. 2023-08-06T17:25:45,080 ## Requirements 2023-08-06T17:25:45,080 The module requires the following: 2023-08-06T17:25:45,081 - numpy 2023-08-06T17:25:45,082 - scipy 2023-08-06T17:25:45,082 ## Installation 2023-08-06T17:25:45,083 The easiest way to install py-SP(k) is using pip: 2023-08-06T17:25:45,084 ``` 2023-08-06T17:25:45,084 pip install pyspk [--user] 2023-08-06T17:25:45,085 ``` 2023-08-06T17:25:45,085 The --user flag may be required if you do not have root privileges. 2023-08-06T17:25:45,086 ## Usage 2023-08-06T17:25:45,087 py-SP(k) is not restrictive to a particular shape of the baryon fraction – halo mass relation. In order to provide flexibility to the user, we have implemented 3 different methods to provide py-SP(k) with the required $f_b$ - $M_\mathrm{halo}$ relation. In the following sections we describe these implementations. A jupyter notebook with more detailed examples can be found within this [repository](https://github.com/jemme07/pyspk/blob/main/examples/pySPk_Examples.ipynb). 2023-08-06T17:25:45,088 ### Method 1: Using a power-law fit to the $f_b$ - $M_\mathrm{halo}$ relation 2023-08-06T17:25:45,088 py-SP(k) can be provided with power-law fitted parameters to the $f_b$ - $M_\mathrm{halo}$ relation using the functional form: 2023-08-06T17:25:45,089 $$f_b/(\Omega_b/\Omega_m)=a\left(\frac{M_{SO}}{M_{\mathrm{pivot}}}\right)^{b},$$ 2023-08-06T17:25:45,090 where $M_{SO}$ could be either $M_{200c}$ or $M_{500c}$ in $\mathrm{M}_ \odot$, $a$ is the normalisation of the $f_b$ - $M_\mathrm{halo}$ relation at $M_\mathrm{pivot}$, and $b$ is the power-law slope. The power-law can be normalised at any pivot point in units of $\mathrm{M}_ {\odot}$. If a pivot point is not given, `spk.sup_model()` uses a default pivot point of $M_{\mathrm{pivot}} = 1 \mathrm{M}_ \odot$. $a$, $b$ and $M_\mathrm{pivot}$ can be specified at each redshift independently. 2023-08-06T17:25:45,091 Next, we show a simple example using power-law fit parameters: 2023-08-06T17:25:45,091 ``` 2023-08-06T17:25:45,092 import pyspk as spk 2023-08-06T17:25:45,092 z = 0.125 2023-08-06T17:25:45,093 fb_a = 0.4 2023-08-06T17:25:45,093 fb_pow = 0.3 2023-08-06T17:25:45,094 fb_pivot = 10 ** 13.5 2023-08-06T17:25:45,094 k, sup = spk.sup_model(SO=200, z=z, fb_a=fb_a, fb_pow=fb_pow, fb_pivot=fb_pivot) 2023-08-06T17:25:45,095 ``` 2023-08-06T17:25:45,095 ### Method 2: Redshift-dependent power-law fit to the $f_b$ - $M_\mathrm{halo}$ relation. 2023-08-06T17:25:45,096 For the mass range that can be relatively well probed in current X-ray and Sunyaev-Zel'dovich effect observations (roughly $10^{13} \leq M_{500c} [\mathrm{M}_ \odot] \leq 10^{15}$), the total baryon fraction of haloes can be roughly approximated by a power-law with constant slope (e.g. Mulroy et al. 2019; Akino et al. 2022). Akino et al. (2022) determined the of the baryon budget for X-ray-selected galaxy groups and clusters using weak-lensing mass measurements. They provide a parametric redshift-dependent power-law fit to the gas mass - halo mass and stellar mass - halo mass relations, finding very little redshift evolution. 2023-08-06T17:25:45,097 We implemented a modified version of the functional form presented in Akino et al. (2022), to fit the total $f_b$ - $M_\mathrm{halo}$ relation as follows: 2023-08-06T17:25:45,097 $$f_b/(\Omega_b/\Omega_m)= \left(\frac{e^\alpha}{100}\right) \left(\frac{M_{500c}}{10^{14} \mathrm{M}_ \odot}\right)^{\beta - 1} \left(\frac{E(z)}{E(0.3)}\right)^{\gamma},$$ 2023-08-06T17:25:45,098 where $\alpha$ sets the power-law normalisation, $\beta$ sets power-law slope, $\gamma$ provides the redshift dependence and $E(z)$ is the usual dimensionless Hubble parameter. For simplicity, we use the cosmology implementation of `astropy` to specify the cosmological parameters in py-SP(k). 2023-08-06T17:25:45,099 Note that this power-law has a normalisation that is redshift dependent, while the the slope is constant in redshift. While this provides a less flexible approach compared with Methods 1 (simple power-law) and Method 4 (binned data), we find that this parametrisation provides a reasonable agreement with our simulations up to redshift $z=1$, which is the redshift range proved by Akino et al. (2022). For higher redshifts, we find that simulations require a mass-dependent slope, especially at the lower mass range. 2023-08-06T17:25:45,100 In the following example we use the redshift-dependent power-law fit parameters with a flat LambdaCDM cosmology. Note that any `astropy` cosmology could be used instead. 2023-08-06T17:25:45,101 ``` 2023-08-06T17:25:45,101 import pyspk.model as spk 2023-08-06T17:25:45,101 from astropy.cosmology import FlatLambdaCDM 2023-08-06T17:25:45,102 H0 = 70 2023-08-06T17:25:45,102 Omega_m = 0.2793 2023-08-06T17:25:45,103 cosmo = FlatLambdaCDM(H0=H0, Om0=Omega_m) 2023-08-06T17:25:45,103 alpha = 4.189 2023-08-06T17:25:45,104 beta = 1.273 2023-08-06T17:25:45,104 gamma = 0.298 2023-08-06T17:25:45,104 z = 0.5 2023-08-06T17:25:45,105 k, sup = spk.sup_model(SO=500, z=z, alpha=alpha, beta=beta, gamma=gamma, cosmo=cosmo) 2023-08-06T17:25:45,105 ``` 2023-08-06T17:25:45,106 ### Method 3: Redshift-dependent double power-law fit to the $f_b$ - $M_\mathrm{halo}$ relation. 2023-08-06T17:25:45,107 We implemented a redshift-dependent double power-law fit to the total $f_b$ - $M_\mathrm{halo}$ relation as follows: 2023-08-06T17:25:45,107 $$f_b/(\Omega_b/\Omega_m)= \frac{1}{2} \epsilon \left[\left(\frac{M_{500c}}{M_{\mathrm{pivot}}}\right)^{\alpha} + \left(\frac{M_{500c}}{M_{\mathrm{pivot}}}\right)^{\beta}\right] \left(\frac{E(z)}{E(0.3)}\right)^{\gamma},$$ 2023-08-06T17:25:45,108 where $\epsilon$ sets the normalisation at the pivot point, $M_{\mathrm{pivot}}$, in units of $\mathrm{M}_ {\odot}$, $\alpha$ and $\beta$ are the power-law slopes at low and high mass respectively, $\gamma$ provides the redshift dependence and $E(z)$ is the usual dimensionless Hubble parameter. For simplicity, we use the cosmology implementation of `astropy` to specify the cosmological parameters in py-SP(k). 2023-08-06T17:25:45,109 We find that this double redshift-dependent double power-law form provides a good fit to the whole range of baryon fractions in the ANTILLES simulations. 2023-08-06T17:25:45,110 In the following example we use the redshift-dependent double power-law fit parameters with a flat LambdaCDM cosmology. Note that any `astropy` cosmology could be used instead. 2023-08-06T17:25:45,111 ``` 2023-08-06T17:25:45,111 import pyspk.model as spk 2023-08-06T17:25:45,111 from astropy.cosmology import FlatLambdaCDM 2023-08-06T17:25:45,112 H0 = 68.0 2023-08-06T17:25:45,112 Omega_m = 0.306 2023-08-06T17:25:45,113 cosmo = FlatLambdaCDM(H0=H0, Om0=Omega_m) 2023-08-06T17:25:45,114 epsilon = 0.410 2023-08-06T17:25:45,114 alpha = -0.385 2023-08-06T17:25:45,114 beta = 0.451 2023-08-06T17:25:45,114 gamma = 0.125 2023-08-06T17:25:45,115 m_pivot = 1e13 2023-08-06T17:25:45,115 z = 0.2 2023-08-06T17:25:45,116 k, sup = spk.sup_model(SO=500, z=z, epsilon=epsilon, alpha=alpha, beta=beta, gamma=gamma, m_pivot=m_pivot, cosmo=cosmo) 2023-08-06T17:25:45,116 ``` 2023-08-06T17:25:45,117 ### Method 4: Binned data for the $f_b$ - $M_\mathrm{halo}$ relation. 2023-08-06T17:25:45,117 The final, and most flexible method is to provide py-SP(k) with the baryon fraction binned in bins of halo mass. This could be, for example, obtained from observational constraints, measured directly form simulations, or sampled from a predefined distribution or functional form. For an example using data obtained from the BAHAMAS simulations (McCarthy et al. 2017), please refer to the [examples](https://github.com/jemme07/pyspk/blob/main/examples/pySPk_Examples.ipynb) provided. 2023-08-06T17:25:45,118 ## Priors 2023-08-06T17:25:45,119 While py-SP(k) was calibrated using a wide range of sub-grid feedback parameters, some applications may require a more limited range of baryon fractions that encompass current observational constraints. For such applications, we used the gas mass - halo mass and stellar mass - halo mass constraints from the fits in Table 5 in Akino et al. (2022), and find the subset of simulations from our 400 models that agree to within $\pm 2$ or $3 \times \sigma$ of the inferred baryon budget at redshift $z=0.1$. We note that for our simulations, we include all stellar and gas particles within a spherical overdensity radius. Hence, in order to make reasonable comparisons with the fits in Akino et al. (2022), we included an additional 15\% contribution to the total stellar masses from the contribution of blue galaxies, and 30\% additional stellar mass to the brightest cluster galaxies (BCGs) to account for the diffuse intracluster light (ICL, see Akino et al. 2022). 2023-08-06T17:25:45,120 We utilised the simulations satisfying these restrictions to determine the redshift-dependent power-law parameters for the $f_b$ - $M_\mathrm{halo}$ relation up to redshift $z=1$ (Method 2), and then utilised these parameters to infer suitable priors. We limited the fitting range to $6 \times 10^{12} \leq M_{500c} [\mathrm{M}_ \odot] \leq 10^{14}$. 2023-08-06T17:25:45,121 Priors inferred from simulations that fall within $\pm 2 \times \sigma$ of the inferred baryon budget: 2023-08-06T17:25:45,121 | Parameter | Description | Prior | 2023-08-06T17:25:45,122 | ----------- | ------------------ | --------------- | 2023-08-06T17:25:45,122 | $\alpha$ | Normaliasation | $\mathcal{N}$(4.16, 0.07) | 2023-08-06T17:25:45,122 | $\beta$ | Slope | $\mathcal{N}$(1.20, 0.05) | 2023-08-06T17:25:45,123 | $\gamma$ | Redshift evolution | $\mathcal{N}$(0.39, 0.09) | 2023-08-06T17:25:45,124 where $\mathcal{N}(\mu,\sigma)$ is a Gaussian distribution with mean $\mu$ and standard deviation $\sigma$. 2023-08-06T17:25:45,124 Priors inferred from simulations that fall within $\pm 3 \times \sigma$ of the inferred baryon budget: 2023-08-06T17:25:45,125 | Parameter | Description | Prior | 2023-08-06T17:25:45,125 | ----------- | ------------------ | --------------- | 2023-08-06T17:25:45,125 | $\alpha$ | Normaliasation | $\mathcal{N}$(4.18, 0.12) | 2023-08-06T17:25:45,126 | $\beta$ | Slope | $\mathcal{N}$(1.26, 0.08) | 2023-08-06T17:25:45,126 | $\gamma$ | Redshift evolution | $\mathcal{N}$(0.42, 0.10) | 2023-08-06T17:25:45,127 where $\mathcal{N}(\mu,\sigma)$ is a Gaussian distribution with mean $\mu$ and standard deviation $\sigma$. 2023-08-06T17:25:45,127 ## Acknowledging the code 2023-08-06T17:25:45,128 Please cite py-SP(k) using: 2023-08-06T17:25:45,129 ``` 2023-08-06T17:25:45,129 @ARTICLE{SPK_Salcido_2023, 2023-08-06T17:25:45,129 author = {Salcido, Jaime and McCarthy, Ian G and Kwan, Juliana and Upadhye, Amol and Font, Andreea S}, 2023-08-06T17:25:45,130 title = "{SP(k) – a hydrodynamical simulation-based model for the impact of baryon physics on the non-linear matter power spectrum}", 2023-08-06T17:25:45,130 journal = {Monthly Notices of the Royal Astronomical Society}, 2023-08-06T17:25:45,130 volume = {523}, 2023-08-06T17:25:45,131 number = {2}, 2023-08-06T17:25:45,131 pages = {2247-2262}, 2023-08-06T17:25:45,132 year = {2023}, 2023-08-06T17:25:45,132 month = {05}, 2023-08-06T17:25:45,132 issn = {0035-8711}, 2023-08-06T17:25:45,133 doi = {10.1093/mnras/stad1474}, 2023-08-06T17:25:45,133 url = {https://doi.org/10.1093/mnras/stad1474}, 2023-08-06T17:25:45,133 eprint = {https://academic.oup.com/mnras/article-pdf/523/2/2247/50512773/stad1474.pdf}, 2023-08-06T17:25:45,134 } 2023-08-06T17:25:45,134 ``` 2023-08-06T17:25:45,134 For any questions and enquires please contact me via email at *j.salcidonegrete@ljmu.ac.uk* 2023-08-06T17:25:45,556 running egg_info 2023-08-06T17:25:45,560 creating /tmp/pip-pip-egg-info-6ozaqbka/pyspk.egg-info 2023-08-06T17:25:45,637 writing /tmp/pip-pip-egg-info-6ozaqbka/pyspk.egg-info/PKG-INFO 2023-08-06T17:25:45,642 writing dependency_links to /tmp/pip-pip-egg-info-6ozaqbka/pyspk.egg-info/dependency_links.txt 2023-08-06T17:25:45,646 writing requirements to /tmp/pip-pip-egg-info-6ozaqbka/pyspk.egg-info/requires.txt 2023-08-06T17:25:45,648 writing top-level names to /tmp/pip-pip-egg-info-6ozaqbka/pyspk.egg-info/top_level.txt 2023-08-06T17:25:45,652 writing manifest file '/tmp/pip-pip-egg-info-6ozaqbka/pyspk.egg-info/SOURCES.txt' 2023-08-06T17:25:45,888 reading manifest file '/tmp/pip-pip-egg-info-6ozaqbka/pyspk.egg-info/SOURCES.txt' 2023-08-06T17:25:45,891 reading manifest template 'MANIFEST.in' 2023-08-06T17:25:45,903 adding license file 'LICENSE.md' 2023-08-06T17:25:45,908 writing manifest file '/tmp/pip-pip-egg-info-6ozaqbka/pyspk.egg-info/SOURCES.txt' 2023-08-06T17:25:46,030 Preparing metadata (setup.py): finished with status 'done' 2023-08-06T17:25:46,047 Source in /tmp/pip-wheel-m6y_u_lv/pyspk_3022741b75fc4c579b0a8cab420de61c has version 1.8, which satisfies requirement pyspk==1.8 from https://files.pythonhosted.org/packages/9a/08/53bf0ab968a55a9de30dd55b463ae86dc743893fb0757a3e0f09a4e993d8/pyspk-1.8.tar.gz 2023-08-06T17:25:46,049 Removed pyspk==1.8 from https://files.pythonhosted.org/packages/9a/08/53bf0ab968a55a9de30dd55b463ae86dc743893fb0757a3e0f09a4e993d8/pyspk-1.8.tar.gz from build tracker '/tmp/pip-build-tracker-f76pm437' 2023-08-06T17:25:46,062 Created temporary directory: /tmp/pip-unpack-rpcnmpcx 2023-08-06T17:25:46,063 Building wheels for collected packages: pyspk 2023-08-06T17:25:46,072 Created temporary directory: /tmp/pip-wheel-4555zscq 2023-08-06T17:25:46,073 Building wheel for pyspk (setup.py): started 2023-08-06T17:25:46,076 Destination directory: /tmp/pip-wheel-4555zscq 2023-08-06T17:25:46,076 Running command python setup.py bdist_wheel 2023-08-06T17:25:47,191 # py-SP(k) - A hydrodynamical simulation-based model for the impact of baryon physics on the non-linear matter power spectrum 2023-08-06T17:25:47,193 _____ ____ ____ _ 2023-08-06T17:25:47,193 ____ __ __ / ___// __ \_/_/ /__| | 2023-08-06T17:25:47,194 / __ \/ / / /_____\__ \/ /_/ / // //_// / 2023-08-06T17:25:47,194 / /_/ / /_/ /_____/__/ / ____/ // ,< / / 2023-08-06T17:25:47,194 / .___/\__, / /____/_/ / //_/|_|/_/ 2023-08-06T17:25:47,195 /_/ /____/ |_| /_/ 2023-08-06T17:25:47,195 py-SP(k) [(Salcido et al. 2023)](https://academic.oup.com/mnras/article/523/2/2247/7165765) is a python package aimed at predicting the suppression of the total matter power spectrum due to baryonic physics as a function of the baryon fraction of haloes and redshift. 2023-08-06T17:25:47,196 ## Requirements 2023-08-06T17:25:47,197 The module requires the following: 2023-08-06T17:25:47,198 - numpy 2023-08-06T17:25:47,198 - scipy 2023-08-06T17:25:47,199 ## Installation 2023-08-06T17:25:47,199 The easiest way to install py-SP(k) is using pip: 2023-08-06T17:25:47,200 ``` 2023-08-06T17:25:47,201 pip install pyspk [--user] 2023-08-06T17:25:47,201 ``` 2023-08-06T17:25:47,202 The --user flag may be required if you do not have root privileges. 2023-08-06T17:25:47,203 ## Usage 2023-08-06T17:25:47,204 py-SP(k) is not restrictive to a particular shape of the baryon fraction – halo mass relation. In order to provide flexibility to the user, we have implemented 3 different methods to provide py-SP(k) with the required $f_b$ - $M_\mathrm{halo}$ relation. In the following sections we describe these implementations. A jupyter notebook with more detailed examples can be found within this [repository](https://github.com/jemme07/pyspk/blob/main/examples/pySPk_Examples.ipynb). 2023-08-06T17:25:47,204 ### Method 1: Using a power-law fit to the $f_b$ - $M_\mathrm{halo}$ relation 2023-08-06T17:25:47,205 py-SP(k) can be provided with power-law fitted parameters to the $f_b$ - $M_\mathrm{halo}$ relation using the functional form: 2023-08-06T17:25:47,206 $$f_b/(\Omega_b/\Omega_m)=a\left(\frac{M_{SO}}{M_{\mathrm{pivot}}}\right)^{b},$$ 2023-08-06T17:25:47,206 where $M_{SO}$ could be either $M_{200c}$ or $M_{500c}$ in $\mathrm{M}_ \odot$, $a$ is the normalisation of the $f_b$ - $M_\mathrm{halo}$ relation at $M_\mathrm{pivot}$, and $b$ is the power-law slope. The power-law can be normalised at any pivot point in units of $\mathrm{M}_ {\odot}$. If a pivot point is not given, `spk.sup_model()` uses a default pivot point of $M_{\mathrm{pivot}} = 1 \mathrm{M}_ \odot$. $a$, $b$ and $M_\mathrm{pivot}$ can be specified at each redshift independently. 2023-08-06T17:25:47,207 Next, we show a simple example using power-law fit parameters: 2023-08-06T17:25:47,208 ``` 2023-08-06T17:25:47,209 import pyspk as spk 2023-08-06T17:25:47,209 z = 0.125 2023-08-06T17:25:47,209 fb_a = 0.4 2023-08-06T17:25:47,210 fb_pow = 0.3 2023-08-06T17:25:47,210 fb_pivot = 10 ** 13.5 2023-08-06T17:25:47,211 k, sup = spk.sup_model(SO=200, z=z, fb_a=fb_a, fb_pow=fb_pow, fb_pivot=fb_pivot) 2023-08-06T17:25:47,211 ``` 2023-08-06T17:25:47,212 ### Method 2: Redshift-dependent power-law fit to the $f_b$ - $M_\mathrm{halo}$ relation. 2023-08-06T17:25:47,213 For the mass range that can be relatively well probed in current X-ray and Sunyaev-Zel'dovich effect observations (roughly $10^{13} \leq M_{500c} [\mathrm{M}_ \odot] \leq 10^{15}$), the total baryon fraction of haloes can be roughly approximated by a power-law with constant slope (e.g. Mulroy et al. 2019; Akino et al. 2022). Akino et al. (2022) determined the of the baryon budget for X-ray-selected galaxy groups and clusters using weak-lensing mass measurements. They provide a parametric redshift-dependent power-law fit to the gas mass - halo mass and stellar mass - halo mass relations, finding very little redshift evolution. 2023-08-06T17:25:47,213 We implemented a modified version of the functional form presented in Akino et al. (2022), to fit the total $f_b$ - $M_\mathrm{halo}$ relation as follows: 2023-08-06T17:25:47,214 $$f_b/(\Omega_b/\Omega_m)= \left(\frac{e^\alpha}{100}\right) \left(\frac{M_{500c}}{10^{14} \mathrm{M}_ \odot}\right)^{\beta - 1} \left(\frac{E(z)}{E(0.3)}\right)^{\gamma},$$ 2023-08-06T17:25:47,215 where $\alpha$ sets the power-law normalisation, $\beta$ sets power-law slope, $\gamma$ provides the redshift dependence and $E(z)$ is the usual dimensionless Hubble parameter. For simplicity, we use the cosmology implementation of `astropy` to specify the cosmological parameters in py-SP(k). 2023-08-06T17:25:47,216 Note that this power-law has a normalisation that is redshift dependent, while the the slope is constant in redshift. While this provides a less flexible approach compared with Methods 1 (simple power-law) and Method 4 (binned data), we find that this parametrisation provides a reasonable agreement with our simulations up to redshift $z=1$, which is the redshift range proved by Akino et al. (2022). For higher redshifts, we find that simulations require a mass-dependent slope, especially at the lower mass range. 2023-08-06T17:25:47,216 In the following example we use the redshift-dependent power-law fit parameters with a flat LambdaCDM cosmology. Note that any `astropy` cosmology could be used instead. 2023-08-06T17:25:47,217 ``` 2023-08-06T17:25:47,217 import pyspk.model as spk 2023-08-06T17:25:47,218 from astropy.cosmology import FlatLambdaCDM 2023-08-06T17:25:47,218 H0 = 70 2023-08-06T17:25:47,219 Omega_m = 0.2793 2023-08-06T17:25:47,219 cosmo = FlatLambdaCDM(H0=H0, Om0=Omega_m) 2023-08-06T17:25:47,220 alpha = 4.189 2023-08-06T17:25:47,220 beta = 1.273 2023-08-06T17:25:47,221 gamma = 0.298 2023-08-06T17:25:47,221 z = 0.5 2023-08-06T17:25:47,222 k, sup = spk.sup_model(SO=500, z=z, alpha=alpha, beta=beta, gamma=gamma, cosmo=cosmo) 2023-08-06T17:25:47,222 ``` 2023-08-06T17:25:47,223 ### Method 3: Redshift-dependent double power-law fit to the $f_b$ - $M_\mathrm{halo}$ relation. 2023-08-06T17:25:47,224 We implemented a redshift-dependent double power-law fit to the total $f_b$ - $M_\mathrm{halo}$ relation as follows: 2023-08-06T17:25:47,224 $$f_b/(\Omega_b/\Omega_m)= \frac{1}{2} \epsilon \left[\left(\frac{M_{500c}}{M_{\mathrm{pivot}}}\right)^{\alpha} + \left(\frac{M_{500c}}{M_{\mathrm{pivot}}}\right)^{\beta}\right] \left(\frac{E(z)}{E(0.3)}\right)^{\gamma},$$ 2023-08-06T17:25:47,225 where $\epsilon$ sets the normalisation at the pivot point, $M_{\mathrm{pivot}}$, in units of $\mathrm{M}_ {\odot}$, $\alpha$ and $\beta$ are the power-law slopes at low and high mass respectively, $\gamma$ provides the redshift dependence and $E(z)$ is the usual dimensionless Hubble parameter. For simplicity, we use the cosmology implementation of `astropy` to specify the cosmological parameters in py-SP(k). 2023-08-06T17:25:47,226 We find that this double redshift-dependent double power-law form provides a good fit to the whole range of baryon fractions in the ANTILLES simulations. 2023-08-06T17:25:47,227 In the following example we use the redshift-dependent double power-law fit parameters with a flat LambdaCDM cosmology. Note that any `astropy` cosmology could be used instead. 2023-08-06T17:25:47,227 ``` 2023-08-06T17:25:47,228 import pyspk.model as spk 2023-08-06T17:25:47,228 from astropy.cosmology import FlatLambdaCDM 2023-08-06T17:25:47,228 H0 = 68.0 2023-08-06T17:25:47,229 Omega_m = 0.306 2023-08-06T17:25:47,229 cosmo = FlatLambdaCDM(H0=H0, Om0=Omega_m) 2023-08-06T17:25:47,230 epsilon = 0.410 2023-08-06T17:25:47,230 alpha = -0.385 2023-08-06T17:25:47,231 beta = 0.451 2023-08-06T17:25:47,231 gamma = 0.125 2023-08-06T17:25:47,232 m_pivot = 1e13 2023-08-06T17:25:47,232 z = 0.2 2023-08-06T17:25:47,233 k, sup = spk.sup_model(SO=500, z=z, epsilon=epsilon, alpha=alpha, beta=beta, gamma=gamma, m_pivot=m_pivot, cosmo=cosmo) 2023-08-06T17:25:47,233 ``` 2023-08-06T17:25:47,234 ### Method 4: Binned data for the $f_b$ - $M_\mathrm{halo}$ relation. 2023-08-06T17:25:47,235 The final, and most flexible method is to provide py-SP(k) with the baryon fraction binned in bins of halo mass. This could be, for example, obtained from observational constraints, measured directly form simulations, or sampled from a predefined distribution or functional form. For an example using data obtained from the BAHAMAS simulations (McCarthy et al. 2017), please refer to the [examples](https://github.com/jemme07/pyspk/blob/main/examples/pySPk_Examples.ipynb) provided. 2023-08-06T17:25:47,236 ## Priors 2023-08-06T17:25:47,238 While py-SP(k) was calibrated using a wide range of sub-grid feedback parameters, some applications may require a more limited range of baryon fractions that encompass current observational constraints. For such applications, we used the gas mass - halo mass and stellar mass - halo mass constraints from the fits in Table 5 in Akino et al. (2022), and find the subset of simulations from our 400 models that agree to within $\pm 2$ or $3 \times \sigma$ of the inferred baryon budget at redshift $z=0.1$. We note that for our simulations, we include all stellar and gas particles within a spherical overdensity radius. Hence, in order to make reasonable comparisons with the fits in Akino et al. (2022), we included an additional 15\% contribution to the total stellar masses from the contribution of blue galaxies, and 30\% additional stellar mass to the brightest cluster galaxies (BCGs) to account for the diffuse intracluster light (ICL, see Akino et al. 2022). 2023-08-06T17:25:47,240 We utilised the simulations satisfying these restrictions to determine the redshift-dependent power-law parameters for the $f_b$ - $M_\mathrm{halo}$ relation up to redshift $z=1$ (Method 2), and then utilised these parameters to infer suitable priors. We limited the fitting range to $6 \times 10^{12} \leq M_{500c} [\mathrm{M}_ \odot] \leq 10^{14}$. 2023-08-06T17:25:47,241 Priors inferred from simulations that fall within $\pm 2 \times \sigma$ of the inferred baryon budget: 2023-08-06T17:25:47,242 | Parameter | Description | Prior | 2023-08-06T17:25:47,242 | ----------- | ------------------ | --------------- | 2023-08-06T17:25:47,243 | $\alpha$ | Normaliasation | $\mathcal{N}$(4.16, 0.07) | 2023-08-06T17:25:47,243 | $\beta$ | Slope | $\mathcal{N}$(1.20, 0.05) | 2023-08-06T17:25:47,244 | $\gamma$ | Redshift evolution | $\mathcal{N}$(0.39, 0.09) | 2023-08-06T17:25:47,245 where $\mathcal{N}(\mu,\sigma)$ is a Gaussian distribution with mean $\mu$ and standard deviation $\sigma$. 2023-08-06T17:25:47,245 Priors inferred from simulations that fall within $\pm 3 \times \sigma$ of the inferred baryon budget: 2023-08-06T17:25:47,246 | Parameter | Description | Prior | 2023-08-06T17:25:47,246 | ----------- | ------------------ | --------------- | 2023-08-06T17:25:47,247 | $\alpha$ | Normaliasation | $\mathcal{N}$(4.18, 0.12) | 2023-08-06T17:25:47,247 | $\beta$ | Slope | $\mathcal{N}$(1.26, 0.08) | 2023-08-06T17:25:47,247 | $\gamma$ | Redshift evolution | $\mathcal{N}$(0.42, 0.10) | 2023-08-06T17:25:47,248 where $\mathcal{N}(\mu,\sigma)$ is a Gaussian distribution with mean $\mu$ and standard deviation $\sigma$. 2023-08-06T17:25:47,249 ## Acknowledging the code 2023-08-06T17:25:47,250 Please cite py-SP(k) using: 2023-08-06T17:25:47,250 ``` 2023-08-06T17:25:47,251 @ARTICLE{SPK_Salcido_2023, 2023-08-06T17:25:47,251 author = {Salcido, Jaime and McCarthy, Ian G and Kwan, Juliana and Upadhye, Amol and Font, Andreea S}, 2023-08-06T17:25:47,251 title = "{SP(k) – a hydrodynamical simulation-based model for the impact of baryon physics on the non-linear matter power spectrum}", 2023-08-06T17:25:47,252 journal = {Monthly Notices of the Royal Astronomical Society}, 2023-08-06T17:25:47,252 volume = {523}, 2023-08-06T17:25:47,252 number = {2}, 2023-08-06T17:25:47,253 pages = {2247-2262}, 2023-08-06T17:25:47,253 year = {2023}, 2023-08-06T17:25:47,253 month = {05}, 2023-08-06T17:25:47,254 issn = {0035-8711}, 2023-08-06T17:25:47,254 doi = {10.1093/mnras/stad1474}, 2023-08-06T17:25:47,254 url = {https://doi.org/10.1093/mnras/stad1474}, 2023-08-06T17:25:47,255 eprint = {https://academic.oup.com/mnras/article-pdf/523/2/2247/50512773/stad1474.pdf}, 2023-08-06T17:25:47,255 } 2023-08-06T17:25:47,255 ``` 2023-08-06T17:25:47,256 For any questions and enquires please contact me via email at *j.salcidonegrete@ljmu.ac.uk* 2023-08-06T17:25:47,739 running bdist_wheel 2023-08-06T17:25:48,504 running build 2023-08-06T17:25:48,505 running build_py 2023-08-06T17:25:48,590 creating build 2023-08-06T17:25:48,591 creating build/lib 2023-08-06T17:25:48,593 creating build/lib/pyspk 2023-08-06T17:25:48,595 copying pyspk/__init__.py -> build/lib/pyspk 2023-08-06T17:25:48,599 copying pyspk/fit_vals.py -> build/lib/pyspk 2023-08-06T17:25:48,604 copying pyspk/model.py -> build/lib/pyspk 2023-08-06T17:25:48,608 running egg_info 2023-08-06T17:25:48,784 writing pyspk.egg-info/PKG-INFO 2023-08-06T17:25:48,789 writing dependency_links to pyspk.egg-info/dependency_links.txt 2023-08-06T17:25:48,794 writing requirements to pyspk.egg-info/requires.txt 2023-08-06T17:25:48,797 writing top-level names to pyspk.egg-info/top_level.txt 2023-08-06T17:25:48,880 reading manifest file 'pyspk.egg-info/SOURCES.txt' 2023-08-06T17:25:48,884 reading manifest template 'MANIFEST.in' 2023-08-06T17:25:48,895 adding license file 'LICENSE.md' 2023-08-06T17:25:48,900 writing manifest file 'pyspk.egg-info/SOURCES.txt' 2023-08-06T17:25:48,906 /home/piwheels/.local/lib/python3.7/site-packages/setuptools/command/build_py.py:201: _Warning: Package 'pyspk.__pycache__' is absent from the `packages` configuration. 2023-08-06T17:25:48,906 !! 2023-08-06T17:25:48,907 ******************************************************************************** 2023-08-06T17:25:48,907 ############################ 2023-08-06T17:25:48,907 # Package would be ignored # 2023-08-06T17:25:48,908 ############################ 2023-08-06T17:25:48,908 Python recognizes 'pyspk.__pycache__' as an importable package[^1], 2023-08-06T17:25:48,909 but it is absent from setuptools' `packages` configuration. 2023-08-06T17:25:48,910 This leads to an ambiguous overall configuration. If you want to distribute this 2023-08-06T17:25:48,910 package, please make sure that 'pyspk.__pycache__' is explicitly added 2023-08-06T17:25:48,910 to the `packages` configuration field. 2023-08-06T17:25:48,911 Alternatively, you can also rely on setuptools' discovery methods 2023-08-06T17:25:48,911 (for example by using `find_namespace_packages(...)`/`find_namespace:` 2023-08-06T17:25:48,912 instead of `find_packages(...)`/`find:`). 2023-08-06T17:25:48,912 You can read more about "package discovery" on setuptools documentation page: 2023-08-06T17:25:48,915 - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html 2023-08-06T17:25:48,919 If you don't want 'pyspk.__pycache__' to be distributed and are 2023-08-06T17:25:48,919 already explicitly excluding 'pyspk.__pycache__' via 2023-08-06T17:25:48,919 `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`, 2023-08-06T17:25:48,920 you can try to use `exclude_package_data`, or `include-package-data=False` in 2023-08-06T17:25:48,920 combination with a more fine grained `package-data` configuration. 2023-08-06T17:25:48,921 You can read more about "package data files" on setuptools documentation page: 2023-08-06T17:25:48,922 - https://setuptools.pypa.io/en/latest/userguide/datafiles.html 2023-08-06T17:25:48,923 [^1]: For Python, any directory (with suitable naming) can be imported, 2023-08-06T17:25:48,924 even if it does not contain any `.py` files. 2023-08-06T17:25:48,924 On the other hand, currently there is no concept of package data 2023-08-06T17:25:48,925 directory, all directories are treated like packages. 2023-08-06T17:25:48,926 ******************************************************************************** 2023-08-06T17:25:48,930 !! 2023-08-06T17:25:48,931 check.warn(importable) 2023-08-06T17:25:48,931 copying pyspk/stat_errors_200.csv -> build/lib/pyspk 2023-08-06T17:25:48,931 copying pyspk/stat_errors_500.csv -> build/lib/pyspk 2023-08-06T17:25:48,943 creating build/lib/pyspk/__pycache__ 2023-08-06T17:25:48,945 copying pyspk/__pycache__/__init__.cpython-38.pyc -> build/lib/pyspk/__pycache__ 2023-08-06T17:25:48,949 copying pyspk/__pycache__/fit_vals.cpython-38.pyc -> build/lib/pyspk/__pycache__ 2023-08-06T17:25:48,953 copying pyspk/__pycache__/model.cpython-38.pyc -> build/lib/pyspk/__pycache__ 2023-08-06T17:25:49,046 /home/piwheels/.local/lib/python3.7/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. 2023-08-06T17:25:49,046 !! 2023-08-06T17:25:49,047 ******************************************************************************** 2023-08-06T17:25:49,047 Please avoid running ``setup.py`` directly. 2023-08-06T17:25:49,048 Instead, use pypa/build, pypa/installer, pypa/build or 2023-08-06T17:25:49,048 other standards-based tools. 2023-08-06T17:25:49,048 See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. 2023-08-06T17:25:49,049 ******************************************************************************** 2023-08-06T17:25:49,049 !! 2023-08-06T17:25:49,050 self.initialize_options() 2023-08-06T17:25:49,126 installing to build/bdist.linux-armv7l/wheel 2023-08-06T17:25:49,126 running install 2023-08-06T17:25:49,187 running install_lib 2023-08-06T17:25:49,268 creating build/bdist.linux-armv7l 2023-08-06T17:25:49,269 creating build/bdist.linux-armv7l/wheel 2023-08-06T17:25:49,273 creating build/bdist.linux-armv7l/wheel/pyspk 2023-08-06T17:25:49,276 creating build/bdist.linux-armv7l/wheel/pyspk/__pycache__ 2023-08-06T17:25:49,278 copying build/lib/pyspk/__pycache__/model.cpython-38.pyc -> build/bdist.linux-armv7l/wheel/pyspk/__pycache__ 2023-08-06T17:25:49,283 copying build/lib/pyspk/__pycache__/__init__.cpython-38.pyc -> build/bdist.linux-armv7l/wheel/pyspk/__pycache__ 2023-08-06T17:25:49,287 copying build/lib/pyspk/__pycache__/fit_vals.cpython-38.pyc -> build/bdist.linux-armv7l/wheel/pyspk/__pycache__ 2023-08-06T17:25:49,291 copying build/lib/pyspk/__init__.py -> build/bdist.linux-armv7l/wheel/pyspk 2023-08-06T17:25:49,294 copying build/lib/pyspk/fit_vals.py -> build/bdist.linux-armv7l/wheel/pyspk 2023-08-06T17:25:49,299 copying build/lib/pyspk/model.py -> build/bdist.linux-armv7l/wheel/pyspk 2023-08-06T17:25:49,305 copying build/lib/pyspk/stat_errors_200.csv -> build/bdist.linux-armv7l/wheel/pyspk 2023-08-06T17:25:49,317 copying build/lib/pyspk/stat_errors_500.csv -> build/bdist.linux-armv7l/wheel/pyspk 2023-08-06T17:25:49,329 running install_egg_info 2023-08-06T17:25:49,419 Copying pyspk.egg-info to build/bdist.linux-armv7l/wheel/pyspk-1.8-py3.7.egg-info 2023-08-06T17:25:49,439 running install_scripts 2023-08-06T17:25:49,472 creating build/bdist.linux-armv7l/wheel/pyspk-1.8.dist-info/WHEEL 2023-08-06T17:25:49,478 creating '/tmp/pip-wheel-4555zscq/pyspk-1.8-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it 2023-08-06T17:25:49,483 adding 'pyspk/__init__.py' 2023-08-06T17:25:49,486 adding 'pyspk/fit_vals.py' 2023-08-06T17:25:49,492 adding 'pyspk/model.py' 2023-08-06T17:25:49,584 adding 'pyspk/stat_errors_200.csv' 2023-08-06T17:25:49,678 adding 'pyspk/stat_errors_500.csv' 2023-08-06T17:25:49,686 adding 'pyspk/__pycache__/__init__.cpython-38.pyc' 2023-08-06T17:25:49,689 adding 'pyspk/__pycache__/fit_vals.cpython-38.pyc' 2023-08-06T17:25:49,695 adding 'pyspk/__pycache__/model.cpython-38.pyc' 2023-08-06T17:25:49,701 adding 'pyspk-1.8.dist-info/LICENSE.md' 2023-08-06T17:25:49,705 adding 'pyspk-1.8.dist-info/METADATA' 2023-08-06T17:25:49,707 adding 'pyspk-1.8.dist-info/WHEEL' 2023-08-06T17:25:49,709 adding 'pyspk-1.8.dist-info/top_level.txt' 2023-08-06T17:25:49,711 adding 'pyspk-1.8.dist-info/RECORD' 2023-08-06T17:25:49,719 removing build/bdist.linux-armv7l/wheel 2023-08-06T17:25:49,886 Building wheel for pyspk (setup.py): finished with status 'done' 2023-08-06T17:25:49,898 Created wheel for pyspk: filename=pyspk-1.8-py3-none-any.whl size=154475 sha256=fb3e80be5ab874f982918c53ec204220cb020b94365c86f6c4504a7abf6d5d00 2023-08-06T17:25:49,900 Stored in directory: /tmp/pip-ephem-wheel-cache-rx8268e2/wheels/83/7a/03/c48aae9b70ee85a6ef2897e7e506937d9542cc8623ec896a5d 2023-08-06T17:25:49,930 Successfully built pyspk 2023-08-06T17:25:49,947 Removed build tracker: '/tmp/pip-build-tracker-f76pm437'