Skip to main content

datablob

Client for Updating a Simple Data Warehouse on Blob Storage

design philosophy

  • optimize for simplicity and user friendliness
  • storage is cheap (compared to compute)
  • pre-compute as much as possible
  • should work out of the box
  • advanced configuration should be opt-in
  • explicit is better than implicit
  • straightforwardness over magic

install

pip install datablob

supported formats

basic usage

from datablob import DataBlobClient

client = DataBlobClient(
    bucket_name="example-test-bucket-123", bucket_path="prefix/to/dataportal"
)

rows = [
    {
        "name": "Random Building",
        "@lat": 35.XXXXXX,
        "@lon": -85.XXXXXX,
        "@geom": { "type": "Polygon", "coordinates": [...] } // geojson geometry
    }
]

client.update_dataset(
    name="parking_lots", # name of the dataset, shouldn't include spaces or special characters
    version="2", # version of the dataset. It's a string, so you can version as you like.
    data=rows, # list of dictionaries.  Each row is a dictionary.
    latitude_key="@lat", # name of the latitude column 
    longitude="@lon", # name of the longitude column
    polygon_key="@geom", # name of the column with a polygon geometry in it (if applicable)
    xlsx=True # set to True to include an Excel file in output
)
# automatically creates the following files
# s3://example-test-bucket-123/prefix/to/dataportal/buildings/v2/meta.json
# s3://example-test-bucket-123/prefix/to/dataportal/buildings/v2/data.csv
# s3://example-test-bucket-123/prefix/to/dataportal/buildings/v2/data.points.geojson
# s3://example-test-bucket-123/prefix/to/dataportal/buildings/v2/data.polygons.geojson
# s3://example-test-bucket-123/prefix/to/dataportal/buildings/v2/data.json
# s3://example-test-bucket-123/prefix/to/dataportal/buildings/v2/data.jsonl
# s3://example-test-bucket-123/prefix/to/dataportal/buildings/v2/data.parquet
# s3://example-test-bucket-123/prefix/to/dataportal/buildings/v2/data.points.shp.zip
# s3://example-test-bucket-123/prefix/to/dataportal/buildings/v2/data.polygons.shp.zip
# s3://example-test-bucket-123/prefix/to/dataportal/buildings/v2/data.tsv
# s3://example-test-bucket-123/prefix/to/dataportal/buildings/v2/data.xlsx

advanced usage

client.update_dataset(
    name="fleet",
    version="1",
    data=rows,
    column_names=["ID", "Make", "Model", "Year"] # specify column names and their order
    description="List of Vehicles in Fleet",
    xlsx=True,
    xlsx_data_types=["Number", "Text", "Text", "Number"] # specify format of cell values in columns
)

examples

Metadata

Release files for datablob 0.9.0

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

Source distribution (sdist)

Source distribution for datablob 0.9.0
File Size Uploaded
datablob-0.9.0.tar.gz 9.7 kB Details

Built distribution (wheel)

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

Total release size: 19.1 kB

Release files / datablob-0.9.0.tar.gz

Download URL datablob-0.9.0.tar.gz
Size 9.7 kB
Tags Source
SHA-256 checksum
How to use checksums
3a42f66877179ea265954041fbd1aee0dc7a03f366bc0b6bb5b18efc12a7111b
BLAKE2b-256 checksum
How to use checksums
738dc3f958ef80679064ee5e3b0c8b295e8f1a08e450169dc2e4ea3404c4ae3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / datablob-0.9.0-py3-none-any.whl

Download URL datablob-0.9.0-py3-none-any.whl
Size 9.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9eeba4a82c95a3f514f6156c12d6f14d3b4e7f0a7a54e51d2dcfd598d9af28b4
BLAKE2b-256 checksum
How to use checksums
a06c3145ec2b8fd8aefecaad28879e7a484e078f15a28a87d7c6f0c53a1638b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.10.0

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

This release

0.9.0 This release

2 release files

0.8.0

2 release files

0.7.0

1 release file

0.6.0

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.0

1 release file

0.0.0

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