Skip to main content

This is bqtools a handy set of utils to help create big query tables from json objects and make them into tables (so get the schema) and to create json new line files. Plus a set of common functions to ease writing biq query python code

Goals

  • Simplify handling and move between big query stryuctured data and json data
  • Allow you to create big query table schemas from json structures (as resource or schema objects) uses reflection of types
  • Provides easy generation of views for day partitioned tabled
    • head - latest data
    • diff views for time snap shots of data i.e. each day partition has current view of data
  • Calculate valid json structures from representative json data that can be used as basis of big query schemas
  • Clean json data such that it can be loaded into big query
    • Replace bare lists with dictionaries
    • Replace field names with valid values that can be column names in big query (removes spaces, characters not allowed in field names using same algorithms big query uses when auto detecting schemas)
    • Encodes json output of dates, datetimes, times, timedeltas encoded in format acceptable for big query corresponding field types
  • Generate code for bq command line tool from bq table structures
  • Simplify common tasks of handling big query data
    • Basic tests on dataset or tables existing
    • Schema patching compare an existing schema to a template json object calculate if changed and generate a merged schema that can be used in a patch
    • Flattening views to avoid view depth limits
import bqtools

# if you load a json object say something like
foo = {
        "id":1,
        "description":""
        "aboolean":False
      }
      
# generate a schema
table = {
   "type":"TABLE",
   "location":os.environ["location"],
   "tableReference":{
       "projectId": os.environ["projectid"],
       "datasetId": os.environ["dataset"],
       "tableId": key
   },
   "timePartitioning":{
       "type": "DAY",
       "expirationMs": "94608000000"
   },
   "schema": {}
}

# use bqtools to create a schema structure
table["schema"]["fields"] = bqtools.get_bq_schema_from_json_repr(foo)

Demonstrates some of power of tools via bqsync that is installed if you install via pip.

pip install bqtools-json

Or you can find the source for this here

Also provides means to handle views across environments supports SQL views based upon Jinja templates. So you can "configure" views for different environments.

Provides support for calculating view dependencies such views can be applied in parallel tranches.

Provides support for calculating authorised views based on set of views "compiled"

Compilation flattens views to lower view depth but automatically does not flatten authorised views to keep access to data tight as feasible.

Metadata

Release files for bqtools-json 1.0.13

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

Source distribution (sdist)

Source distribution for bqtools-json 1.0.13
File Size Uploaded Provenance
bqtools_json-1.0.13.tar.gz 75.4 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for bqtools-json 1.0.13
File Interpreter ABI Platform
bqtools_json-1.0.13-py3-none-any.whl Python 3 none any Details

Total release size: 133.9 kB

Release files / bqtools_json-1.0.13.tar.gz

Download URL bqtools_json-1.0.13.tar.gz
Size 75.4 kB
Tags Source
SHA-256 checksum
How to use checksums
bc130fa49f718f4c0bae0578b44d73a5ae9723cfa12c7ccc56a4a96b37ff3e17
BLAKE2b-256 checksum
How to use checksums
2e17a443f799ab70346da63ebf837215c790b8f8778df26f14f54f3e67bb4aef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 13, 2026.

Transparency log

Release files / bqtools_json-1.0.13-py3-none-any.whl

Download URL bqtools_json-1.0.13-py3-none-any.whl
Size 58.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d3234ed5edb1ff559431fc29d2a9da273f8bac278aa3ea800b077ecd4341e626
BLAKE2b-256 checksum
How to use checksums
763cb60effc84bcdede39f7e0527aa4548597967c465781deed581a6528a18fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 13, 2026.

Transparency log

Security for bqtools-json 1.0.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for bqtools_json-1.0.13.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 13, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.13 This release

2 release files Full provenance

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