From f60eda1c1e8caf0ec2274b18b3fb2252304196db Mon Sep 17 00:00:00 2001
From: Fernando de Oliveira <5161098+fedeoliv@users.noreply.github.com>
Date: Wed, 22 Jan 2025 16:44:26 -0500
Subject: [PATCH 1/3] docs(examples/azure): add async snippet (#1787)

---
 examples/azure_ad.py | 79 ++++++++++++++++++++++++++++++++------------
 1 file changed, 58 insertions(+), 21 deletions(-)

diff --git a/examples/azure_ad.py b/examples/azure_ad.py
index 1b0d81863d..67e2f23713 100755
--- a/examples/azure_ad.py
+++ b/examples/azure_ad.py
@@ -1,30 +1,67 @@
-from azure.identity import DefaultAzureCredential, get_bearer_token_provider
+import asyncio
 
-from openai import AzureOpenAI
+from openai.lib.azure import AzureOpenAI, AsyncAzureOpenAI, AzureADTokenProvider, AsyncAzureADTokenProvider
 
-token_provider = get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default")
+scopes = "https://cognitiveservices.azure.com/.default"
 
-
-# may change in the future
+# May change in the future
 # https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#rest-api-versioning
 api_version = "2023-07-01-preview"
 
 # https://learn.microsoft.com/en-us/azure/cognitive-services/openai/how-to/create-resource?pivots=web-portal#create-a-resource
 endpoint = "https://my-resource.openai.azure.com"
 
-client = AzureOpenAI(
-    api_version=api_version,
-    azure_endpoint=endpoint,
-    azure_ad_token_provider=token_provider,
-)
-
-completion = client.chat.completions.create(
-    model="deployment-name",  # e.g. gpt-35-instant
-    messages=[
-        {
-            "role": "user",
-            "content": "How do I output all files in a directory using Python?",
-        },
-    ],
-)
-print(completion.to_json())
+deployment_name = "deployment-name"  # e.g. gpt-35-instant
+
+
+def sync_main() -> None:
+    from azure.identity import DefaultAzureCredential, get_bearer_token_provider
+
+    token_provider: AzureADTokenProvider = get_bearer_token_provider(DefaultAzureCredential(), scopes)
+
+    client = AzureOpenAI(
+        api_version=api_version,
+        azure_endpoint=endpoint,
+        azure_ad_token_provider=token_provider,
+    )
+
+    completion = client.chat.completions.create(
+        model=deployment_name,
+        messages=[
+            {
+                "role": "user",
+                "content": "How do I output all files in a directory using Python?",
+            }
+        ],
+    )
+
+    print(completion.to_json())
+
+
+async def async_main() -> None:
+    from azure.identity.aio import DefaultAzureCredential, get_bearer_token_provider
+
+    token_provider: AsyncAzureADTokenProvider = get_bearer_token_provider(DefaultAzureCredential(), scopes)
+
+    client = AsyncAzureOpenAI(
+        api_version=api_version,
+        azure_endpoint=endpoint,
+        azure_ad_token_provider=token_provider,
+    )
+
+    completion = await client.chat.completions.create(
+        model=deployment_name,
+        messages=[
+            {
+                "role": "user",
+                "content": "How do I output all files in a directory using Python?",
+            }
+        ],
+    )
+
+    print(completion.to_json())
+
+
+sync_main()
+
+asyncio.run(async_main())

From 9c44192be5776d9252d36dc027a33c60b33d81b2 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
 <142633134+stainless-app[bot]@users.noreply.github.com>
Date: Thu, 23 Jan 2025 12:39:04 +0000
Subject: [PATCH 2/3] chore(internal): minor formatting changes (#2050)

---
 .github/workflows/ci.yml | 1 +
 scripts/bootstrap        | 2 +-
 scripts/lint             | 1 -
 3 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index de70348b9c..26f497db1f 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -29,6 +29,7 @@ jobs:
 
       - name: Run lints
         run: ./scripts/lint
+
   test:
     name: test
     runs-on: ubuntu-latest
diff --git a/scripts/bootstrap b/scripts/bootstrap
index 29df07e77b..9910ec05fc 100755
--- a/scripts/bootstrap
+++ b/scripts/bootstrap
@@ -4,7 +4,7 @@ set -e
 
 cd "$(dirname "$0")/.."
 
-if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ]; then
+if ! command -v rye >/dev/null 2>&1 && [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ]; then
   brew bundle check >/dev/null 2>&1 || {
     echo "==> Installing Homebrew dependencies…"
     brew bundle
diff --git a/scripts/lint b/scripts/lint
index 64495ee345..55bc1dd711 100755
--- a/scripts/lint
+++ b/scripts/lint
@@ -9,4 +9,3 @@ rye run lint
 
 echo "==> Making sure it imports"
 rye run python -c 'import openai'
-

From af177080de996ca05c56eede8acb3cba5b90b93c Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
 <142633134+stainless-app[bot]@users.noreply.github.com>
Date: Fri, 24 Jan 2025 05:04:08 +0000
Subject: [PATCH 3/3] release: 1.60.1

---
 .release-please-manifest.json |  2 +-
 CHANGELOG.md                  | 13 +++++++++++++
 pyproject.toml                |  2 +-
 src/openai/_version.py        |  2 +-
 4 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 88c2f64985..0b39405429 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
 {
-  ".": "1.60.0"
+  ".": "1.60.1"
 }
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9f90d3dd22..873a6a254d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,18 @@
 # Changelog
 
+## 1.60.1 (2025-01-24)
+
+Full Changelog: [v1.60.0...v1.60.1](https://github.com/openai/openai-python/compare/v1.60.0...v1.60.1)
+
+### Chores
+
+* **internal:** minor formatting changes ([#2050](https://github.com/openai/openai-python/issues/2050)) ([9c44192](https://github.com/openai/openai-python/commit/9c44192be5776d9252d36dc027a33c60b33d81b2))
+
+
+### Documentation
+
+* **examples/azure:** add async snippet ([#1787](https://github.com/openai/openai-python/issues/1787)) ([f60eda1](https://github.com/openai/openai-python/commit/f60eda1c1e8caf0ec2274b18b3fb2252304196db))
+
 ## 1.60.0 (2025-01-22)
 
 Full Changelog: [v1.59.9...v1.60.0](https://github.com/openai/openai-python/compare/v1.59.9...v1.60.0)
diff --git a/pyproject.toml b/pyproject.toml
index 80c79ff585..fdfc9c73e3 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [project]
 name = "openai"
-version = "1.60.0"
+version = "1.60.1"
 description = "The official Python library for the openai API"
 dynamic = ["readme"]
 license = "Apache-2.0"
diff --git a/src/openai/_version.py b/src/openai/_version.py
index ef0ddcfc5c..b87aa8abd4 100644
--- a/src/openai/_version.py
+++ b/src/openai/_version.py
@@ -1,4 +1,4 @@
 # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
 
 __title__ = "openai"
-__version__ = "1.60.0"  # x-release-please-version
+__version__ = "1.60.1"  # x-release-please-version