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:
bhm-at-scale
with the help of conda,
conda env create -f environment.yaml # or `environment.lock.yaml` for exact reproduction
conda activate bhm-at-scale
bhm-at-scale
with:
python setup.py install # or `develop`
Then take a look into the notebooks
folders.
environment.yaml
and eventually
in setup.cfg
if you want to ship and install your package via pip
later on.environment.lock.yaml
for the exact reproduction of your
environment with:
conda env export -n bhm-at-scale -f environment.lock.yaml
For multi-OS development, consider using --no-builds
during the export.
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/.