Skip to main content

Python client for Sanity.io CMS HTTP API

Project description

sanity-python

Python client for Sanity.io CMS HTTP API.

ℹ️ Note: This package is an active fork of the original project at OmniPro-Group/sanity-python.

Examples

from sanity.client import Client
import logging
from scripts.colour_json import print_json_in_colour

logger = logging.getLogger(__name__)

project_id = "<project id>"
dataset = "<dataset>"
token = "<api token>"

client = Client(
    logger,
    project_id=project_id,
    dataset=dataset,
    token=token,
    use_cdn=True
)

# GET Query Method
result = client.query(
    groq="count(*[_type == 'post'])",
    explain=False,
    variables={
        "language": "es",
        "t": 4
    },
    method="GET"
)
print_json_in_colour(result)

# POST Query Method
result = client.query(
    groq="count(*[_type == 'post'])",
    variables={
        "language": "es",
        "t": 4
    },
    method="POST"
)
print_json_in_colour(result)

# Assets
png = "https://some.web.address.com/some_name.png"
result = client.assets(file_path=png)
print_json_in_colour(result)

png2 = "some_file_path/name"
result = client.assets(file_path=png2, mime_type="image/png")
print_json_in_colour(result)

# Mutate
transactions = [
    {
        "createOrReplace": {
            "_id": "speaker.asdf",
            "_type": "speaker",
            "title": "Some Name",
            "slug": {
                "_type": "slug",
                "current": "some-name"
            },
            'image': {
              '_type': 'image',
              'asset': {
                '_ref': 'image-6ffb37d2eeabc7d07b3ca485c7b497e77bdcccd4-1232x1280-png',
                '_type': 'reference'
              }
            }
        }
    }
]
result = client.mutate(
    transactions=transactions,
    return_ids=False,
    return_documents=False,
    visibility="sync",
    dry_run=False,
)
print_json_in_colour(result)

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

python_sanity-0.1.0.dev3.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

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

python_sanity-0.1.0.dev3-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file python_sanity-0.1.0.dev3.tar.gz.

File metadata

  • Download URL: python_sanity-0.1.0.dev3.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.2

File hashes

Hashes for python_sanity-0.1.0.dev3.tar.gz
Algorithm Hash digest
SHA256 beb73d33512b8e5ae7726c7ee0eda50648b5360d9322242706ae25c172f1f2b9
MD5 4835a49f57ab28f557f2c5f794b128a3
BLAKE2b-256 bee82f4004ad17a872f33eb1aaaa56268d94624cf35cd23f86c1c71e11ad44e5

See more details on using hashes here.

File details

Details for the file python_sanity-0.1.0.dev3-py3-none-any.whl.

File metadata

File hashes

Hashes for python_sanity-0.1.0.dev3-py3-none-any.whl
Algorithm Hash digest
SHA256 329a9880f3e4d994fb3955358b4876c7a4c3a6d48748acbb62095463d86c2e6c
MD5 362caee8cd9e2035359440d73ceb148b
BLAKE2b-256 5b27df72a3a02fc931131307f16f208fecd4f18b23703bfd3f8c6c8c53b9fce0

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