Honeydew can integrate with Python code, including Jupyter, using the Trino Python client package.Here are some general guidelines for connecting python code to Honeydew JDBC interface.
Before you start, make sure you have the Trino Python client installed in your Jupyter environment:
pip install trino
If your organization uses a custom hostname for the JDBC connection,
you can locate it in the Honeydew UI, under the JDBC section in Settings.
It is recommended to use an API Key for setting up the connection. When
Snowflake,
Databricks or
BigQuery uses per-user OAuth,
use a per-user API key: an organization-level key
cannot run warehouse queries.
import trinofrom trino.dbapi import connectfrom trino.auth import BasicAuthenticationconn = connect( # If your organization uses a custom hostname for the JDBC connection, # you can locate it in the Honeydew UI, under the JDBC section in Settings. host="jdbc.honeydew.cloud", port=443, http_scheme='https', # For credentials, pass the API key (or a Honeydew username), # and the API secret (or the Honeydew password) auth=BasicAuthentication('<api key name>', '<api key secret>'), # catalog is based on the Honeydew "workspace" and "branch" you would like to connect to. # Omit the branch value if connecting to "prod". # For example, for workspace "tpch", branch "prod", the value would be: "tpch". catalog="<workspace>__<branch>")cur = conn.cursor()cur.execute("SHOW TABLES FROM domains")rows = cur.fetchall()print(rows)cur.execute('SELECT "orders.o_orderdate", AGG("lineitem.revenue") FROM domains.my_domain')rows = cur.fetchall()print(rows)
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Honeydew Documentation","colors":{"primary":"#abcb1a","light":"#CBE74A","dark":"#9cb918"},"logo":{"light":"https://mintcdn.com/honeydew/FY_ZgBcPUZJ2-No3/logo/logo.svg?fit=max\u0026auto=format\u0026n=FY_ZgBcPUZJ2-No3\u0026q=85\u0026s=10dbf238c7bdb5bb1ee94e85eea8049f","dark":"https://mintcdn.com/honeydew/FY_ZgBcPUZJ2-No3/logo/logo-white.svg?fit=max\u0026auto=format\u0026n=FY_ZgBcPUZJ2-No3\u0026q=85\u0026s=c774c9340ba4f0a8828b7ad8aa1e4179","href":"https://honeydew.ai"},"favicon":"https://mintcdn.com/honeydew/mXl3IrOWJ_NESw09/favicon.png?fit=max\u0026auto=format\u0026n=mXl3IrOWJ_NESw09\u0026q=85\u0026s=4b76e0217dbafaa5c1b88b130a5e62c4","navbar":{"links":[{"href":"https://app.honeydew.cloud/signup","label":"Sign Up"},{"href":"https://app.honeydew.cloud/","label":"Login"},{"href":"https://honeydew.ai","label":"Website"}],"primary":{"type":"button","label":"Book a Demo","href":"https://honeydew.ai/get-started/"}},"footer":{"socials":{"twitter":"https://twitter.com/honeydewai","linkedin":"https://www.linkedin.com/company/honeydewai","github":"https://github.com/honeydew-ai"}},"integrations":{"ga4":{"measurementId":"G-3FG56HVDQ6"},"gtm":{"tagId":"GTM-MNTHZF6"},"hotjar":{"hjid":"3749326","hjsv":"6"},"segment":{"key":"SPDgvdM9OoZSCirKWUQj58GrrjBEzOoE"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"honeydew","hasAudioNarration":false,"actualSubdomain":"honeydew","customDomains":["honeydew.ai"],"gitSource":{"type":"github","owner":"honeydew-ai","repo":"docs","deployBranch":"main","contentDirectory":"content","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae20cec8ffbca586928afcf","collectionId":"06abe275-146f-4f17-8352-4be0ab521fef","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae20cec8ffbca586928afcf"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ae20cec8ffbca586928afcf","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Integrations","count":47},{"language":"default","tag":"Modeling Reference","count":30},{"language":"default","tag":"BI Tools","count":19},{"language":"default","tag":"Management","count":16},{"language":"default","tag":"Security","count":11},{"language":"default","tag":"Recipes","count":10},{"language":"default","tag":"Advanced Modeling","count":8},{"language":"default","tag":"Authentication","count":7},{"language":"default","tag":"Governance","count":7},{"language":"default","tag":"Context Layer","count":7}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"integration/bi-tools/python","slug":"/integration/bi-tools/python","pageMetadata":{"title":"Python","description":null,"href":"/integration/bi-tools/python"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Note,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Honeydew can integrate with Python code, including `,_jsx(_components.a,{href:`/integration/bi-tools/jupyter`,children:`Jupyter`}),`, using the `,_jsx(_components.a,{href:`https://pypi.org/project/trino/`,children:`Trino Python client`}),` package.`]}),`\n`,_jsx(_components.p,{children:`Here are some general guidelines for connecting python code to Honeydew JDBC interface.`}),`\n`,_jsxs(Note,{children:[_jsxs(_components.p,{children:[`Before you start, make sure you have the `,_jsx(_components.a,{href:`https://pypi.org/project/trino/`,children:`Trino Python client`}),` installed in your Jupyter environment:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`pip`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` trino`})]}),`\n`]})})})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`If your organization uses a custom hostname for the JDBC connection,\nyou can locate it in the Honeydew UI, under the `,_jsx(_components.strong,{children:`JDBC`}),` section in `,_jsx(_components.strong,{children:`Settings`}),`.`]})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`It is recommended to use an `,_jsx(_components.a,{href:`/access-control/api-keys`,children:`API Key`}),` for setting up the connection. When\n`,_jsx(_components.a,{href:`/integration/data-sources/snowflake#oauth-authentication`,children:`Snowflake`}),`,\n`,_jsx(_components.a,{href:`/integration/data-sources/databricks#oauth-user-authentication`,children:`Databricks`}),` or\n`,_jsx(_components.a,{href:`/integration/data-sources/bigquery#oauth-user-authentication`,children:`BigQuery`}),` uses per-user OAuth,\nuse a `,_jsx(_components.a,{href:`/access-control/api-keys#per-user-api-keys`,children:`per-user API key`}),`: an organization-level key\ncannot run warehouse queries.`]})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`29`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`29`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` trino`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` trino.dbapi `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` connect`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` trino.auth `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` BasicAuthentication`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`conn `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` connect(`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # If your organization uses a custom hostname for the JDBC connection,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # you can locate it in the Honeydew UI, under the JDBC section in Settings.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` host`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"jdbc.honeydew.cloud\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` port`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`443`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` http_scheme`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'https'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # For credentials, pass the API key (or a Honeydew username),`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # and the API secret (or the Honeydew password)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` auth`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`BasicAuthentication(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'\u003capi key name>'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'\u003capi key secret>'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # catalog is based on the Honeydew \"workspace\" and \"branch\" you would like to connect to.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # Omit the branch value if connecting to \"prod\".`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # For example, for workspace \"tpch\", branch \"prod\", the value would be: \"tpch\".`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` catalog`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003cworkspace>__\u003cbranch>\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`cur `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` conn.cursor()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`cur.execute(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SHOW TABLES FROM domains\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`rows `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` cur.fetchall()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(rows)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`cur.execute(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'SELECT \"orders.o_orderdate\", AGG(\"lineitem.revenue\") FROM domains.my_domain'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`rows `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` cur.fetchall()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(rows)`})]}),`\n`]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Python","description":null,"href":"/integration/bi-tools/python"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/honeydew/82b3c90683bc6a9d/script.js"],"subdomain":"honeydew","siteName":"Honeydew Documentation","title":"Python - Honeydew Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-04T18:00:50.717Z","originalFileLocation":"integration/bi-tools/python.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Honeydew Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Python - Honeydew Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Honeydew Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://honeydew.ai/docs/integration/bi-tools/python\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://honeydew.mintlify.app/_mintlify/api/og/v2?division=SQL+Clients\u0026amp;title=Python\u0026amp;theme=0b845200c1ca80fd78144b6a\u0026amp;signature=94a0ae5bfcd5afec79face315be1e6d20c68b9c1227b53ea1bf6b0fc01f83879\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Python - Honeydew Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://honeydew.mintlify.app/_mintlify/api/og/v2?division=SQL+Clients\u0026amp;title=Python\u0026amp;theme=0b845200c1ca80fd78144b6a\u0026amp;signature=94a0ae5bfcd5afec79face315be1e6d20c68b9c1227b53ea1bf6b0fc01f83879\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/honeydew/RTEKSf7Pgej90ivg/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Honeydew Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#abcb1a\">\u003clink data-mint-head rel=\"canonical\" href=\"https://honeydew.ai/docs/integration/bi-tools/python\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/integration/bi-tools/python.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://honeydew.ai/#organization\",\"name\":\"Honeydew Documentation\",\"url\":\"https://honeydew.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/honeydew/FY_ZgBcPUZJ2-No3/logo/logo.svg?fit=max\u0026auto=format\u0026n=FY_ZgBcPUZJ2-No3\u0026q=85\u0026s=10dbf238c7bdb5bb1ee94e85eea8049f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://honeydew.ai/docs#website\",\"name\":\"Honeydew Documentation\",\"url\":\"https://honeydew.ai/docs\",\"publisher\":{\"@id\":\"https://honeydew.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://honeydew.ai/docs/integration/bi-tools/python#webpage\",\"url\":\"https://honeydew.ai/docs/integration/bi-tools/python\",\"name\":\"Python\",\"dateModified\":\"2026-10-04T18:00:50.717Z\",\"isPartOf\":{\"@id\":\"https://honeydew.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://honeydew.ai/docs/integration/bi-tools/python#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://honeydew.ai/docs/integration/bi-tools/python#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Integrations\",\"item\":\"https://honeydew.ai/docs/integration/mcp\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Clients\",\"item\":\"https://honeydew.ai/docs/integration/bi-tools/retool\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Python\",\"item\":\"https://honeydew.ai/docs/integration/bi-tools/python\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://honeydew.ai/docs/integration/bi-tools/python#article\",\"headline\":\"Python\",\"name\":\"Python\",\"url\":\"https://honeydew.ai/docs/integration/bi-tools/python\",\"mainEntityOfPage\":{\"@id\":\"https://honeydew.ai/docs/integration/bi-tools/python#webpage\"},\"dateModified\":\"2026-10-04T18:00:50.717Z\",\"publisher\":{\"@id\":\"https://honeydew.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://honeydew.ai/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Honeydew Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Honeydew Documentation","nav":{"global":null,"groups":[{"group":"Quick Start","pages":[{"title":"Introduction","href":"/introduction"},{"title":"TPC-H Walkthrough","href":"/tpch-example"},{"title":"Evaluation Process","href":"/evaluation"},{"title":"Initial Setup","href":"/initial-setup"},{"title":"Support","href":"/support"}]},{"group":"Semantic Ecosystem","pages":[{"title":"Apache Ossie (OSI)","href":"/integration/apache-ossie-osi"},{"title":"From SQL to Honeydew","href":"/migration/sql-guide"},{"title":"From DAX to Honeydew","href":"/migration/dax-guide"},{"title":"From Tableau to Honeydew","href":"/migration/tableau-guide"},{"title":"Import Tools","href":"/migration/import-tools"}]},{"group":"Modeling Reference","pages":[{"title":"Architecture","href":"/architecture"},{"title":"Semantic Compiler","href":"/semantic-compiler"},{"group":"Entity Modeling","pages":[{"title":"Entities","href":"/modeling/entities"},{"title":"Source Data","href":"/modeling/source-data"},{"title":"Relations","href":"/modeling/relations"}]},{"title":"Domains","href":"/domains"},{"group":"Calculations","pages":[{"title":"Attributes","href":"/calculations/attributes"},{"title":"Metrics","href":"/calculations/metrics"},{"title":"Filters","href":"/calculations/filters"}]},{"title":"Datasets","href":"/dynamic-datasets"},{"title":"Parameters","href":"/parameters"},{"group":"Advanced Modeling","pages":[{"title":"Order of Filtering","href":"/advanced-modeling/order-of-computation"},{"title":"Multiple Facts and Shared Dimensions","href":"/advanced-modeling/shared-dimensions"},{"title":"Conditional Filtering","href":"/advanced-modeling/conditional-filtering"},{"title":"Multi-Grain Tables","href":"/advanced-modeling/multi-grain-tables"},{"title":"Slowly Changing Dimensions","href":"/advanced-modeling/slowly-changing-dimensions"},{"title":"Time Aware Metrics","href":"/advanced-modeling/time-metrics"},{"title":"Time Spines","href":"/advanced-modeling/time-spines"},{"title":"Handling Fan-Out and Chasm Joins","href":"/advanced-modeling/mixing-granularities"}]},{"group":"Recipes","pages":[{"title":"Overview","href":"/recipes/overview"},{"title":"How much revenue comes from a specific category?","sidebarTitle":"Metric for a specific category","href":"/recipes/category-revenue"},{"title":"What share of revenue comes from a specific category?","sidebarTitle":"Category share of total","href":"/recipes/category-revenue-share"},{"title":"Are our customers coming back?","sidebarTitle":"Active customers \u0026 stickiness","href":"/recipes/active-customers"},{"title":"Are we growing compared to last year?","sidebarTitle":"Period-over-period growth","href":"/recipes/yoy-revenue-growth"},{"title":"Are customers spending more per visit?","sidebarTitle":"Fixed level of detail metric","href":"/recipes/avg-order-value"},{"title":"What fraction of orders exceed a revenue threshold?","sidebarTitle":"Share above a threshold","href":"/recipes/high-value-order-share"},{"title":"Which truck has the most consistent daily sales?","sidebarTitle":"Average per day","href":"/recipes/avg-daily-revenue"},{"title":"Can one metric show different numbers to different teams?","sidebarTitle":"BI parameters","href":"/recipes/dynamic-bi-parameters"},{"title":"How do I give different teams their own governed view of the data?","sidebarTitle":"Domain hierarchy","href":"/recipes/domain-hierarchy"}]},{"title":"YAML Schema","href":"/yaml-schema"}]},{"group":"Context Layer","pages":[{"title":"Overview","href":"/integration/context-layer/overview"},{"title":"Deep Analysis","href":"/integration/context-layer/deep-analysis"},{"title":"Agents","href":"/integration/context-layer/agents"},{"title":"Context Management","href":"/integration/context-layer/context-management"},{"title":"AI Metadata","href":"/integration/context-layer/ai-metadata"},{"title":"Building with AI","href":"/integration/context-layer/building-with-ai"},{"title":"YAML Schema","href":"/integration/context-layer/yaml-schema"}]},{"group":"Management","pages":[{"group":"Performance","pages":[{"title":"Overview","href":"/performance/overview"},{"title":"Aggregate Aware Caching","href":"/performance/aggregate-awareness"},{"title":"Incremental Aggregate Updates","href":"/performance/aggregate-incremental-updates"},{"title":"Entity Caching","href":"/performance/entity-caching"},{"title":"Filtering and Sampling","href":"/performance/filtering-and-sampling"}]},{"group":"Governance","pages":[{"title":"Metadata","href":"/governance/metadata"},{"title":"Git Version Control","href":"/governance/git-version-control"},{"title":"Change Approval","href":"/governance/change-approval"},{"group":"CI/CD Workflow","pages":[{"title":"Overview","href":"/governance/ci-cd/overview"},{"title":"GitHub Actions","icon":"github","href":"/governance/ci-cd/github-actions"}]},{"title":"Workspaces","href":"/governance/workspaces"},{"title":"Environments","href":"/governance/environments"}]},{"group":"Monitoring","pages":[{"title":"Query history","href":"/monitoring/query-history"},{"title":"Question history","href":"/monitoring/question-history"}]},{"title":"User Access Control","href":"/access-control/user-access-control"},{"title":"Row-Level Security","href":"/security/row-level-security"}]},{"group":"Integrations","pages":[{"title":"MCP Server","href":"/integration/mcp"},{"group":"Interfaces","pages":[{"title":"SQL Interface","href":"/integration/sql-interface"},{"title":"GraphQL API","href":"/integration/graphql-api"},{"title":"XMLA Interface","href":"/integration/xmla-interface"},{"title":"Snowflake Native App","icon":"snowflake","href":"/integration/snowflake-native-app"}]},{"group":"AI","pages":[{"title":"Slack App","icon":"slack","href":"/integration/context-layer/slack-app"},{"title":"Microsoft Teams App","icon":"microsoft","href":"/integration/context-layer/teams-app"},{"title":"Build an Embedded AI Analyst UI","sidebarTitle":"Embedded UI","href":"/integration/context-layer/embedded-ui"},{"title":"Streamlit","href":"/integration/context-layer/streamlit"},{"title":"LLM Providers","href":"/integration/context-layer/llm-providers"}]},{"group":"BI Tools","pages":[{"title":"Supported Tools","href":"/integration/bi-tools/supported-tools"},{"title":"Power BI","href":"/integration/bi-tools/powerbi"},{"title":"Excel","href":"/integration/bi-tools/excel"},{"title":"Tableau","href":"/integration/bi-tools/tableau"},{"title":"Looker","href":"/integration/bi-tools/looker"},{"title":"ThoughtSpot","href":"/integration/bi-tools/thoughtspot"},{"title":"Databricks","href":"/integration/bi-tools/databricks"},{"title":"Sigma","href":"/integration/bi-tools/sigma"},{"title":"Domo","href":"/integration/bi-tools/domo"},{"title":"Qlik","href":"/integration/bi-tools/qlik"},{"title":"Amazon Quick","href":"/integration/bi-tools/amazon-quick"},{"title":"Hex","href":"/integration/bi-tools/hex"},{"title":"Deepnote","href":"/integration/bi-tools/deepnote"},{"title":"Superset/Preset","href":"/integration/bi-tools/superset-preset"},{"title":"Metabase","href":"/integration/bi-tools/metabase"},{"title":"Mode Analytics","href":"/integration/bi-tools/mode"},{"title":"Lightdash","href":"/integration/bi-tools/lightdash"},{"title":"Holistics","href":"/integration/bi-tools/holistics"},{"title":"Redash","href":"/integration/bi-tools/redash"}]},{"group":"Catalogs","pages":[{"title":"Data Catalogs","href":"/integration/catalogs/supported-tools"},{"title":"Atlan","href":"/integration/catalogs/atlan"},{"title":"Collibra","href":"/integration/catalogs/collibra"},{"title":"DataHub","href":"/integration/catalogs/datahub"}]},{"group":"SQL Clients","pages":[{"title":"Retool","href":"/integration/bi-tools/retool"},{"title":"Database Tools \u0026 IDEs","href":"/integration/bi-tools/sql-tools-ides"},{"title":"Jupyter","description":null,"href":"/integration/bi-tools/jupyter"},{"title":"Python","href":"/integration/bi-tools/python"},{"title":"JavaScript","description":null,"href":"/integration/bi-tools/javascript"}]},{"group":"Data Sources","pages":[{"title":"Snowflake","icon":"snowflake","href":"/integration/data-sources/snowflake"},{"title":"Databricks","href":"/integration/data-sources/databricks"},{"title":"Google BigQuery","icon":"google","href":"/integration/data-sources/bigquery"}]},{"group":"Git","pages":[{"title":"GitHub","icon":"github","href":"/integration/git/github"},{"title":"GitLab","icon":"gitlab","href":"/integration/git/gitlab"},{"title":"Bitbucket","icon":"bitbucket","href":"/integration/git/bitbucket"},{"title":"Azure DevOps","icon":"microsoft","href":"/integration/git/azure-devops"}]},{"group":"ELT Tools","pages":[{"title":"Data Pipeline Architecture","href":"/integration/etl-tools/pipeline-architecture"},{"title":"dbt","href":"/integration/etl-tools/dbt"}]}]},{"group":"Security","pages":[{"title":"Security \u0026 Compliance","href":"/security/security"},{"title":"API Keys","href":"/access-control/api-keys"},{"group":"Authentication","pages":[{"title":"Single Sign-On (SSO)","href":"/access-control/sso"},{"title":"Okta SSO Integration (OIDC)","href":"/access-control/okta"},{"title":"Microsoft Entra ID (formerly Azure Active Directory)","href":"/access-control/entra-id"},{"title":"PingIdentity SSO Integration (SAML)","href":"/access-control/ping-identity"},{"title":"OIDC Provider SSO Integration","href":"/access-control/oidc-provider"},{"title":"SAML Provider SSO Integration","href":"/access-control/saml-provider"},{"title":"Windows Authentication (Kerberos)","href":"/access-control/windows-authentication"}]},{"title":"IP Access Control","href":"/access-control/ip-access-control"},{"title":"Vulnerability Disclosure Policy","href":"/security/vulnerability-disclosure-policy"}]},{"group":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes"}]}]},"title":"Python - Honeydew Documentation","buildId":"dpl_AUojGTPodKNPTVaxVPcxnNvkSVqo","deploymentId":"dpl_AUojGTPodKNPTVaxVPcxnNvkSVqo","dynamics":[],"chunks":[]}