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.dev0.tar.gz (8.3 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.dev0-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for python_sanity-0.1.0.dev0.tar.gz
Algorithm Hash digest
SHA256 6bfb4576bfddc9cc43b4d7ac19f406b096bcf6dcefe879802194c8cdea9eb4c3
MD5 b655f849aace2738fe7a913cb08bd0ee
BLAKE2b-256 9c00e1d5344844f81dbf7d4fed0191f1f903d769e45bc4d1561c5e50d1c6404b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_sanity-0.1.0.dev0-py3-none-any.whl
Algorithm Hash digest
SHA256 2bb51df6c7ca0bd9dc62f31b95c8a4d02211acb14cca5d8e33beb7b05d785c7a
MD5 c43ef6f2194595b32b1c6b839f3f41ec
BLAKE2b-256 f09d0c2d64a67e123d5db79a123d71731c8e432fddc9b8d8c32df561886d7875

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