Skip to main content

Versatile Data Kit SDK Core

monthly download count for vdk-core

To build or contribute, see CONTRIBUTING.md.

Versatile Data Kit enables data engineers, data scientists and data analysts to develop, deploy, run, and manage data processing workloads (called "Data Job"). A "Data Job" enables Data Engineers to implement automated pull ingestion (E in ELT) and batch data transformation into a database (T in ELT).

Build

Make sure you have python3 installed. It's strongly recommended to use a virtual environment, and also to use a python installer like pyenv or conda. We recommend pyenv.

CICD is managed through gitlab-ci.yml. You can see how to build, run tests, deploy there best. All related CICD scripts are in /cicd/ folder.

Installation

All Versatile Data Kit SDK Core releases can be found in PyPI.

Install Versatile Data Kit SDK Core with:

pip install vdk-core

This will install console application called vdk

Then run help to see what it can do:

vdk --help

Plugins

Plugins are a powerful way of extending or adapting Versatile Data Kit for all kinds of use-cases. For more information see Plugins doc.

A note on configs and secrets

Secrets also double as config keys.. At the end of the initialize_job hook, the secrets provider is called and all secrets keys are fetched. Any configs that match a secrets key have their values overridden. However, if a plugin caches some config values in the initialize_job hook and re-uses them later, those values will not be overridden by secrets.

Example

This will not work

vdk secrets --set-prompt mytoken
    @hookimpl
    def initialize_job(self, context: JobContext) -> None:
        token = context.core_context.configuration.get_value("mytoken") # will be None if not set in config.ini

        if token:
            myapi.login(token)

        # secrets override configs after initialize_job but before run_job

Plugins should do this instead

    @hookimpl(hookwrapper=True)
    def run_job(self, context: JobContext) -> Optional[ExecutionResult]:
        # config is already overridden by secrets
        token = context.core_context.configuration.get_value("mytoken")

        if token:
            myapi.login(token)

This is a limitation on the current implementation, which might change after https://github.com/vmware/versatile-data-kit/issues/3210

Public interfaces

Any backwards compatibility guarantees apply only to public interfaces. Public interfaces are modules and packages defined or imported in vdk.api.*. unless the documentation explicitly declares them to be provisional or internal interfaces. Anything else is considered internal. All public interfaces (classes or methods) must have documentation.

Metadata

Release files for vdk-core 0.3.1284831234

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vdk-core 0.3.1284831234
File Size Uploaded
vdk_core-0.3.1284831234.tar.gz 118.7 kB Details

Release files / vdk_core-0.3.1284831234.tar.gz

Download URL vdk_core-0.3.1284831234.tar.gz
Size 118.7 kB
Tags Source
SHA-256 checksum
How to use checksums
3d38eb549cf781e12aca09e2ea87eec1c2679aa4cea09e6d6e36bda976433afe
BLAKE2b-256 checksum
How to use checksums
a7edb947b791a040f7c3e1c825beda91b1a6fe558a36b4d4379a437cd1188d24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release history Release notifications | RSS feed

This release

0.3.1284831234 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page