Skip to main content

image

absorb 🧽🫧🫧

absorb makes it easy to 1) collect, 2) manage, 3) query, and 4) customize datasets from nearly any data source

🚧 this is a preview release of beta software, and it is still under active development 🚧

Features

  • limitless dataset library: access to millions of datasets across 20+ diverse data sources
  • intuitive cli+python interfaces: collect or query any dataset in a single line of code
  • maximal modularity: built on open standards for frictionless integration with other tools
  • easy extensibility: add new datasets or data sources with just a few lines of code

Contents

  1. Installation
  2. Example Usage
    1. Command Line
    2. Python
  3. Supported Data Sources
  4. Output Format
  5. Configuration

Installation

basic installation

uv tool install paradigm_absorb

install with all extras

uv tool install paradigm_absorb[test,datasources,interactive]

install from source

git clone git@github.com:paradigmxyz/absorb.git
uv tool install --editable .[test,datasources,interactive]

Example Usage

Example Command Line Usage

# collect dataset and save as local files
absorb collect kalshi

# list datasets that are collected or available
absorb ls

# show schemas of dataset
absorb schema kalshi

# create new custom dataset
absorb new custom_dataset

# upload custom dataset
absorb upload custom_dataset

Example Python Usage

import absorb

# collect dataset and save as local files
absorb.collect('kalshi.metrics')

# get schemas of dataset
schema = absorb.get_schema('kalshi.metrics')

# query dataset eagerly, as polars DataFrame
df = absorb.query('kalshi.metrics')

# query dataset lazily, as polars LazyFrame
lf = absorb.query('kalshi.metrics', lazy=True)

# upload custom dataset
absorb.upload('source.table')

Supported Data Sources

🚧 under construction 🚧

absorb collects data from each of these sources:

To list all available datasets and data sources, type absorb ls on the command line.

To display information about the schema and other metadata of a dataset, type absorb help <DATASET> on the command line.

Output Format

absorb uses the filesystem as its database. Each dataset is stored as a collection of parquet files, either on local disk or in the cloud.

Datasets can be stored in any location on your disks, and absorb will use symlinks to organize those files in the ABSORB_ROOT tree.

the ABSORB_ROOT filesystem directory is organized as:

{ABSORB_ROOT}/
    datasets/
        <source>/
            tables/
                <datatype>/
                    {filename}.parquet
                table_metadata.json
            repos/
                {repo_name}/
    absorb_config.json

Configuration

absorb uses a config file to specify which datasets to track.

Schema of absorb_config.json:

{
    'version': str,
    'tracked_tables': list[TableDict],
    'use_git': bool,
    'default_bucket': {
        'rclone_remote': str | None,
        'bucket_name': str | None,
        'path_prefix': str | None,
        'provider': str | None,
    },
}

schema of dataset_config.json:

{
    'source_name': str,
    'table_name': str,
    'table_class': str,
    'parameters': dict[str, JSONValue],
    'table_version': str,
}

Metadata

Release files for paradigm_absorb 0.3.1

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

Source distribution (sdist)

Source distribution for paradigm_absorb 0.3.1
File Size Uploaded
paradigm_absorb-0.3.1.tar.gz 71.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for paradigm_absorb 0.3.1
File Interpreter ABI Platform
paradigm_absorb-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 176.2 kB

Release files / paradigm_absorb-0.3.1.tar.gz

Download URL paradigm_absorb-0.3.1.tar.gz
Size 71.7 kB
Tags Source
SHA-256 checksum
How to use checksums
36f58bca04286672c9a1322dbcecaf7ad911cfcdb2c54669ef1f7e54e689211f
BLAKE2b-256 checksum
How to use checksums
93aedb3dbbc248b838c28a2ffd865847403a64249b04493bc046d6880009e02d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.0

Release files / paradigm_absorb-0.3.1-py3-none-any.whl

Download URL paradigm_absorb-0.3.1-py3-none-any.whl
Size 104.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
42c269e2bb7f7f2e14690b6c1b8ac68417e48d913b4ff68c804211c79d701e68
BLAKE2b-256 checksum
How to use checksums
a08437b8c34ecb0cdb6fed60a6d8643642d836fe4fd0aeeb180f90c82afdadaa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.0

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

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