Skip to main content

Core tools for use on projects by Oreum Industries

Project description

Oreum Core Tools oreum_core

CI GitHub Release publish PyPI

code style: black code style: flake8 code style: isort code style: interrogate code security: bandit


1. Description and Scope

This is an ever-growing package of core tools for use on client projects by Oreum Industries.

  • Uses scienfitic Python stack (numpy, scipy, matplotlib, seaborn, pandas, scikit-learn, etc) for EDA, data manipulation, basic ML etc
  • Enables Bayesian modelling workflow in R&D and Production (pymc, pytensor, arviz, etc)
  • Also includes utilities for text cleaning, sql scripting, file handling etc

This package is:

  • A work in progress (v0.y.z) and liable to breaking changes and inconvenience to the user
  • Solely designed for ease of use and rapid development by employees of Oreum Industries, and selected clients with guidance

This package is not:

  • Intended for public usage and will not be supported for public usage
  • Intended for contributions by anyone not an employee of Oreum Industries, and unsolicitied contributions will not be accepted.

Notes

  • Project began on 2021-01-01
  • The README.md is MacOS and POSIX oriented
  • See LICENCE.md for licensing and copyright details
  • See CONTRIBUTORS.md for list of contributors
  • This uses a logger named 'oreum_core', feel free to incorporate or ignore
  • Hosting:
    • Source code repo on GitHub
    • Source code release on GitHub
    • Package release on PyPi

2. Instructions to Create Dev Environment

For local development on MacOS

2.0 Pre-requisite installs via homebrew

  1. Install Homebrew, see instuctions at https://brew.sh
  2. Install direnv, git, git-lfs, graphviz
$> brew update && upgrade
$> brew install direnv git git-lfs graphviz

2.1 Git clone the repo

Assumes git, git-lfs and direnv installed as above

$> git clone https://github.com/oreum-industries/oreum_core
$> cd oreum_core

Then allow direnv on MacOS to automatically run file .envrc upon directory open

2.2 Create virtual environment and install dev packages

Notes:

  • We use conda virtual envs controlled by mamba (quicker than conda)
  • We install packages using miniforge (sourced from the conda-forge repo) wherever possible and only use pip for packages that are handled better by pip and/or more up-to-date on pypi
  • Packages might not be the very latest because we want stability for pymc which is usually in a state of development flux
  • See cheat sheet of conda commands
  • The Makefile creates a dev env and will also download and preinstall miniforge if not yet installed on your system

2.2.1 Create the dev environment

From the dir above oreum_core/ project dir:

$> make -C oreum_core/ dev

This will also create some files to help confirm / diagnose successful installation:

  • dev/install_log/blas_info.txt for the BLAS MKL installation for numpy
  • dev/install_log/pipdeptree[_rev].txt lists installed package deps (and reversed)
  • LICENSES_THIRD_PARTY.md details the license for each package used

2.2.2 (Optional best practice) Test successful installation of dev environment

From the dir above oreum_core/ project dir:

$> make -C oreum_core/ test-dev-env

This will also add files dev/install_log/[numpy|scipy].txt which detail successful installation (or not) for numpy, scipy

2.2.3 (Useful during env install experimentation): To remove the dev environment

From the dir above oreum_core/ project dir:

$> make -C oreum_core/ uninstall

2.3 Code Linting & Repo Control

2.3.1 Pre-commit

We use pre-commit to run a suite of automated tests for code linting & quality control and repo control prior to commit on local development machines.

  • Precommit is already installed by the make dev command (which itself calls pip install -e .[dev])
  • The pre-commit script will then run on your system upon git commit
  • See this project's .pre-commit-config.yaml for details

2.3.2 Github Actions

We use Github Actions aka Github Workflows to run:

  1. A suite of automated tests for commits received at the origin (i.e. GitHub)
  2. Publishing to PyPi upon creating a GH Release
  • See Makefile for the CLI commands that are issued
  • See .github/workflows/* for workflow details

Copyright 2023 Oreum OÜ t/a Oreum Industries. All rights reserved. See LICENSE.md.

Oreum OÜ t/a Oreum Industries, Sepapaja 6, Tallinn, 15551, Estonia, reg.16122291, oreum.io


Oreum OÜ © 2023

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

oreum_core-0.5.7.tar.gz (76.2 kB view details)

Uploaded Source

Built Distribution

oreum_core-0.5.7-py3-none-any.whl (76.2 kB view details)

Uploaded Python 3

File details

Details for the file oreum_core-0.5.7.tar.gz.

File metadata

  • Download URL: oreum_core-0.5.7.tar.gz
  • Upload date:
  • Size: 76.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for oreum_core-0.5.7.tar.gz
Algorithm Hash digest
SHA256 ba4c5a4cc2d5b8a851a950540fcd2a327ffc1644938a8b9a9a3ffb82597e30c2
MD5 d8381cd975caf832a4d78764315b5dab
BLAKE2b-256 17f1517825d1c5e75bd2070e4083f67fed846d0145d50059dedc4c8d4075d335

See more details on using hashes here.

File details

Details for the file oreum_core-0.5.7-py3-none-any.whl.

File metadata

  • Download URL: oreum_core-0.5.7-py3-none-any.whl
  • Upload date:
  • Size: 76.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for oreum_core-0.5.7-py3-none-any.whl
Algorithm Hash digest
SHA256 166f5fed2999c5aea2e314d1001dd29e67f2d387ebf1573519d3c7cb88a5079f
MD5 a62924609f79dfbbf76471bea3a99d7c
BLAKE2b-256 e89eb8c824163f0961c78c25831a670e6054fb10847c4b5b4325200d8e809b5f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page