Skip to main content

An internal library containing functions and classes that can be used across Quant models.

Project description

DET Quant Library

Table of Contents

Overview

The DET Quant Library is an internal library containing functions and classes that can be used across Quant models.

Exposed Symbols

Some of the package's symbols (i.e. functions, classes, modules, etc.) are exposed via __init__.py files. They can therefore be imported with a more concise notation that does not require specifying their full path.

This section references all exposed symbols, and for each one of them, provides an exhaustive list of the ways they can be imported.

Note: The list below is auto-generated and can be udpated with the following command in the terminal:

poetry run python docs.py

List of Exposed Symbols

Classes:

  • Battery:
    • from detquantlib.assets import Battery
    • from detquantlib.assets.battery import Battery
  • DetDatabase:
    • from detquantlib.data import DetDatabase
    • from detquantlib.data.databases.detdatabase import DetDatabase
  • Entsoe:
    • from detquantlib.data import Entsoe
    • from detquantlib.data.entsoe.entsoe import Entsoe
  • OutputItem:
    • from detquantlib.outputs import OutputItem
    • from detquantlib.outputs.outputs_interface import OutputItem
  • OutputSet:
    • from detquantlib.outputs import OutputSet
    • from detquantlib.outputs.outputs_interface import OutputSet
  • PathDefinitions:
    • from detquantlib.outputs import PathDefinitions
    • from detquantlib.outputs.outputs_interface import PathDefinitions
  • Sftp:
    • from detquantlib.data import Sftp
    • from detquantlib.data.sftp.sftp import Sftp
  • WindTurbine:
    • from detquantlib.assets import WindTurbine
    • from detquantlib.assets.wind_turbine import WindTurbine
  • WindTurbineModels:
    • from detquantlib.assets import WindTurbineModels
    • from detquantlib.assets.wind_turbine import WindTurbineModels

Functions:

  • list_to_sql_columns:
    • from detquantlib.data import list_to_sql_columns
    • from detquantlib.data.databases.helpers import list_to_sql_columns
  • list_to_sql_set:
    • from detquantlib.data import list_to_sql_set
    • from detquantlib.data.databases.helpers import list_to_sql_set

Configuration

Project Structure

The project mainly follows the standard Poetry structure:

detquantlib
├── pyproject.toml
├── README.md
├── detquantlib
│   └── __init__.py
└── tests
    └── __init__.py

Dependencies

Dependency Manager

Project dependencies are managed by Poetry.

Dependabot

Automated dependency updates are executed with Dependabot.

GitHub Actions

The project's CI/CD pipeline is enforced with GitHub actions workflows.

Workflow: Continuous Integration (CI)

The continuous integration (CI) workflow runs tests to check the integrity of the codebase's content, and linters to check the consistency of its format.

The workflow was inspired by the following preconfigured templates:

  • Python package: A general workflow template for Python packages.
  • Poetry action: A GitHub action for installing and configuring Poetry.
Invoke Tasks

The workflow's checks and linters are specified with Invoke tasks, defined in a tasks.py file.

Invoke tasks can be executed directly from the terminal, using the inv (or invoke) command line tool.

For guidance on the available Invoke tasks, execute the following command in the terminal:

inv --list

Use the -h (or --help) argument for help about a particular Invoke task. For example:

inv lint -h
CI Check: Testing

Code changes are tested with the Pytest package.

The CI check is executed with the following Invoke task:

inv test -c
CI Check: Code Formatting

Linters are used to check that the code is properly formatted:

The CI check is executed with the following Invoke task:

inv lint -c

If the CI check fails, execute the following command in the terminal:

inv lint

This command fixes the parts of the code that should be reformatted. Adding the -c (or --check) optional argument instructs the command to only check if parts of the code should be reformatted, without applying any actual changes.

Workflow: Package Publisher

The package publisher workflow checks the validity of package version updates, creates version tags, and publishes package updates to PyPI.

Checking Version Updates

The workflow enforces version control:

  • The version number is specified via the version field in the pyproject.toml file.
  • The version number needs to be updated with every new master commit. If the version is not updated, the GitHub workflow will fail.
  • Version numbers should follow semantic versioning (i.e. X.Y.Z). That is:
    • X increments represent major, non-backward compatible updates.
    • Y increments represent minor, backward compatible functionality updates.
    • Z increments represent patch/bugfix, backward compatible updates.
Creating Version Tags

If the new package version is valid, the workflow automatically creates a new tag for every new master commit.

Publishing Package Updates to PyPI

The workflow automatically publishes every new master commit to PyPI.

Release Notes

When deemed necessary (especially in case of major updates), developers can document code changes in dedicated GitHub release notes.

Release notes can be created via https://github.com/Dynamic-Energy-Trading/detquantlib/releases.

In any case, all codes changes should always be properly described/documented in GitHub issues and/or pull requests.

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

detquantlib-5.1.2.tar.gz (31.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

detquantlib-5.1.2-py3-none-any.whl (38.5 kB view details)

Uploaded Python 3

File details

Details for the file detquantlib-5.1.2.tar.gz.

File metadata

  • Download URL: detquantlib-5.1.2.tar.gz
  • Upload date:
  • Size: 31.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.11.15 Linux/6.17.0-1018-azure

File hashes

Hashes for detquantlib-5.1.2.tar.gz
Algorithm Hash digest
SHA256 f75d6c8c36407b3a385a05ac4669f90ad72bb662fbb5a16b4937bd7fa7bb3d08
MD5 52ba7184f7ea9e0c2a29a79b9f6198c4
BLAKE2b-256 f0721ddaa7ea9cd6f03d345bf3a4da8bc3805c5d056c253ffe924b5d2bf355d5

See more details on using hashes here.

File details

Details for the file detquantlib-5.1.2-py3-none-any.whl.

File metadata

  • Download URL: detquantlib-5.1.2-py3-none-any.whl
  • Upload date:
  • Size: 38.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.11.15 Linux/6.17.0-1018-azure

File hashes

Hashes for detquantlib-5.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f9cf7f247cd0f3a21e3b67e08cb95f7ec51cb84e96a657867e2ed7bd96682da0
MD5 d3bcf7684878e4e25c3c17a6c68fc56a
BLAKE2b-256 f551b143c339b7691ffad7280708b32550fa84bef97bcac6bd11c3a345aac682

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