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.dev2.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.dev2-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: python_sanity-0.1.0.dev2.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.dev2.tar.gz
Algorithm Hash digest
SHA256 3f084ddbd54736fa0ac32fe58e4399afdb6d3b4e0044d8d3943e85d16dfcb279
MD5 e460b3940041966624e3a11acbbffaab
BLAKE2b-256 d69df4161d8088cdc840f7493a03ab551b478b0f8aa95a3217c72eaecf349844

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_sanity-0.1.0.dev2-py3-none-any.whl
Algorithm Hash digest
SHA256 9ff36c553e64250a9853500a4d769852957a31f3603a0740588150ba741b7d07
MD5 ad85f8149c7d6ed8fb6aeb1a4f696bfd
BLAKE2b-256 4603961215179ad83f1d6a4fc746566264f599b5223c357172335c663b9d3662

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