openai / openai-python
File Churn

File change frequency (churn) shows the distribution of file updates (days with at least one commit).

Overview
File Change Frequency Overall
  • There are 467 files with 39,030 lines of code.
    • 0 files changed more than 100 times (0 lines of code)
    • 1 file changed 51-100 times (2 lines of code)
    • 9 files changed 21-50 times (7,175 lines of code)
    • 69 files changed 6-20 times (14,076 lines of code)
    • 388 files changed 1-5 times (17,777 lines of code)
0% | <1% | 18% | 36% | 45%
Legend:
101+
51-100
21-50
6-20
1-5

explore: grouped by folders | grouped by update frequency | data
Contributors Count Frequency Overall
  • There are 467 files with 39,030 lines of code.
    • 0 files changed by more than 25 contributors (0 lines of code)
    • 1 file changed by 11-25 contributors (591 lines of code)
    • 8 files changed by 6-10 contributors (7,161 lines of code)
    • 172 files changed by 2-5 contributors (20,159 lines of code)
    • 286 files changed by 1 contributor (11,119 lines of code)
0% | 1% | 18% | 51% | 28%
Legend:
26+
11-25
6-10
2-5
1

explore: grouped by folders | grouped by contributors count | data
File Change Frequency per File Extension
py, md, yaml, json, gitignore, txt, sh, toml
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
py0% | <1% | 18% | 36% | 45%
File Change Frequency per Logical Decomposition
primary
primary (file change frequency)
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
src0% | <1% | 18% | 36% | 45%
scripts0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
Most Frequently Changed Files (Top 50)

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
_version.py
in src/openai
2 - 2023-11-06 2026-06-03 65 5 +86 / -82 107565488+stainless-bot@use... apcha@openai.com
runs.py
in src/openai/resources/beta/threads/runs
1883 48 2023-11-06 2026-04-30 36 4 +3802 / -918 robert@craigie.dev apcha@openai.com
threads.py
in src/openai/resources/beta/threads
1065 35 2023-11-06 2026-04-30 32 4 +2521 / -702 robert@craigie.dev apcha@openai.com
_base_client.py
in src/openai
1699 97 2023-11-06 2026-04-08 32 8 +2452 / -418 robert@craigie.dev 92274156+karpetrosyan@users...
completion_create_params.py
in src/openai/types/chat
90 - 2023-11-06 2026-06-03 31 6 +564 / -196 robert@craigie.dev apcha@openai.com
run_create_params.py
in src/openai/types/beta/threads
59 - 2023-11-06 2025-03-11 24 3 +376 / -131 robert@craigie.dev robert@craigie.dev
_models.py
in src/openai
628 30 2023-11-06 2026-05-15 24 7 +910 / -51 schnerd@users.noreply.githu... xuanqi@openai.com
thread_create_and_run_params.py
in src/openai/types/beta
103 - 2023-11-06 2025-03-11 23 3 +548 / -162 robert@craigie.dev robert@craigie.dev
files.py
in src/openai/resources
485 16 2023-11-06 2025-03-11 22 4 +956 / -209 robert@craigie.dev robert@craigie.dev
_client.py
in src/openai
1163 162 2023-11-06 2026-04-30 22 6 +947 / -223 robert@craigie.dev apcha@openai.com
__init__.py
in src/openai
348 30 2023-11-06 2026-06-01 20 6 +561 / -89 robert@craigie.dev apcha@openai.com
run.py
in src/openai/types/beta/threads
63 - 2023-11-06 2024-11-04 19 3 +353 / -111 robert@craigie.dev dev+git@stainlessapi.com
azure.py
in src/openai/lib
591 22 2023-11-06 2026-04-30 19 11 +749 / -71 schnerd@users.noreply.githu... apcha@openai.com
embeddings.py
in src/openai/resources
158 11 2023-11-06 2026-04-30 18 7 +344 / -72 robert@craigie.dev apcha@openai.com
completions.py
in src/openai/resources
354 12 2023-11-06 2024-11-04 18 4 +1421 / -295 robert@craigie.dev dev+git@stainlessapi.com
transcriptions.py
in src/openai/resources/audio
429 16 2023-11-06 2025-10-17 18 6 +543 / -146 robert@craigie.dev dmeadows@stainless.com
assistant_create_params.py
in src/openai/types/beta
55 - 2023-11-06 2025-03-11 16 3 +363 / -167 robert@craigie.dev robert@craigie.dev
__init__.py
in src/openai/types
133 - 2023-11-06 2026-04-08 16 5 +117 / -50 robert@craigie.dev 92274156+karpetrosyan@users...
speech.py
in src/openai/resources/audio
137 9 2023-11-06 2024-11-04 15 3 +308 / -96 robert@craigie.dev dev+git@stainlessapi.com
translations.py
in src/openai/resources/audio
234 13 2023-11-06 2024-11-04 15 4 +429 / -76 robert@craigie.dev dev+git@stainlessapi.com
assistant_update_params.py
in src/openai/types/beta
74 - 2023-11-06 2025-03-11 14 4 +221 / -96 robert@craigie.dev robert@craigie.dev
_types.py
in src/openai
152 11 2023-11-06 2024-10-28 14 4 +443 / -222 schnerd@users.noreply.githu... dev+git@stainlessapi.com
_utils.py
in src/openai/_utils
270 36 2023-11-06 2024-12-19 14 5 +476 / -63 schnerd@users.noreply.githu... krpratic@microsoft.com
images.py
in src/openai/resources
745 17 2023-11-06 2026-05-06 14 5 +989 / -257 robert@craigie.dev apcha@openai.com
assistant.py
in src/openai/types/beta
28 - 2023-11-06 2024-11-04 13 3 +224 / -93 robert@craigie.dev dev+git@stainlessapi.com
steps.py
in src/openai/resources/beta/threads/runs
243 11 2023-11-06 2024-11-04 13 3 +426 / -67 robert@craigie.dev dev+git@stainlessapi.com
_streaming.py
in src/openai
313 24 2023-11-06 2025-12-02 13 3 +503 / -91 schnerd@users.noreply.githu... robert@craigie.dev
responses.py
in src/openai/resources/responses
2646 91 2025-03-11 2026-06-03 13 6 +2024 / -63 robert@craigie.dev apcha@openai.com
thread_create_params.py
in src/openai/types/beta
60 - 2023-11-06 2025-03-11 12 3 +242 / -64 robert@craigie.dev robert@craigie.dev
moderations.py
in src/openai/resources
109 9 2023-11-06 2024-11-04 12 4 +233 / -54 robert@craigie.dev dev+git@stainlessapi.com
__init__.py
in src/openai/types/beta
31 - 2023-11-06 2025-03-11 11 3 +58 / -28 robert@craigie.dev robert@craigie.dev
__init__.py
in src/openai/_utils
67 - 2023-11-06 2024-12-19 11 3 +175 / -121 schnerd@users.noreply.githu... krpratic@microsoft.com
beta.py
in src/openai/resources/beta
125 30 2023-11-06 2025-10-06 11 4 +241 / -96 robert@craigie.dev dmeadows@stainless.com
_transform.py
in src/openai/_utils
255 11 2023-11-06 2025-05-27 11 3 +403 / -21 schnerd@users.noreply.githu... robert@craigie.dev
_response.py
in src/openai
470 45 2023-11-06 2024-09-17 11 4 +954 / -120 schnerd@users.noreply.githu... robert@craigie.dev
__init__.py
in src/openai/types/chat
99 - 2023-11-06 2025-08-11 10 4 +118 / -54 robert@craigie.dev robert@craigie.dev
_compat.py
in src/openai
156 25 2023-11-06 2024-11-25 10 5 +293 / -68 schnerd@users.noreply.githu... hkawamura0130@gmail.com
models.py
in src/openai/resources
206 12 2023-11-06 2024-04-23 10 3 +336 / -52 robert@craigie.dev 107565488+stainless-bot@use...
completion_create_params.py
in src/openai/types
29 - 2023-11-06 2024-11-04 9 4 +227 / -40 robert@craigie.dev dev+git@stainlessapi.com
__init__.py
in src/openai/types/beta/threads
43 - 2023-11-06 2024-08-06 9 2 +71 / -25 robert@craigie.dev robert@craigie.dev
_exceptions.py
in src/openai
124 10 2023-11-06 2026-04-08 9 5 +195 / -11 schnerd@users.noreply.githu... 92274156+karpetrosyan@users...
assistants.py
in src/openai/resources/beta
610 14 2024-04-17 2025-03-11 9 3 +977 / -114 107565488+stainless-bot@use... robert@craigie.dev
completions.py
in src/openai/resources/chat/completions
1264 29 2025-03-11 2026-06-03 9 4 +379 / -251 robert@craigie.dev apcha@openai.com
completion_usage.py
in src/openai/types
17 - 2023-11-06 2024-11-04 8 4 +58 / -5 schnerd@users.noreply.githu... dev+git@stainlessapi.com
message_create_params.py
in src/openai/types/beta/threads
18 - 2023-11-06 2024-06-07 8 2 +75 / -23 robert@craigie.dev 107565488+stainless-bot@use...
run_step.py
in src/openai/types/beta/threads/runs
35 - 2023-11-06 2024-03-19 8 2 +127 / -17 robert@craigie.dev 107565488+stainless-bot@use...
job_create_params.py
in src/openai/types/fine_tuning
36 - 2023-11-06 2024-11-04 8 4 +145 / -9 robert@craigie.dev dev+git@stainlessapi.com
transcription_create_params.py
in src/openai/types/audio
37 - 2023-11-06 2024-11-04 8 4 +86 / -19 robert@craigie.dev dev+git@stainlessapi.com
chat.py
in src/openai/resources/chat
56 14 2023-11-06 2025-01-20 8 3 +118 / -38 schnerd@users.noreply.githu... 95188570+ninoristeski@users...
chat_completion_chunk.py
in src/openai/types/chat
98 - 2023-11-06 2026-06-03 8 4 +307 / -15 robert@craigie.dev apcha@openai.com
Files With Most Churn (Top 50)
Based on the number of lines added and deleted across all commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
runs.py
in src/openai/resources/beta/threads/runs
1883 48 2023-11-06 2026-04-30 36 4 +3802 / -918 robert@craigie.dev apcha@openai.com
threads.py
in src/openai/resources/beta/threads
1065 35 2023-11-06 2026-04-30 32 4 +2521 / -702 robert@craigie.dev apcha@openai.com
_base_client.py
in src/openai
1699 97 2023-11-06 2026-04-08 32 8 +2452 / -418 robert@craigie.dev 92274156+karpetrosyan@users...
responses.py
in src/openai/resources/responses
2646 91 2025-03-11 2026-06-03 13 6 +2024 / -63 robert@craigie.dev apcha@openai.com
completions.py
in src/openai/resources
354 12 2023-11-06 2024-11-04 18 4 +1421 / -295 robert@craigie.dev dev+git@stainlessapi.com
bedrock.py
in src/openai/lib
346 12 2026-05-28 2026-06-01 2 2 +1346 / -8 jim@openai.com apcha@openai.com
images.py
in src/openai/resources
745 17 2023-11-06 2026-05-06 14 5 +989 / -257 robert@craigie.dev apcha@openai.com
_client.py
in src/openai
1163 162 2023-11-06 2026-04-30 22 6 +947 / -223 robert@craigie.dev apcha@openai.com
files.py
in src/openai/resources
485 16 2023-11-06 2025-03-11 22 4 +956 / -209 robert@craigie.dev robert@craigie.dev
assistants.py
in src/openai/resources/beta
610 14 2024-04-17 2025-03-11 9 3 +977 / -114 107565488+stainless-bot@use... robert@craigie.dev
_response.py
in src/openai
470 45 2023-11-06 2024-09-17 11 4 +954 / -120 schnerd@users.noreply.githu... robert@craigie.dev
_assistants.py
in src/openai/lib/streaming
615 46 2024-03-13 2024-11-27 5 5 +1049 / -11 107565488+stainless-bot@use... baballev@users.noreply.gith...
_models.py
in src/openai
628 30 2023-11-06 2026-05-15 24 7 +910 / -51 schnerd@users.noreply.githu... xuanqi@openai.com
files.py
in src/openai/resources/vector_stores
671 20 2025-03-11 2025-07-07 2 1 +945 / -2 robert@craigie.dev robert@craigie.dev
vector_stores.py
in src/openai/resources/vector_stores
557 28 2025-03-11 2025-03-11 1 1 +868 / -0 robert@craigie.dev robert@craigie.dev
_validators.py
in src/openai/lib
597 25 2023-11-06 2024-04-09 4 3 +818 / -9 schnerd@users.noreply.githu... 107565488+stainless-bot@use...
azure.py
in src/openai/lib
591 22 2023-11-06 2026-04-30 19 11 +749 / -71 schnerd@users.noreply.githu... apcha@openai.com
file_batches.py
in src/openai/resources/vector_stores
573 16 2025-03-11 2025-09-02 2 1 +805 / -4 robert@craigie.dev robert@craigie.dev
_completions.py
in src/openai/lib/streaming/chat
545 29 2024-08-06 2026-02-13 7 5 +779 / -10 robert@craigie.dev 92274156+karpetrosyan@users...
completion_create_params.py
in src/openai/types/chat
90 - 2023-11-06 2026-06-03 31 6 +564 / -196 robert@craigie.dev apcha@openai.com
jobs.py
in src/openai/resources/fine_tuning/jobs
542 23 2024-04-15 2024-11-04 7 3 +715 / -19 107565488+stainless-bot@use... dev+git@stainlessapi.com
thread_create_and_run_params.py
in src/openai/types/beta
103 - 2023-11-06 2025-03-11 23 3 +548 / -162 robert@craigie.dev robert@craigie.dev
transcriptions.py
in src/openai/resources/audio
429 16 2023-11-06 2025-10-17 18 6 +543 / -146 robert@craigie.dev dmeadows@stainless.com
_types.py
in src/openai
152 11 2023-11-06 2024-10-28 14 4 +443 / -222 schnerd@users.noreply.githu... dev+git@stainlessapi.com
messages.py
in src/openai/resources/beta/threads
468 14 2024-04-17 2024-11-04 5 2 +649 / -10 107565488+stainless-bot@use... dev+git@stainlessapi.com
__init__.py
in src/openai
348 30 2023-11-06 2026-06-01 20 6 +561 / -89 robert@craigie.dev apcha@openai.com
completions.py
in src/openai/resources/chat/completions
1264 29 2025-03-11 2026-06-03 9 4 +379 / -251 robert@craigie.dev apcha@openai.com
_streaming.py
in src/openai
313 24 2023-11-06 2025-12-02 13 3 +503 / -91 schnerd@users.noreply.githu... robert@craigie.dev
_legacy_response.py
in src/openai
320 34 2024-01-15 2024-09-17 8 3 +503 / -42 107565488+stainless-bot@use... robert@craigie.dev
_utils.py
in src/openai/_utils
270 36 2023-11-06 2024-12-19 14 5 +476 / -63 schnerd@users.noreply.githu... krpratic@microsoft.com
batches.py
in src/openai/resources
322 13 2024-04-15 2024-06-03 7 1 +511 / -24 107565488+stainless-bot@use... 107565488+stainless-bot@use...
assistant_create_params.py
in src/openai/types/beta
55 - 2023-11-06 2025-03-11 16 3 +363 / -167 robert@craigie.dev robert@craigie.dev
run_create_params.py
in src/openai/types/beta/threads
59 - 2023-11-06 2025-03-11 24 3 +376 / -131 robert@craigie.dev robert@craigie.dev
translations.py
in src/openai/resources/audio
234 13 2023-11-06 2024-11-04 15 4 +429 / -76 robert@craigie.dev dev+git@stainlessapi.com
steps.py
in src/openai/resources/beta/threads/runs
243 11 2023-11-06 2024-11-04 13 3 +426 / -67 robert@craigie.dev dev+git@stainlessapi.com
run.py
in src/openai/types/beta/threads
63 - 2023-11-06 2024-11-04 19 3 +353 / -111 robert@craigie.dev dev+git@stainlessapi.com
_transform.py
in src/openai/_utils
255 11 2023-11-06 2025-05-27 11 3 +403 / -21 schnerd@users.noreply.githu... robert@craigie.dev
embeddings.py
in src/openai/resources
158 11 2023-11-06 2026-04-30 18 7 +344 / -72 robert@craigie.dev apcha@openai.com
__init__.py
in src/openai/resources
254 - 2023-11-06 2025-03-11 8 3 +299 / -112 robert@craigie.dev robert@craigie.dev
speech.py
in src/openai/resources/audio
137 9 2023-11-06 2024-11-04 15 3 +308 / -96 robert@craigie.dev dev+git@stainlessapi.com
models.py
in src/openai/resources
206 12 2023-11-06 2024-04-23 10 3 +336 / -52 robert@craigie.dev 107565488+stainless-bot@use...
_compat.py
in src/openai
156 25 2023-11-06 2024-11-25 10 5 +293 / -68 schnerd@users.noreply.githu... hkawamura0130@gmail.com
response.py
in src/openai/types/responses
124 1 2025-03-11 2026-06-03 6 3 +349 / -7 robert@craigie.dev apcha@openai.com
_responses.py
in src/openai/lib/streaming/responses
300 18 2025-03-11 2025-03-11 1 1 +354 / -0 robert@craigie.dev robert@craigie.dev
beta.py
in src/openai/resources/beta
125 30 2023-11-06 2025-10-06 11 4 +241 / -96 robert@craigie.dev dmeadows@stainless.com
_workload.py
in src/openai/auth
219 17 2026-04-08 2026-06-03 5 4 +314 / -15 92274156+karpetrosyan@users... apcha@openai.com
chat_completion_chunk.py
in src/openai/types/chat
98 - 2023-11-06 2026-06-03 8 4 +307 / -15 robert@craigie.dev apcha@openai.com
assistant.py
in src/openai/types/beta
28 - 2023-11-06 2024-11-04 13 3 +224 / -93 robert@craigie.dev dev+git@stainlessapi.com
assistant_update_params.py
in src/openai/types/beta
74 - 2023-11-06 2025-03-11 14 4 +221 / -96 robert@craigie.dev robert@craigie.dev
_completions.py
in src/openai/lib/_parsing
220 13 2024-08-06 2026-02-13 6 3 +279 / -32 robert@craigie.dev 92274156+karpetrosyan@users...
Files With Most Contributors (Top 50)
Based on the number of unique email addresses found in commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
azure.py
in src/openai/lib
591 22 2023-11-06 2026-04-30 19 11 +749 / -71 schnerd@users.noreply.githu... apcha@openai.com
_base_client.py
in src/openai
1699 97 2023-11-06 2026-04-08 32 8 +2452 / -418 robert@craigie.dev 92274156+karpetrosyan@users...
_models.py
in src/openai
628 30 2023-11-06 2026-05-15 24 7 +910 / -51 schnerd@users.noreply.githu... xuanqi@openai.com
embeddings.py
in src/openai/resources
158 11 2023-11-06 2026-04-30 18 7 +344 / -72 robert@craigie.dev apcha@openai.com
completion_create_params.py
in src/openai/types/chat
90 - 2023-11-06 2026-06-03 31 6 +564 / -196 robert@craigie.dev apcha@openai.com
_client.py
in src/openai
1163 162 2023-11-06 2026-04-30 22 6 +947 / -223 robert@craigie.dev apcha@openai.com
__init__.py
in src/openai
348 30 2023-11-06 2026-06-01 20 6 +561 / -89 robert@craigie.dev apcha@openai.com
transcriptions.py
in src/openai/resources/audio
429 16 2023-11-06 2025-10-17 18 6 +543 / -146 robert@craigie.dev dmeadows@stainless.com
responses.py
in src/openai/resources/responses
2646 91 2025-03-11 2026-06-03 13 6 +2024 / -63 robert@craigie.dev apcha@openai.com
_version.py
in src/openai
2 - 2023-11-06 2026-06-03 65 5 +86 / -82 107565488+stainless-bot@use... apcha@openai.com
__init__.py
in src/openai/types
133 - 2023-11-06 2026-04-08 16 5 +117 / -50 robert@craigie.dev 92274156+karpetrosyan@users...
images.py
in src/openai/resources
745 17 2023-11-06 2026-05-06 14 5 +989 / -257 robert@craigie.dev apcha@openai.com
_utils.py
in src/openai/_utils
270 36 2023-11-06 2024-12-19 14 5 +476 / -63 schnerd@users.noreply.githu... krpratic@microsoft.com
_compat.py
in src/openai
156 25 2023-11-06 2024-11-25 10 5 +293 / -68 schnerd@users.noreply.githu... hkawamura0130@gmail.com
_exceptions.py
in src/openai
124 10 2023-11-06 2026-04-08 9 5 +195 / -11 schnerd@users.noreply.githu... 92274156+karpetrosyan@users...
_proxy.py
in src/openai/_utils
45 8 2023-11-06 2025-05-07 7 5 +90 / -25 schnerd@users.noreply.githu... browniebroke@users.noreply....
_completions.py
in src/openai/lib/streaming/chat
545 29 2024-08-06 2026-02-13 7 5 +779 / -10 robert@craigie.dev 92274156+karpetrosyan@users...
chat_completion.py
in src/openai/types/chat
78 - 2023-11-06 2026-06-03 7 5 +235 / -13 robert@craigie.dev apcha@openai.com
image_generate_params.py
in src/openai/types
28 - 2023-11-06 2026-05-06 6 5 +96 / -21 robert@craigie.dev apcha@openai.com
image_edit_params.py
in src/openai/types
26 - 2023-11-06 2026-05-06 6 5 +96 / -17 robert@craigie.dev apcha@openai.com
_files.py
in src/openai
107 10 2023-11-06 2026-05-15 5 5 +134 / -11 robert@craigie.dev xuanqi@openai.com
_assistants.py
in src/openai/lib/streaming
615 46 2024-03-13 2024-11-27 5 5 +1049 / -11 107565488+stainless-bot@use... baballev@users.noreply.gith...
runs.py
in src/openai/resources/beta/threads/runs
1883 48 2023-11-06 2026-04-30 36 4 +3802 / -918 robert@craigie.dev apcha@openai.com
threads.py
in src/openai/resources/beta/threads
1065 35 2023-11-06 2026-04-30 32 4 +2521 / -702 robert@craigie.dev apcha@openai.com
files.py
in src/openai/resources
485 16 2023-11-06 2025-03-11 22 4 +956 / -209 robert@craigie.dev robert@craigie.dev
completions.py
in src/openai/resources
354 12 2023-11-06 2024-11-04 18 4 +1421 / -295 robert@craigie.dev dev+git@stainlessapi.com
translations.py
in src/openai/resources/audio
234 13 2023-11-06 2024-11-04 15 4 +429 / -76 robert@craigie.dev dev+git@stainlessapi.com
assistant_update_params.py
in src/openai/types/beta
74 - 2023-11-06 2025-03-11 14 4 +221 / -96 robert@craigie.dev robert@craigie.dev
_types.py
in src/openai
152 11 2023-11-06 2024-10-28 14 4 +443 / -222 schnerd@users.noreply.githu... dev+git@stainlessapi.com
moderations.py
in src/openai/resources
109 9 2023-11-06 2024-11-04 12 4 +233 / -54 robert@craigie.dev dev+git@stainlessapi.com
_response.py
in src/openai
470 45 2023-11-06 2024-09-17 11 4 +954 / -120 schnerd@users.noreply.githu... robert@craigie.dev
beta.py
in src/openai/resources/beta
125 30 2023-11-06 2025-10-06 11 4 +241 / -96 robert@craigie.dev dmeadows@stainless.com
__init__.py
in src/openai/types/chat
99 - 2023-11-06 2025-08-11 10 4 +118 / -54 robert@craigie.dev robert@craigie.dev
completions.py
in src/openai/resources/chat/completions
1264 29 2025-03-11 2026-06-03 9 4 +379 / -251 robert@craigie.dev apcha@openai.com
completion_create_params.py
in src/openai/types
29 - 2023-11-06 2024-11-04 9 4 +227 / -40 robert@craigie.dev dev+git@stainlessapi.com
transcription_create_params.py
in src/openai/types/audio
37 - 2023-11-06 2024-11-04 8 4 +86 / -19 robert@craigie.dev dev+git@stainlessapi.com
completion_usage.py
in src/openai/types
17 - 2023-11-06 2024-11-04 8 4 +58 / -5 schnerd@users.noreply.githu... dev+git@stainlessapi.com
chat_completion_chunk.py
in src/openai/types/chat
98 - 2023-11-06 2026-06-03 8 4 +307 / -15 robert@craigie.dev apcha@openai.com
job_create_params.py
in src/openai/types/fine_tuning
36 - 2023-11-06 2024-11-04 8 4 +145 / -9 robert@craigie.dev dev+git@stainlessapi.com
__init__.py
in src/openai/types/audio
20 - 2023-11-06 2024-09-27 6 4 +31 / -15 robert@craigie.dev robert@craigie.dev
translation_create_params.py
in src/openai/types/audio
12 - 2023-11-06 2024-11-04 6 4 +60 / -10 robert@craigie.dev dev+git@stainlessapi.com
transcription.py
in src/openai/types/audio
26 - 2023-11-06 2024-08-02 6 4 +13 / -3 schnerd@users.noreply.githu... dev+git@stainlessapi.com
translation.py
in src/openai/types/audio
4 - 2023-11-06 2024-08-02 5 4 +12 / -3 schnerd@users.noreply.githu... dev+git@stainlessapi.com
13 - 2023-11-06 2024-11-04 5 4 +57 / -6 robert@craigie.dev dev+git@stainlessapi.com
model_deleted.py
in src/openai/types
6 - 2023-11-06 2024-08-02 5 4 +16 / -3 schnerd@users.noreply.githu... dev+git@stainlessapi.com
_workload.py
in src/openai/auth
219 17 2026-04-08 2026-06-03 5 4 +314 / -15 92274156+karpetrosyan@users... apcha@openai.com
run_create_params.py
in src/openai/types/beta/threads
59 - 2023-11-06 2025-03-11 24 3 +376 / -131 robert@craigie.dev robert@craigie.dev
thread_create_and_run_params.py
in src/openai/types/beta
103 - 2023-11-06 2025-03-11 23 3 +548 / -162 robert@craigie.dev robert@craigie.dev
run.py
in src/openai/types/beta/threads
63 - 2023-11-06 2024-11-04 19 3 +353 / -111 robert@craigie.dev dev+git@stainlessapi.com
assistant_create_params.py
in src/openai/types/beta
55 - 2023-11-06 2025-03-11 16 3 +363 / -167 robert@craigie.dev robert@craigie.dev
Files With Least Contributors (Top 50)
Based on the number of unique email addresses found in commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
usage.py
in src/openai/resources/admin/organization
1146 19
projects.py
in src/openai/resources/admin/organization/projects
662 80
certificates.py
in src/openai/resources/admin/organization
496 18
audit_log_list_response.py
in src/openai/types/admin/organization
493 -
spend_alerts.py
in src/openai/resources/admin/organization/projects
435 14
users.py
in src/openai/resources/admin/organization/projects/users
423 20
runs.py
in src/openai/resources/evals/runs
420 20
skills.py
in src/openai/resources/skills
417 26
evals.py
in src/openai/resources/evals
412 20
service_accounts.py
in src/openai/resources/admin/organization/projects
410 14
roles.py
in src/openai/resources/admin/organization/projects
408 14
groups.py
in src/openai/resources/admin/organization/groups
394 26
permissions.py
in src/openai/resources/fine_tuning/checkpoints
392 14
spend_alerts.py
in src/openai/resources/admin/organization
389 14
roles.py
in src/openai/resources/admin/organization
378 14
versions.py
in src/openai/resources/skills/versions
367 19
files.py
in src/openai/resources/containers/files
360 19
groups.py
in src/openai/resources/admin/organization/projects/groups
359 19
roles.py
in src/openai/resources/admin/organization/projects/users
351 13
roles.py
in src/openai/resources/admin/organization/projects/groups
351 13
containers.py
in src/openai/resources/containers
345 19
items.py
in src/openai/resources/conversations
335 13
users.py
in src/openai/resources/admin/organization/users
335 19
threads.py
in src/openai/resources/beta/chatkit
329 14
organization.py
in src/openai/resources/admin/organization
316 74
conversations.py
in src/openai/resources/conversations
310 18
roles.py
in src/openai/resources/admin/organization/users
307 13
users.py
in src/openai/resources/admin/organization/groups
307 13
roles.py
in src/openai/resources/admin/organization/groups
307 13
admin_api_keys.py
in src/openai/resources/admin/organization
297 13
invites.py
in src/openai/resources/admin/organization
296 13
audit_logs.py
in src/openai/resources/admin/organization
269 10
certificates.py
in src/openai/resources/admin/organization/projects
262 14
api_keys.py
in src/openai/resources/admin/organization/projects
256 12
response_input_item.py
in src/openai/types/responses
231 -
rate_limits.py
in src/openai/resources/admin/organization/projects
226 11
model_permissions.py
in src/openai/resources/admin/organization/projects
226 11
output_items.py
in src/openai/resources/evals/runs
209 11
sessions.py
in src/openai/resources/beta/chatkit
188 10
hosted_tool_permissions.py
in src/openai/resources/admin/organization/projects
181 10
data_retention.py
in src/openai/resources/admin/organization/projects
173 10
__init__.py
in src/openai/resources/admin/organization
170 -
__init__.py
in src/openai/resources/admin/organization/projects
170 -
graders.py
in src/openai/resources/fine_tuning/alpha
165 10
data_retention.py
in src/openai/resources/admin/organization
157 10
input_tokens.py
in src/openai/resources/responses
151 9
run_retrieve_response.py
in src/openai/types/evals
151 -
run_list_response.py
in src/openai/types/evals
151 -
run_create_response.py
in src/openai/types/evals
151 -
run_cancel_response.py
in src/openai/types/evals
151 -
Correlations

File Size vs. Number of Changes: 467 points

src/openai/_version.py x: 2 lines of code y: 65 # changes src/openai/auth/_workload.py x: 219 lines of code y: 5 # changes src/openai/resources/chat/completions/completions.py x: 1264 lines of code y: 9 # changes src/openai/resources/responses/responses.py x: 2646 lines of code y: 13 # changes src/openai/types/chat/chat_completion.py x: 78 lines of code y: 7 # changes src/openai/types/chat/chat_completion_chunk.py x: 98 lines of code y: 8 # changes src/openai/types/chat/completion_create_params.py x: 90 lines of code y: 31 # changes src/openai/types/responses/response.py x: 124 lines of code y: 6 # changes src/openai/types/responses/response_create_params.py x: 83 lines of code y: 5 # changes src/openai/types/responses/responses_client_event.py x: 71 lines of code y: 4 # changes src/openai/types/responses/responses_client_event_param.py x: 78 lines of code y: 4 # changes src/openai/__init__.py x: 348 lines of code y: 20 # changes src/openai/lib/bedrock.py x: 346 lines of code y: 2 # changes src/openai/_files.py x: 107 lines of code y: 5 # changes src/openai/_models.py x: 628 lines of code y: 24 # changes src/openai/types/responses/response_compact_params.py x: 112 lines of code y: 2 # changes src/openai/resources/realtime/calls.py x: 481 lines of code y: 1 # changes src/openai/types/realtime/__init__.py x: 239 lines of code y: 1 # changes src/openai/types/realtime/audio_transcription.py x: 20 lines of code y: 1 # changes src/openai/types/realtime/audio_transcription_param.py x: 19 lines of code y: 1 # changes src/openai/types/realtime/call_accept_params.py x: 47 lines of code y: 1 # changes src/openai/types/realtime/realtime_audio_config_input.py x: 14 lines of code y: 1 # changes src/openai/types/realtime/realtime_reasoning.py x: 6 lines of code y: 1 # changes src/openai/types/realtime/realtime_reasoning_effort.py x: 3 lines of code y: 1 # changes src/openai/types/realtime/realtime_response_create_params.py x: 29 lines of code y: 1 # changes src/openai/types/realtime/realtime_session_create_request.py x: 48 lines of code y: 1 # changes src/openai/types/realtime/realtime_session_create_response.py x: 153 lines of code y: 1 # changes src/openai/types/realtime/realtime_transcription_session_create_response.py x: 24 lines of code y: 1 # changes src/openai/resources/images.py x: 745 lines of code y: 14 # changes src/openai/types/admin/organization/usage_audio_speeches_response.py x: 137 lines of code y: 1 # changes src/openai/types/chat/chat_completion_token_logprob.py x: 12 lines of code y: 5 # changes src/openai/types/image_edit_params.py x: 26 lines of code y: 6 # changes src/openai/types/image_model.py x: 12 lines of code y: 2 # changes src/openai/types/responses/response_text_delta_event.py x: 19 lines of code y: 2 # changes src/openai/types/responses/tool.py x: 136 lines of code y: 3 # changes src/openai/types/responses/tool_param.py x: 132 lines of code y: 4 # changes src/openai/lib/azure.py x: 591 lines of code y: 19 # changes src/openai/_client.py x: 1163 lines of code y: 22 # changes src/openai/resources/beta/threads/runs/runs.py x: 1883 lines of code y: 36 # changes src/openai/resources/beta/threads/threads.py x: 1065 lines of code y: 32 # changes src/openai/resources/embeddings.py x: 158 lines of code y: 18 # changes src/openai/_base_client.py x: 1699 lines of code y: 32 # changes src/openai/_exceptions.py x: 124 lines of code y: 9 # changes src/openai/types/__init__.py x: 133 lines of code y: 16 # changes src/openai/types/shared/__init__.py x: 18 lines of code y: 6 # changes src/openai/lib/_parsing/_completions.py x: 220 lines of code y: 6 # changes src/openai/lib/_parsing/_responses.py x: 156 lines of code y: 2 # changes src/openai/lib/streaming/chat/_completions.py x: 545 lines of code y: 7 # changes src/openai/types/responses/response_function_web_search.py x: 33 lines of code y: 2 # changes src/openai/resources/videos.py x: 872 lines of code y: 2 # changes src/openai/_streaming.py x: 313 lines of code y: 13 # changes src/openai/resources/uploads/uploads.py x: 433 lines of code y: 5 # changes src/openai/resources/audio/transcriptions.py x: 429 lines of code y: 18 # changes src/openai/resources/beta/beta.py x: 125 lines of code y: 11 # changes src/openai/resources/realtime/realtime.py x: 996 lines of code y: 2 # changes src/openai/resources/beta/realtime/sessions.py x: 180 lines of code y: 1 # changes src/openai/types/beta/realtime/session.py x: 64 lines of code y: 1 # changes src/openai/types/beta/realtime/session_create_params.py x: 69 lines of code y: 1 # changes src/openai/types/beta/realtime/session_update_event.py x: 76 lines of code y: 1 # changes src/openai/resources/beta/realtime/realtime.py x: 597 lines of code y: 3 # changes src/openai/resources/vector_stores/file_batches.py x: 573 lines of code y: 2 # changes src/openai/types/responses/__init__.py x: 327 lines of code y: 2 # changes src/openai/types/responses/response_text_config.py x: 8 lines of code y: 2 # changes src/openai/types/chat/__init__.py x: 99 lines of code y: 10 # changes src/openai/types/chat/chat_completion_message_tool_call_param.py x: 8 lines of code y: 3 # changes src/openai/types/chat/chat_completion_tool_param.py x: 8 lines of code y: 4 # changes src/openai/lib/streaming/responses/_events.py x: 132 lines of code y: 3 # changes src/openai/resources/vector_stores/files.py x: 671 lines of code y: 2 # changes src/openai/_utils/_transform.py x: 255 lines of code y: 11 # changes src/openai/types/responses/parsed_response.py x: 97 lines of code y: 2 # changes src/openai/types/eval_create_params.py x: 91 lines of code y: 1 # changes src/openai/_utils/_proxy.py x: 45 lines of code y: 7 # changes src/openai/_extras/numpy_proxy.py x: 24 lines of code y: 4 # changes src/openai/_extras/__init__.py x: 3 lines of code y: 4 # changes src/openai/helpers/local_audio_player.py x: 140 lines of code y: 2 # changes src/openai/helpers/microphone.py x: 80 lines of code y: 2 # changes src/openai/lib/_tools.py x: 43 lines of code y: 2 # changes src/openai/lib/streaming/responses/_responses.py x: 300 lines of code y: 1 # changes src/openai/resources/__init__.py x: 254 lines of code y: 8 # changes src/openai/resources/beta/__init__.py x: 58 lines of code y: 7 # changes src/openai/resources/beta/assistants.py x: 610 lines of code y: 9 # changes src/openai/resources/chat/completions/messages.py x: 120 lines of code y: 1 # changes src/openai/resources/files.py x: 485 lines of code y: 22 # changes src/openai/resources/responses/input_items.py x: 126 lines of code y: 1 # changes src/openai/resources/vector_stores/vector_stores.py x: 557 lines of code y: 1 # changes src/openai/types/beta/__init__.py x: 31 lines of code y: 11 # changes src/openai/types/beta/assistant_create_params.py x: 55 lines of code y: 16 # changes src/openai/types/beta/assistant_update_params.py x: 74 lines of code y: 14 # changes src/openai/types/beta/thread_create_and_run_params.py x: 103 lines of code y: 23 # changes src/openai/types/beta/thread_create_params.py x: 60 lines of code y: 12 # changes src/openai/types/beta/threads/run_create_params.py x: 59 lines of code y: 24 # changes src/openai/types/chat/chat_completion_content_part_param.py x: 20 lines of code y: 5 # changes src/openai/types/chat/chat_completion_message.py x: 25 lines of code y: 5 # changes src/openai/types/file_create_params.py x: 12 lines of code y: 6 # changes src/openai/types/responses/response_computer_tool_call.py x: 86 lines of code y: 1 # changes src/openai/types/responses/response_computer_tool_call_param.py x: 83 lines of code y: 1 # changes src/openai/types/responses/response_input_item_param.py x: 225 lines of code y: 1 # changes src/openai/types/responses/response_output_text.py x: 54 lines of code y: 1 # changes src/openai/types/responses/response_stream_event.py x: 115 lines of code y: 1 # changes src/openai/resources/chat/chat.py x: 56 lines of code y: 8 # changes src/openai/lib/_pydantic.py x: 99 lines of code y: 7 # changes src/openai/_utils/__init__.py x: 67 lines of code y: 11 # changes src/openai/_utils/_utils.py x: 270 lines of code y: 14 # changes src/openai/lib/streaming/chat/__init__.py x: 27 lines of code y: 2 # changes src/openai/lib/streaming/_assistants.py x: 615 lines of code y: 5 # changes src/openai/_compat.py x: 156 lines of code y: 10 # changes src/openai/_utils/_sync.py x: 22 lines of code y: 2 # changes src/openai/resources/audio/speech.py x: 137 lines of code y: 15 # changes src/openai/resources/audio/translations.py x: 234 lines of code y: 15 # changes src/openai/resources/beta/threads/messages.py x: 468 lines of code y: 5 # changes src/openai/resources/beta/threads/runs/steps.py x: 243 lines of code y: 13 # changes src/openai/resources/completions.py x: 354 lines of code y: 18 # changes src/openai/resources/fine_tuning/jobs/jobs.py x: 542 lines of code y: 7 # changes src/openai/resources/moderations.py x: 109 lines of code y: 12 # changes src/openai/types/audio/speech_create_params.py x: 18 lines of code y: 7 # changes src/openai/types/audio/transcription_create_params.py x: 37 lines of code y: 8 # changes src/openai/types/beta/assistant.py x: 28 lines of code y: 13 # changes src/openai/types/beta/threads/run.py x: 63 lines of code y: 19 # changes src/openai/types/beta/threads/runs/step_list_params.py x: 12 lines of code y: 4 # changes src/openai/types/chat/chat_completion_content_part_image_param.py x: 9 lines of code y: 5 # changes src/openai/types/completion_create_params.py x: 29 lines of code y: 9 # changes src/openai/types/completion_usage.py x: 17 lines of code y: 8 # changes src/openai/types/embedding_create_params.py x: 12 lines of code y: 7 # changes src/openai/_types.py x: 152 lines of code y: 14 # changes src/openai/types/chat_model.py x: 3 lines of code y: 5 # changes src/openai/types/audio/__init__.py x: 20 lines of code y: 6 # changes src/openai/_legacy_response.py x: 320 lines of code y: 8 # changes src/openai/_response.py x: 470 lines of code y: 11 # changes src/openai/types/beta/threads/runs/__init__.py x: 21 lines of code y: 7 # changes src/openai/types/beta/threads/__init__.py x: 43 lines of code y: 9 # changes src/openai/types/fine_tuning/fine_tuning_job_integration.py x: 2 lines of code y: 3 # changes src/openai/types/beta/threads/file_citation_annotation.py x: 11 lines of code y: 3 # changes src/openai/types/beta/threads/message.py x: 36 lines of code y: 7 # changes src/openai/resources/batches.py x: 322 lines of code y: 7 # changes src/openai/types/beta/assistant_stream_event.py x: 140 lines of code y: 4 # changes src/openai/types/file_object.py x: 23 lines of code y: 4 # changes src/openai/types/fine_tuning/fine_tuning_job.py x: 42 lines of code y: 5 # changes src/openai/types/moderation.py x: 52 lines of code y: 7 # changes src/openai/types/batch.py x: 36 lines of code y: 2 # changes src/openai/resources/fine_tuning/jobs/checkpoints.py x: 118 lines of code y: 2 # changes src/openai/resources/models.py x: 206 lines of code y: 10 # changes src/openai/types/beta/thread.py x: 18 lines of code y: 5 # changes src/openai/types/beta/thread_update_params.py x: 16 lines of code y: 3 # changes src/openai/_module_client.py x: 138 lines of code y: 4 # changes src/openai/resources/fine_tuning/fine_tuning.py x: 108 lines of code y: 6 # changes src/openai/types/fine_tuning/__init__.py x: 23 lines of code y: 3 # changes src/openai/lib/_validators.py x: 597 lines of code y: 4 # changes src/openai/_constants.py x: 8 lines of code y: 7 # changes src/openai/_resource.py x: 30 lines of code y: 3 # changes src/openai/pagination.py x: 177 lines of code y: 5 # changes src/openai/resources/audio/__init__.py x: 58 lines of code y: 5 # changes src/openai/resources/audio/audio.py x: 108 lines of code y: 7 # changes src/openai/resources/beta/threads/__init__.py x: 44 lines of code y: 5 # changes src/openai/resources/chat/__init__.py x: 30 lines of code y: 5 # changes src/openai/types/beta/chat/__init__.py x: 1 lines of code y: 2 # changes src/openai/_utils/_typing.py x: 75 lines of code y: 4 # changes src/openai/lib/_old_api.py x: 42 lines of code y: 2 # changes
65.0
# changes
  min: 1.0
  average: 3.66
  25th percentile: 1.0
  median: 2.0
  75th percentile: 4.0
  max: 65.0
0 2646.0
lines of code
min: 1.0 | average: 83.58 | 25th percentile: 8.0 | median: 12.0 | 75th percentile: 54.0 | max: 2646.0

Number of Contributors vs. Number of Changes: 467 points

src/openai/_version.py x: 5 # contributors y: 65 # changes src/openai/auth/_workload.py x: 4 # contributors y: 5 # changes src/openai/resources/chat/completions/completions.py x: 4 # contributors y: 9 # changes src/openai/resources/responses/responses.py x: 6 # contributors y: 13 # changes src/openai/types/chat/chat_completion.py x: 5 # contributors y: 7 # changes src/openai/types/chat/chat_completion_chunk.py x: 4 # contributors y: 8 # changes src/openai/types/chat/completion_create_params.py x: 6 # contributors y: 31 # changes src/openai/types/responses/response.py x: 3 # contributors y: 6 # changes src/openai/types/responses/response_create_params.py x: 3 # contributors y: 5 # changes src/openai/types/responses/responses_client_event.py x: 2 # contributors y: 4 # changes src/openai/__init__.py x: 6 # contributors y: 20 # changes src/openai/lib/bedrock.py x: 2 # contributors y: 2 # changes src/openai/_files.py x: 5 # contributors y: 5 # changes src/openai/_models.py x: 7 # contributors y: 24 # changes src/openai/resources/realtime/calls.py x: 1 # contributors y: 1 # changes src/openai/resources/images.py x: 5 # contributors y: 14 # changes src/openai/types/chat/chat_completion_token_logprob.py x: 2 # contributors y: 5 # changes src/openai/types/image_edit_params.py x: 5 # contributors y: 6 # changes src/openai/types/responses/tool.py x: 2 # contributors y: 3 # changes src/openai/lib/azure.py x: 11 # contributors y: 19 # changes src/openai/_client.py x: 6 # contributors y: 22 # changes src/openai/resources/beta/threads/runs/runs.py x: 4 # contributors y: 36 # changes src/openai/resources/beta/threads/threads.py x: 4 # contributors y: 32 # changes src/openai/resources/embeddings.py x: 7 # contributors y: 18 # changes src/openai/_base_client.py x: 8 # contributors y: 32 # changes src/openai/_exceptions.py x: 5 # contributors y: 9 # changes src/openai/types/__init__.py x: 5 # contributors y: 16 # changes src/openai/resources/videos.py x: 1 # contributors y: 2 # changes src/openai/_streaming.py x: 3 # contributors y: 13 # changes src/openai/resources/audio/transcriptions.py x: 6 # contributors y: 18 # changes src/openai/resources/beta/beta.py x: 4 # contributors y: 11 # changes src/openai/types/chat/__init__.py x: 4 # contributors y: 10 # changes src/openai/_utils/_transform.py x: 3 # contributors y: 11 # changes src/openai/_extras/numpy_proxy.py x: 3 # contributors y: 4 # changes src/openai/resources/__init__.py x: 3 # contributors y: 8 # changes src/openai/resources/beta/__init__.py x: 2 # contributors y: 7 # changes src/openai/resources/beta/assistants.py x: 3 # contributors y: 9 # changes src/openai/resources/files.py x: 4 # contributors y: 22 # changes src/openai/types/beta/assistant_create_params.py x: 3 # contributors y: 16 # changes src/openai/types/beta/assistant_update_params.py x: 4 # contributors y: 14 # changes src/openai/types/beta/thread_create_and_run_params.py x: 3 # contributors y: 23 # changes src/openai/types/beta/thread_create_params.py x: 3 # contributors y: 12 # changes src/openai/types/beta/threads/run_create_params.py x: 3 # contributors y: 24 # changes src/openai/lib/_pydantic.py x: 3 # contributors y: 7 # changes src/openai/_compat.py x: 5 # contributors y: 10 # changes src/openai/_utils/_sync.py x: 3 # contributors y: 2 # changes src/openai/resources/audio/speech.py x: 3 # contributors y: 15 # changes src/openai/resources/audio/translations.py x: 4 # contributors y: 15 # changes src/openai/resources/completions.py x: 4 # contributors y: 18 # changes src/openai/resources/moderations.py x: 4 # contributors y: 12 # changes src/openai/types/audio/translation_create_params.py x: 4 # contributors y: 6 # changes src/openai/types/beta/assistant_list_params.py x: 3 # contributors y: 3 # changes src/openai/types/beta/threads/run.py x: 3 # contributors y: 19 # changes src/openai/types/beta/threads/__init__.py x: 2 # contributors y: 9 # changes src/openai/types/chat/chat_completion_assistant_message_param.py x: 2 # contributors y: 6 # changes src/openai/types/beta/threads/file_citation_annotation.py x: 1 # contributors y: 3 # changes src/openai/types/beta/threads/message.py x: 1 # contributors y: 7 # changes src/openai/types/beta/threads/message_create_params.py x: 2 # contributors y: 8 # changes src/openai/types/batch_create_params.py x: 1 # contributors y: 5 # changes src/openai/types/beta/assistant_stream_event.py x: 1 # contributors y: 4 # changes src/openai/resources/models.py x: 3 # contributors y: 10 # changes
65.0
# changes
  min: 1.0
  average: 3.66
  25th percentile: 1.0
  median: 2.0
  75th percentile: 4.0
  max: 65.0
0 11.0
# contributors
min: 1.0 | average: 1.81 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 2.0 | max: 11.0

Number of Contributors vs. File Size: 467 points

src/openai/_version.py x: 5 # contributors y: 2 lines of code src/openai/auth/_workload.py x: 4 # contributors y: 219 lines of code src/openai/resources/chat/completions/completions.py x: 4 # contributors y: 1264 lines of code src/openai/resources/responses/responses.py x: 6 # contributors y: 2646 lines of code src/openai/types/chat/chat_completion.py x: 5 # contributors y: 78 lines of code src/openai/types/chat/chat_completion_chunk.py x: 4 # contributors y: 98 lines of code src/openai/types/chat/completion_create_params.py x: 6 # contributors y: 90 lines of code src/openai/types/responses/response.py x: 3 # contributors y: 124 lines of code src/openai/types/responses/response_create_params.py x: 3 # contributors y: 83 lines of code src/openai/types/responses/responses_client_event.py x: 2 # contributors y: 71 lines of code src/openai/types/responses/responses_client_event_param.py x: 2 # contributors y: 78 lines of code src/openai/__init__.py x: 6 # contributors y: 348 lines of code src/openai/lib/bedrock.py x: 2 # contributors y: 346 lines of code src/openai/_files.py x: 5 # contributors y: 107 lines of code src/openai/_models.py x: 7 # contributors y: 628 lines of code src/openai/types/responses/response_compact_params.py x: 2 # contributors y: 112 lines of code src/openai/resources/realtime/calls.py x: 1 # contributors y: 481 lines of code src/openai/types/realtime/__init__.py x: 1 # contributors y: 239 lines of code src/openai/types/realtime/audio_transcription.py x: 1 # contributors y: 20 lines of code src/openai/types/realtime/call_accept_params.py x: 1 # contributors y: 47 lines of code src/openai/types/realtime/realtime_reasoning.py x: 1 # contributors y: 6 lines of code src/openai/types/realtime/realtime_response_create_params.py x: 1 # contributors y: 29 lines of code src/openai/types/realtime/realtime_session_create_response.py x: 1 # contributors y: 153 lines of code src/openai/resources/images.py x: 5 # contributors y: 745 lines of code src/openai/types/admin/organization/usage_audio_speeches_response.py x: 1 # contributors y: 137 lines of code src/openai/types/chat/chat_completion_token_logprob.py x: 2 # contributors y: 12 lines of code src/openai/types/image_edit_params.py x: 5 # contributors y: 26 lines of code src/openai/types/responses/tool.py x: 2 # contributors y: 136 lines of code src/openai/types/responses/tool_param.py x: 2 # contributors y: 132 lines of code src/openai/lib/azure.py x: 11 # contributors y: 591 lines of code src/openai/_client.py x: 6 # contributors y: 1163 lines of code src/openai/resources/beta/threads/runs/runs.py x: 4 # contributors y: 1883 lines of code src/openai/resources/beta/threads/threads.py x: 4 # contributors y: 1065 lines of code src/openai/resources/embeddings.py x: 7 # contributors y: 158 lines of code src/openai/_base_client.py x: 8 # contributors y: 1699 lines of code src/openai/_exceptions.py x: 5 # contributors y: 124 lines of code src/openai/types/__init__.py x: 5 # contributors y: 133 lines of code src/openai/types/shared/__init__.py x: 3 # contributors y: 18 lines of code src/openai/lib/_parsing/_completions.py x: 3 # contributors y: 220 lines of code src/openai/lib/_parsing/_responses.py x: 2 # contributors y: 156 lines of code src/openai/lib/streaming/chat/_completions.py x: 5 # contributors y: 545 lines of code src/openai/types/responses/response_function_web_search.py x: 2 # contributors y: 33 lines of code src/openai/resources/videos.py x: 1 # contributors y: 872 lines of code src/openai/_streaming.py x: 3 # contributors y: 313 lines of code src/openai/resources/uploads/uploads.py x: 3 # contributors y: 433 lines of code src/openai/resources/audio/transcriptions.py x: 6 # contributors y: 429 lines of code src/openai/resources/beta/beta.py x: 4 # contributors y: 125 lines of code src/openai/resources/realtime/realtime.py x: 2 # contributors y: 996 lines of code src/openai/resources/beta/realtime/sessions.py x: 1 # contributors y: 180 lines of code src/openai/types/beta/realtime/session.py x: 1 # contributors y: 64 lines of code src/openai/types/beta/realtime/session_update_event.py x: 1 # contributors y: 76 lines of code src/openai/resources/beta/realtime/realtime.py x: 2 # contributors y: 597 lines of code src/openai/resources/vector_stores/file_batches.py x: 1 # contributors y: 573 lines of code src/openai/types/responses/__init__.py x: 1 # contributors y: 327 lines of code src/openai/types/chat/chat_completion_message_tool_call_param.py x: 2 # contributors y: 8 lines of code src/openai/resources/vector_stores/files.py x: 1 # contributors y: 671 lines of code src/openai/_utils/_transform.py x: 3 # contributors y: 255 lines of code src/openai/types/responses/parsed_response.py x: 1 # contributors y: 97 lines of code src/openai/types/eval_create_params.py x: 1 # contributors y: 91 lines of code src/openai/_utils/_proxy.py x: 5 # contributors y: 45 lines of code src/openai/_extras/numpy_proxy.py x: 3 # contributors y: 24 lines of code src/openai/_extras/__init__.py x: 3 # contributors y: 3 lines of code src/openai/lib/streaming/responses/_responses.py x: 1 # contributors y: 300 lines of code src/openai/resources/beta/__init__.py x: 2 # contributors y: 58 lines of code src/openai/resources/beta/assistants.py x: 3 # contributors y: 610 lines of code src/openai/resources/chat/completions/messages.py x: 1 # contributors y: 120 lines of code src/openai/resources/files.py x: 4 # contributors y: 485 lines of code src/openai/resources/responses/input_items.py x: 1 # contributors y: 126 lines of code src/openai/resources/vector_stores/vector_stores.py x: 1 # contributors y: 557 lines of code src/openai/types/beta/assistant_create_params.py x: 3 # contributors y: 55 lines of code src/openai/types/beta/assistant_update_params.py x: 4 # contributors y: 74 lines of code src/openai/types/beta/thread_create_and_run_params.py x: 3 # contributors y: 103 lines of code src/openai/types/responses/response_input_item_param.py x: 1 # contributors y: 225 lines of code src/openai/types/responses/response_output_text.py x: 1 # contributors y: 54 lines of code src/openai/_utils/__init__.py x: 3 # contributors y: 67 lines of code src/openai/_utils/_utils.py x: 5 # contributors y: 270 lines of code src/openai/lib/streaming/_assistants.py x: 5 # contributors y: 615 lines of code src/openai/_compat.py x: 5 # contributors y: 156 lines of code src/openai/_utils/_logs.py x: 2 # contributors y: 31 lines of code src/openai/resources/audio/speech.py x: 3 # contributors y: 137 lines of code src/openai/resources/audio/translations.py x: 4 # contributors y: 234 lines of code src/openai/resources/beta/threads/messages.py x: 2 # contributors y: 468 lines of code src/openai/resources/beta/threads/runs/steps.py x: 3 # contributors y: 243 lines of code src/openai/resources/completions.py x: 4 # contributors y: 354 lines of code src/openai/resources/fine_tuning/jobs/jobs.py x: 3 # contributors y: 542 lines of code src/openai/resources/moderations.py x: 4 # contributors y: 109 lines of code src/openai/types/audio/transcription_create_params.py x: 4 # contributors y: 37 lines of code src/openai/types/audio/translation_create_params.py x: 4 # contributors y: 12 lines of code src/openai/types/completion_create_params.py x: 4 # contributors y: 29 lines of code src/openai/_types.py x: 4 # contributors y: 152 lines of code src/openai/_utils/_reflection.py x: 1 # contributors y: 32 lines of code src/openai/_response.py x: 4 # contributors y: 470 lines of code src/openai/types/beta/threads/__init__.py x: 2 # contributors y: 43 lines of code src/openai/types/audio/translation.py x: 4 # contributors y: 4 lines of code src/openai/resources/batches.py x: 1 # contributors y: 322 lines of code src/openai/types/fine_tuning/fine_tuning_job.py x: 3 # contributors y: 42 lines of code src/openai/resources/models.py x: 3 # contributors y: 206 lines of code src/openai/lib/_validators.py x: 3 # contributors y: 597 lines of code src/openai/pagination.py x: 3 # contributors y: 177 lines of code src/openai/resources/audio/audio.py x: 3 # contributors y: 108 lines of code
2646.0
lines of code
  min: 1.0
  average: 83.58
  25th percentile: 8.0
  median: 12.0
  75th percentile: 54.0
  max: 2646.0
0 11.0
# contributors
min: 1.0 | average: 1.81 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 2.0 | max: 11.0

Number of Changes vs. Line Churn: 864 points

.github/workflows/ci.yml x: 11 # changes y: 106 line churn examples/async_demo.py x: 4 # changes y: 46 line churn examples/demo.py x: 3 # changes y: 59 line churn .github/workflows/create-releases.yml x: 9 # changes y: 186 line churn CONTRIBUTING.md x: 7 # changes y: 184 line churn bin/publish-pypi x: 2 # changes y: 12 line churn .release-please-manifest.json x: 65 # changes y: 157 line churn .stats.yml x: 34 # changes y: 96 line churn CHANGELOG.md x: 64 # changes y: 1020 line churn pyproject.toml x: 90 # changes y: 603 line churn src/openai/auth/_workload.py x: 5 # changes y: 329 line churn src/openai/resources/chat/completions/completions.py x: 9 # changes y: 630 line churn src/openai/resources/responses/responses.py x: 13 # changes y: 2087 line churn src/openai/types/chat/chat_completion_chunk.py x: 8 # changes y: 322 line churn src/openai/types/chat/completion_create_params.py x: 31 # changes y: 760 line churn src/openai/types/responses/response.py x: 6 # changes y: 356 line churn src/openai/types/responses/response_create_params.py x: 5 # changes y: 227 line churn tests/api_resources/chat/test_completions.py x: 24 # changes y: 1007 line churn tests/api_resources/test_responses.py x: 6 # changes y: 534 line churn tests/lib/chat/test_completions.py x: 15 # changes y: 1524 line churn tests/lib/chat/test_completions_streaming.py x: 14 # changes y: 1822 line churn README.md x: 93 # changes y: 2653 line churn src/openai/__init__.py x: 20 # changes y: 650 line churn src/openai/lib/bedrock.py x: 2 # changes y: 1354 line churn tests/test_client.py x: 32 # changes y: 2933 line churn tests/test_models.py x: 6 # changes y: 901 line churn src/openai/resources/realtime/api.md x: 1 # changes y: 19 line churn src/openai/cli/_api/audio.py x: 4 # changes y: 440 line churn src/openai/cli/_api/chat/completions.py x: 3 # changes y: 652 line churn src/openai/cli/_api/files.py x: 2 # changes y: 324 line churn src/openai/cli/_api/fine_tuning/jobs.py x: 2 # changes y: 679 line churn src/openai/cli/_cli.py x: 3 # changes y: 940 line churn src/openai/cli/_tools/migrate.py x: 7 # changes y: 754 line churn src/openai/resources/images.py x: 14 # changes y: 1246 line churn src/openai/types/image_edit_params.py x: 6 # changes y: 113 line churn src/openai/lib/azure.py x: 19 # changes y: 820 line churn src/openai/_client.py x: 22 # changes y: 1170 line churn src/openai/resources/beta/threads/runs/runs.py x: 36 # changes y: 4720 line churn src/openai/resources/beta/threads/threads.py x: 32 # changes y: 3223 line churn src/openai/resources/embeddings.py x: 18 # changes y: 416 line churn api.md x: 26 # changes y: 897 line churn src/openai/_base_client.py x: 32 # changes y: 2870 line churn src/openai/types/__init__.py x: 16 # changes y: 167 line churn requirements-dev.lock x: 29 # changes y: 426 line churn src/openai/_streaming.py x: 13 # changes y: 594 line churn src/openai/resources/audio/transcriptions.py x: 18 # changes y: 689 line churn requirements.lock x: 10 # changes y: 134 line churn src/openai/resources/beta/beta.py x: 11 # changes y: 337 line churn src/openai/resources/vector_stores/file_batches.py x: 2 # changes y: 809 line churn examples/realtime/push_to_talk_app.py x: 3 # changes y: 285 line churn src/openai/resources/beta/chat/completions.py x: 12 # changes y: 808 line churn src/openai/resources/responses/responses.py.orig x: 1 # changes y: 1796 line churn .gitignore x: 12 # changes y: 45 line churn src/openai/lib/streaming/responses/_responses.py x: 1 # changes y: 354 line churn src/openai/resources/beta/assistants.py x: 9 # changes y: 1091 line churn src/openai/resources/beta/vector_stores/file_batches.py x: 7 # changes y: 1596 line churn src/openai/resources/beta/vector_stores/files.py x: 8 # changes y: 1484 line churn src/openai/resources/beta/vector_stores/vector_stores.py x: 6 # changes y: 1459 line churn src/openai/resources/vector_stores/vector_stores.py x: 1 # changes y: 868 line churn src/openai/types/beta/assistant_create_params.py x: 16 # changes y: 530 line churn src/openai/types/beta/assistant_update_params.py x: 14 # changes y: 317 line churn src/openai/types/beta/thread_create_and_run_params.py x: 23 # changes y: 710 line churn src/openai/types/beta/thread_create_params.py x: 12 # changes y: 306 line churn src/openai/types/beta/threads/run_create_params.py x: 24 # changes y: 507 line churn tests/api_resources/beta/vector_stores/test_file_batches.py x: 5 # changes y: 896 line churn tests/api_resources/test_vector_stores.py x: 1 # changes y: 551 line churn helpers.md x: 10 # changes y: 570 line churn src/openai/resources/chat/chat.py x: 8 # changes y: 156 line churn src/openai/_utils/_utils.py x: 14 # changes y: 539 line churn src/openai/lib/streaming/_assistants.py x: 5 # changes y: 1060 line churn src/openai/_compat.py x: 10 # changes y: 361 line churn tests/api_resources/beta/test_threads.py x: 21 # changes y: 2392 line churn tests/api_resources/beta/threads/test_messages.py x: 15 # changes y: 814 line churn tests/api_resources/beta/threads/test_runs.py x: 24 # changes y: 2283 line churn src/openai/resources/audio/speech.py x: 15 # changes y: 404 line churn src/openai/resources/beta/threads/messages.py x: 5 # changes y: 659 line churn src/openai/resources/beta/threads/runs/steps.py x: 13 # changes y: 493 line churn src/openai/resources/completions.py x: 18 # changes y: 1716 line churn src/openai/types/beta/threads/run.py x: 19 # changes y: 464 line churn src/openai/types/completion_create_params.py x: 9 # changes y: 267 line churn tests/api_resources/test_files.py x: 12 # changes y: 686 line churn src/openai/_legacy_response.py x: 8 # changes y: 545 line churn src/openai/_response.py x: 11 # changes y: 1074 line churn src/openai/resources/beta/assistants/assistants.py x: 17 # changes y: 1772 line churn src/openai/resources/beta/threads/messages/messages.py x: 14 # changes y: 1366 line churn tests/api_resources/beta/assistants/test_files.py x: 7 # changes y: 892 line churn src/openai/resources/fine_tuning/jobs.py x: 12 # changes y: 1400 line churn src/openai/lib/_validators.py x: 4 # changes y: 827 line churn src/openai/resources/audio/audio.py x: 7 # changes y: 276 line churn src/openai/resources/fine_tunes.py x: 6 # changes y: 1742 line churn examples/embeddings/Clustering.ipynb x: 4 # changes y: 546 line churn examples/embeddings/Recommendation.ipynb x: 3 # changes y: 66894 line churn examples/finetuning/finetuning-classification.ipynb x: 5 # changes y: 1678 line churn examples/finetuning/olympics-2-create-qa.ipynb x: 3 # changes y: 1522 line churn examples/finetuning/olympics-3-train-qa.ipynb x: 4 # changes y: 1298 line churn openai/__init__.py x: 27 # changes y: 294 line churn openai/api_requestor.py x: 32 # changes y: 1873 line churn openai/api_resources/__init__.py x: 19 # changes y: 68 line churn openai/api_resources/engine.py x: 13 # changes y: 129 line churn openai/api_resources/file.py x: 17 # changes y: 805 line churn openai/cli.py x: 38 # changes y: 3605 line churn openai/validators.py x: 16 # changes y: 2168 line churn openai/version.py x: 59 # changes y: 129 line churn setup.py x: 17 # changes y: 163 line churn openai/data/ca-certificates.crt x: 1 # changes y: 3240 line churn
66894.0
line churn
  min: 1.0
  average: 282.88
  25th percentile: 18.0
  median: 45.0
  75th percentile: 167.75
  max: 66894.0
0 93.0
# changes
min: 1.0 | average: 4.45 | 25th percentile: 1.0 | median: 2.0 | 75th percentile: 5.0 | max: 93.0

Number of Contributors vs. Line Churn: 467 points

src/openai/_version.py x: 5 # contributors y: 168 line churn src/openai/auth/_workload.py x: 4 # contributors y: 329 line churn src/openai/resources/chat/completions/completions.py x: 4 # contributors y: 630 line churn src/openai/resources/responses/responses.py x: 6 # contributors y: 2087 line churn src/openai/types/chat/chat_completion.py x: 5 # contributors y: 248 line churn src/openai/types/chat/completion_create_params.py x: 6 # contributors y: 760 line churn src/openai/types/responses/response.py x: 3 # contributors y: 356 line churn src/openai/types/responses/response_create_params.py x: 3 # contributors y: 227 line churn src/openai/types/responses/responses_client_event.py x: 2 # contributors y: 24 line churn src/openai/__init__.py x: 6 # contributors y: 650 line churn src/openai/lib/bedrock.py x: 2 # contributors y: 1354 line churn src/openai/_files.py x: 5 # contributors y: 145 line churn src/openai/_models.py x: 7 # contributors y: 961 line churn src/openai/types/responses/response_compact_params.py x: 2 # contributors y: 6 line churn src/openai/resources/realtime/calls.py x: 1 # contributors y: 21 line churn src/openai/types/realtime/__init__.py x: 1 # contributors y: 4 line churn src/openai/resources/images.py x: 5 # contributors y: 1246 line churn src/openai/types/chat/chat_completion_token_logprob.py x: 2 # contributors y: 70 line churn src/openai/types/image_edit_params.py x: 5 # contributors y: 113 line churn src/openai/lib/azure.py x: 11 # contributors y: 820 line churn src/openai/_client.py x: 6 # contributors y: 1170 line churn src/openai/resources/beta/threads/runs/runs.py x: 4 # contributors y: 4720 line churn src/openai/resources/beta/threads/threads.py x: 4 # contributors y: 3223 line churn src/openai/resources/embeddings.py x: 7 # contributors y: 416 line churn src/openai/_base_client.py x: 8 # contributors y: 2870 line churn src/openai/_exceptions.py x: 5 # contributors y: 206 line churn src/openai/types/__init__.py x: 5 # contributors y: 167 line churn src/openai/types/shared/__init__.py x: 3 # contributors y: 17 line churn src/openai/lib/_parsing/_completions.py x: 3 # contributors y: 311 line churn src/openai/lib/_parsing/_responses.py x: 2 # contributors y: 184 line churn src/openai/lib/streaming/chat/_completions.py x: 5 # contributors y: 789 line churn src/openai/_streaming.py x: 3 # contributors y: 594 line churn src/openai/resources/uploads/uploads.py x: 3 # contributors y: 250 line churn src/openai/resources/audio/transcriptions.py x: 6 # contributors y: 689 line churn src/openai/resources/beta/beta.py x: 4 # contributors y: 337 line churn src/openai/resources/vector_stores/file_batches.py x: 1 # contributors y: 809 line churn src/openai/types/responses/__init__.py x: 1 # contributors y: 140 line churn src/openai/types/responses/response_text_config.py x: 1 # contributors y: 61 line churn src/openai/types/chat/chat_completion_message_tool_call.py x: 2 # contributors y: 41 line churn src/openai/types/chat/__init__.py x: 4 # contributors y: 172 line churn src/openai/types/chat/chat_completion_tool_param.py x: 2 # contributors y: 96 line churn src/openai/lib/streaming/responses/_events.py x: 2 # contributors y: 118 line churn src/openai/resources/vector_stores/files.py x: 1 # contributors y: 947 line churn src/openai/_utils/_transform.py x: 3 # contributors y: 424 line churn src/openai/types/responses/parsed_response.py x: 1 # contributors y: 79 line churn src/openai/_extras/numpy_proxy.py x: 3 # contributors y: 51 line churn src/openai/lib/streaming/responses/_responses.py x: 1 # contributors y: 354 line churn src/openai/resources/beta/__init__.py x: 2 # contributors y: 135 line churn src/openai/resources/beta/assistants.py x: 3 # contributors y: 1091 line churn src/openai/resources/files.py x: 4 # contributors y: 1165 line churn src/openai/resources/responses/input_items.py x: 1 # contributors y: 223 line churn src/openai/resources/vector_stores/__init__.py x: 1 # contributors y: 47 line churn src/openai/resources/vector_stores/vector_stores.py x: 1 # contributors y: 868 line churn src/openai/types/beta/__init__.py x: 3 # contributors y: 86 line churn src/openai/types/beta/assistant_create_params.py x: 3 # contributors y: 530 line churn src/openai/types/beta/thread_create_and_run_params.py x: 3 # contributors y: 710 line churn src/openai/types/beta/threads/run_create_params.py x: 3 # contributors y: 507 line churn src/openai/types/file_create_params.py x: 3 # contributors y: 71 line churn src/openai/types/responses/response_computer_tool_call.py x: 1 # contributors y: 212 line churn src/openai/types/responses/response_input_item_param.py x: 1 # contributors y: 174 line churn src/openai/types/responses/response_item_list.py x: 1 # contributors y: 152 line churn src/openai/resources/chat/chat.py x: 3 # contributors y: 156 line churn src/openai/lib/_pydantic.py x: 3 # contributors y: 191 line churn src/openai/_utils/__init__.py x: 3 # contributors y: 296 line churn src/openai/_utils/_utils.py x: 5 # contributors y: 539 line churn src/openai/lib/streaming/_assistants.py x: 5 # contributors y: 1060 line churn src/openai/_compat.py x: 5 # contributors y: 361 line churn src/openai/resources/audio/speech.py x: 3 # contributors y: 404 line churn src/openai/resources/audio/translations.py x: 4 # contributors y: 505 line churn src/openai/resources/beta/threads/messages.py x: 2 # contributors y: 659 line churn src/openai/resources/beta/threads/runs/steps.py x: 3 # contributors y: 493 line churn src/openai/resources/completions.py x: 4 # contributors y: 1716 line churn src/openai/resources/fine_tuning/jobs/jobs.py x: 3 # contributors y: 734 line churn src/openai/resources/moderations.py x: 4 # contributors y: 287 line churn src/openai/types/audio/transcription_create_params.py x: 4 # contributors y: 105 line churn src/openai/types/audio/translation_create_params.py x: 4 # contributors y: 70 line churn src/openai/types/beta/assistant.py x: 3 # contributors y: 317 line churn src/openai/types/beta/threads/run.py x: 3 # contributors y: 464 line churn src/openai/types/completion_create_params.py x: 4 # contributors y: 267 line churn src/openai/types/file_list_params.py x: 3 # contributors y: 37 line churn src/openai/types/fine_tuning/job_create_params.py x: 4 # contributors y: 154 line churn src/openai/_types.py x: 4 # contributors y: 665 line churn src/openai/types/audio/__init__.py x: 4 # contributors y: 46 line churn src/openai/_legacy_response.py x: 3 # contributors y: 545 line churn src/openai/_response.py x: 4 # contributors y: 1074 line churn src/openai/types/beta/threads/runs/file_search_tool_call.py x: 2 # contributors y: 79 line churn src/openai/lib/streaming/chat/_events.py x: 1 # contributors y: 123 line churn src/openai/types/audio/transcription.py x: 4 # contributors y: 16 line churn src/openai/types/model_deleted.py x: 4 # contributors y: 19 line churn src/openai/resources/batches.py x: 1 # contributors y: 535 line churn src/openai/types/beta/assistant_stream_event.py x: 1 # contributors y: 299 line churn src/openai/types/fine_tuning/fine_tuning_job.py x: 3 # contributors y: 138 line churn src/openai/types/batch.py x: 1 # contributors y: 103 line churn src/openai/resources/models.py x: 3 # contributors y: 388 line churn src/openai/_module_client.py x: 3 # contributors y: 115 line churn src/openai/lib/_validators.py x: 3 # contributors y: 827 line churn src/openai/pagination.py x: 3 # contributors y: 179 line churn src/openai/resources/audio/audio.py x: 3 # contributors y: 276 line churn src/openai/types/chat/chat_completion_message_param.py x: 3 # contributors y: 109 line churn
4720.0
line churn
  min: 1.0
  average: 133.94
  25th percentile: 15.0
  median: 26.0
  75th percentile: 72.0
  max: 4720.0
0 11.0
# contributors
min: 1.0 | average: 1.81 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 2.0 | max: 11.0

File Size vs. Line Churn: 467 points

src/openai/_version.py x: 2 lines of code y: 168 line churn src/openai/auth/_workload.py x: 219 lines of code y: 329 line churn src/openai/resources/chat/completions/completions.py x: 1264 lines of code y: 630 line churn src/openai/resources/responses/responses.py x: 2646 lines of code y: 2087 line churn src/openai/types/chat/chat_completion.py x: 78 lines of code y: 248 line churn src/openai/types/chat/chat_completion_chunk.py x: 98 lines of code y: 322 line churn src/openai/types/chat/completion_create_params.py x: 90 lines of code y: 760 line churn src/openai/types/responses/response.py x: 124 lines of code y: 356 line churn src/openai/types/responses/response_create_params.py x: 83 lines of code y: 227 line churn src/openai/types/responses/responses_client_event.py x: 71 lines of code y: 24 line churn src/openai/types/responses/responses_client_event_param.py x: 78 lines of code y: 31 line churn src/openai/__init__.py x: 348 lines of code y: 650 line churn src/openai/lib/bedrock.py x: 346 lines of code y: 1354 line churn src/openai/_files.py x: 107 lines of code y: 145 line churn src/openai/_models.py x: 628 lines of code y: 961 line churn src/openai/types/responses/response_compact_params.py x: 112 lines of code y: 6 line churn src/openai/resources/realtime/calls.py x: 481 lines of code y: 21 line churn src/openai/types/realtime/__init__.py x: 239 lines of code y: 4 line churn src/openai/types/realtime/audio_transcription.py x: 20 lines of code y: 15 line churn src/openai/types/realtime/audio_transcription_param.py x: 19 lines of code y: 15 line churn src/openai/types/realtime/call_accept_params.py x: 47 lines of code y: 11 line churn src/openai/types/realtime/realtime_audio_config_input.py x: 14 lines of code y: 3 line churn src/openai/types/realtime/realtime_reasoning.py x: 6 lines of code y: 18 line churn src/openai/types/realtime/realtime_reasoning_effort.py x: 3 lines of code y: 7 line churn src/openai/types/realtime/realtime_reasoning_param.py x: 6 lines of code y: 19 line churn src/openai/types/realtime/realtime_response_create_params.py x: 29 lines of code y: 10 line churn src/openai/types/realtime/realtime_session_create_request.py x: 48 lines of code y: 11 line churn src/openai/types/realtime/realtime_session_create_response.py x: 153 lines of code y: 33 line churn src/openai/types/realtime/realtime_transcription_session_create_response.py x: 24 lines of code y: 3 line churn src/openai/resources/images.py x: 745 lines of code y: 1246 line churn src/openai/types/admin/organization/usage_audio_speeches_response.py x: 137 lines of code y: 6 line churn src/openai/types/chat/chat_completion_token_logprob.py x: 12 lines of code y: 70 line churn src/openai/types/image_edit_params.py x: 26 lines of code y: 113 line churn src/openai/types/responses/response_text_delta_event.py x: 19 lines of code y: 26 line churn src/openai/types/responses/tool.py x: 136 lines of code y: 61 line churn src/openai/types/responses/tool_param.py x: 132 lines of code y: 67 line churn src/openai/lib/azure.py x: 591 lines of code y: 820 line churn src/openai/_client.py x: 1163 lines of code y: 1170 line churn src/openai/resources/beta/threads/runs/runs.py x: 1883 lines of code y: 4720 line churn src/openai/resources/beta/threads/threads.py x: 1065 lines of code y: 3223 line churn src/openai/resources/embeddings.py x: 158 lines of code y: 416 line churn src/openai/_base_client.py x: 1699 lines of code y: 2870 line churn src/openai/_exceptions.py x: 124 lines of code y: 206 line churn src/openai/types/__init__.py x: 133 lines of code y: 167 line churn src/openai/lib/_parsing/_completions.py x: 220 lines of code y: 311 line churn src/openai/lib/_parsing/_responses.py x: 156 lines of code y: 184 line churn src/openai/lib/streaming/chat/_completions.py x: 545 lines of code y: 789 line churn src/openai/types/responses/response_function_web_search.py x: 33 lines of code y: 24 line churn src/openai/resources/videos.py x: 872 lines of code y: 8 line churn src/openai/_streaming.py x: 313 lines of code y: 594 line churn src/openai/resources/uploads/uploads.py x: 433 lines of code y: 250 line churn src/openai/resources/audio/transcriptions.py x: 429 lines of code y: 689 line churn src/openai/resources/beta/beta.py x: 125 lines of code y: 337 line churn src/openai/resources/realtime/realtime.py x: 996 lines of code y: 4 line churn src/openai/resources/beta/realtime/sessions.py x: 180 lines of code y: 4 line churn src/openai/types/beta/realtime/session.py x: 64 lines of code y: 2 line churn src/openai/types/beta/realtime/session_create_params.py x: 69 lines of code y: 2 line churn src/openai/types/beta/realtime/session_update_event.py x: 76 lines of code y: 2 line churn src/openai/resources/beta/realtime/realtime.py x: 597 lines of code y: 30 line churn src/openai/resources/vector_stores/file_batches.py x: 573 lines of code y: 809 line churn src/openai/types/responses/__init__.py x: 327 lines of code y: 140 line churn src/openai/types/responses/response_text_config.py x: 8 lines of code y: 61 line churn src/openai/types/chat/chat_completion_message_tool_call.py x: 11 lines of code y: 41 line churn src/openai/types/chat/__init__.py x: 99 lines of code y: 172 line churn src/openai/types/chat/chat_completion_message_tool_call_param.py x: 8 lines of code y: 47 line churn src/openai/types/chat/chat_completion_tool_param.py x: 8 lines of code y: 96 line churn src/openai/lib/streaming/responses/_events.py x: 132 lines of code y: 118 line churn src/openai/resources/vector_stores/files.py x: 671 lines of code y: 947 line churn src/openai/_utils/_transform.py x: 255 lines of code y: 424 line churn src/openai/types/responses/parsed_response.py x: 97 lines of code y: 79 line churn src/openai/types/eval_create_params.py x: 91 lines of code y: 3 line churn src/openai/_utils/_proxy.py x: 45 lines of code y: 115 line churn src/openai/_extras/numpy_proxy.py x: 24 lines of code y: 51 line churn src/openai/helpers/local_audio_player.py x: 140 lines of code y: 175 line churn src/openai/helpers/microphone.py x: 80 lines of code y: 110 line churn src/openai/lib/_tools.py x: 43 lines of code y: 66 line churn src/openai/lib/streaming/responses/_responses.py x: 300 lines of code y: 354 line churn src/openai/resources/beta/__init__.py x: 58 lines of code y: 135 line churn src/openai/resources/beta/assistants.py x: 610 lines of code y: 1091 line churn src/openai/resources/chat/completions/messages.py x: 120 lines of code y: 4 line churn src/openai/resources/files.py x: 485 lines of code y: 1165 line churn src/openai/resources/responses/__init__.py x: 44 lines of code y: 33 line churn src/openai/resources/responses/input_items.py x: 126 lines of code y: 223 line churn src/openai/resources/vector_stores/__init__.py x: 44 lines of code y: 47 line churn src/openai/resources/vector_stores/vector_stores.py x: 557 lines of code y: 868 line churn src/openai/types/beta/__init__.py x: 31 lines of code y: 86 line churn src/openai/types/beta/assistant_create_params.py x: 55 lines of code y: 530 line churn src/openai/types/beta/assistant_update_params.py x: 74 lines of code y: 317 line churn src/openai/types/beta/thread_create_and_run_params.py x: 103 lines of code y: 710 line churn src/openai/types/beta/thread_create_params.py x: 60 lines of code y: 306 line churn src/openai/types/beta/threads/run_create_params.py x: 59 lines of code y: 507 line churn src/openai/types/chat/chat_completion_content_part_param.py x: 20 lines of code y: 59 line churn src/openai/types/chat/chat_completion_message.py x: 25 lines of code y: 85 line churn src/openai/types/responses/easy_input_message_param.py x: 10 lines of code y: 27 line churn src/openai/types/responses/file_search_tool.py x: 20 lines of code y: 44 line churn src/openai/types/responses/response_code_interpreter_tool_call.py x: 19 lines of code y: 52 line churn src/openai/types/responses/response_computer_tool_call.py x: 86 lines of code y: 212 line churn src/openai/types/responses/response_computer_tool_call_param.py x: 83 lines of code y: 208 line churn src/openai/types/responses/response_content_part_added_event.py x: 20 lines of code y: 30 line churn src/openai/types/responses/response_error.py x: 25 lines of code y: 34 line churn src/openai/types/responses/response_input_item_param.py x: 225 lines of code y: 174 line churn src/openai/types/responses/response_item_list.py x: 11 lines of code y: 152 line churn src/openai/types/responses/response_output_item.py x: 128 lines of code y: 55 line churn src/openai/types/responses/response_output_text.py x: 54 lines of code y: 64 line churn src/openai/types/responses/response_output_text_param.py x: 52 lines of code y: 67 line churn src/openai/types/responses/response_stream_event.py x: 115 lines of code y: 78 line churn src/openai/types/shared/chat_model.py x: 82 lines of code y: 3 line churn src/openai/types/vector_stores/vector_store_file.py x: 18 lines of code y: 67 line churn src/openai/resources/chat/chat.py x: 56 lines of code y: 156 line churn src/openai/lib/_pydantic.py x: 99 lines of code y: 191 line churn src/openai/_utils/__init__.py x: 67 lines of code y: 296 line churn src/openai/_utils/_utils.py x: 270 lines of code y: 539 line churn src/openai/lib/streaming/_assistants.py x: 615 lines of code y: 1060 line churn src/openai/_compat.py x: 156 lines of code y: 361 line churn src/openai/_utils/_sync.py x: 22 lines of code y: 159 line churn src/openai/_utils/_logs.py x: 31 lines of code y: 42 line churn src/openai/resources/audio/speech.py x: 137 lines of code y: 404 line churn src/openai/resources/audio/translations.py x: 234 lines of code y: 505 line churn src/openai/resources/beta/threads/messages.py x: 468 lines of code y: 659 line churn src/openai/resources/beta/threads/runs/steps.py x: 243 lines of code y: 493 line churn src/openai/resources/completions.py x: 354 lines of code y: 1716 line churn src/openai/resources/fine_tuning/jobs/jobs.py x: 542 lines of code y: 734 line churn src/openai/resources/moderations.py x: 109 lines of code y: 287 line churn src/openai/types/audio/transcription_create_params.py x: 37 lines of code y: 105 line churn src/openai/types/beta/assistant.py x: 28 lines of code y: 317 line churn src/openai/types/beta/file_search_tool.py x: 13 lines of code y: 81 line churn src/openai/types/beta/threads/run.py x: 63 lines of code y: 464 line churn src/openai/types/completion_create_params.py x: 29 lines of code y: 267 line churn src/openai/types/fine_tuning/job_create_params.py x: 36 lines of code y: 154 line churn src/openai/_types.py x: 152 lines of code y: 665 line churn src/openai/types/chat_model.py x: 3 lines of code y: 38 line churn src/openai/_legacy_response.py x: 320 lines of code y: 545 line churn src/openai/_response.py x: 470 lines of code y: 1074 line churn src/openai/lib/streaming/chat/_events.py x: 66 lines of code y: 123 line churn src/openai/types/beta/threads/__init__.py x: 43 lines of code y: 96 line churn src/openai/types/chat/chat_completion_assistant_message_param.py x: 21 lines of code y: 80 line churn src/openai/types/shared/function_definition.py x: 9 lines of code y: 75 line churn src/openai/types/beta/threads/message.py x: 36 lines of code y: 140 line churn src/openai/types/beta/threads/message_create_params.py x: 18 lines of code y: 98 line churn src/openai/resources/batches.py x: 322 lines of code y: 535 line churn src/openai/types/beta/assistant_stream_event.py x: 140 lines of code y: 299 line churn scripts/utils/ruffen-docs.py x: 135 lines of code y: 167 line churn src/openai/types/fine_tuning/fine_tuning_job.py x: 42 lines of code y: 138 line churn src/openai/types/moderation.py x: 52 lines of code y: 146 line churn src/openai/resources/fine_tuning/jobs/checkpoints.py x: 118 lines of code y: 179 line churn src/openai/resources/models.py x: 206 lines of code y: 388 line churn src/openai/_module_client.py x: 138 lines of code y: 115 line churn src/openai/resources/fine_tuning/fine_tuning.py x: 108 lines of code y: 127 line churn src/openai/lib/_validators.py x: 597 lines of code y: 827 line churn src/openai/pagination.py x: 177 lines of code y: 179 line churn src/openai/resources/audio/__init__.py x: 58 lines of code y: 121 line churn src/openai/resources/audio/audio.py x: 108 lines of code y: 276 line churn src/openai/resources/chat/__init__.py x: 30 lines of code y: 65 line churn src/openai/resources/fine_tuning/__init__.py x: 58 lines of code y: 65 line churn src/openai/_utils/_typing.py x: 75 lines of code y: 130 line churn src/openai/lib/_old_api.py x: 42 lines of code y: 78 line churn src/openai/_qs.py x: 125 lines of code y: 150 line churn
4720.0
line churn
  min: 1.0
  average: 133.94
  25th percentile: 15.0
  median: 26.0
  75th percentile: 72.0
  max: 4720.0
0 2646.0
lines of code
min: 1.0 | average: 83.58 | 25th percentile: 8.0 | median: 12.0 | 75th percentile: 54.0 | max: 2646.0