Skip to main content

python interface for interacting with flashbots mempool dumpster

Project description

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,
}

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

paradigm_absorb-0.3.1.tar.gz (71.7 kB view details)

Uploaded Source

Built Distribution

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

paradigm_absorb-0.3.1-py3-none-any.whl (104.5 kB view details)

Uploaded Python 3

File details

Details for the file paradigm_absorb-0.3.1.tar.gz.

File metadata

  • Download URL: paradigm_absorb-0.3.1.tar.gz
  • Upload date:
  • Size: 71.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.0

File hashes

Hashes for paradigm_absorb-0.3.1.tar.gz
Algorithm Hash digest
SHA256 36f58bca04286672c9a1322dbcecaf7ad911cfcdb2c54669ef1f7e54e689211f
MD5 748a8155ab95b37d1431f5f2c0e93538
BLAKE2b-256 93aedb3dbbc248b838c28a2ffd865847403a64249b04493bc046d6880009e02d

See more details on using hashes here.

File details

Details for the file paradigm_absorb-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for paradigm_absorb-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 42c269e2bb7f7f2e14690b6c1b8ac68417e48d913b4ff68c804211c79d701e68
MD5 5cc7793e0c82522cd94f7d41943dddf8
BLAKE2b-256 a08437b8c34ecb0cdb6fed60a6d8643642d836fe4fd0aeeb180f90c82afdadaa

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