Accompanying source code to the blog post Finally! Bayesian Hierarchical Modelling at Scale.
NOTE: The code is GPL-2 licensed. If you require a more permissive licence, e.g. for commercial reasons, contact me to obtain a licence for your business.
In order to set up the necessary environment:
- create an environment
bhm-at-scale
with the help of conda,conda env create -f environment.yaml # or `environment.lock.yaml` for exact reproduction
- activate the new environment with
conda activate bhm-at-scale
- install
bhm-at-scale
with:python setup.py install # or `develop`
Then take a look into the notebooks
folders.
- Always keep your abstract (unpinned) dependencies updated in
environment.yaml
and eventually insetup.cfg
if you want to ship and install your package viapip
later on. - Create concrete dependencies as
environment.lock.yaml
for the exact reproduction of your environment with:For multi-OS development, consider usingconda env export -n bhm-at-scale -f environment.lock.yaml
--no-builds
during the export. - Update your current environment with respect to a new
environment.lock.yaml
using:conda env update -f environment.lock.yaml --prune
βββ AUTHORS.rst <- List of developers and maintainers.
βββ CHANGELOG.rst <- Changelog to keep track of new features and fixes.
βββ LICENSE.txt <- License as chosen on the command-line.
βββ README.md <- The top-level README for developers.
βββ data
β βββ external <- Data from third party sources.
β βββ interim <- Intermediate data that has been transformed.
β βββ processed <- The final, canonical data sets for modeling.
β βββ raw <- The original, immutable data dump.
βββ docs <- Directory for Sphinx documentation in rst or md.
βββ environment.yaml <- The conda environment file for reproducibility.
βββ notebooks <- Jupyter notebooks. Naming convention is a number (for
β ordering), the creator's initials and a description,
β e.g. `1.0-fw-initial-data-exploration`.
βββ setup.cfg <- Declarative configuration of your project.
βββ setup.py <- Use `python setup.py develop` to install for development or
| or create a distribution with `python setup.py bdist_wheel`.
βββ src
β βββ bhm_at_scale <- Actual Python package where the main functionality goes.
βββ tests <- Unit tests which can be run with `py.test`.
βββ .coveragerc <- Configuration for coverage reports of unit tests.
βββ .isort.cfg <- Configuration for git hook that sorts imports.
βββ .pre-commit-config.yaml <- Configuration of pre-commit git hooks.
This project has been set up using PyScaffold 3.2.3 and the dsproject extension 0.4. For details and usage information on PyScaffold see https://pyscaffold.org/.