1
- [project ]
2
- name = " openai-agents"
3
- version = " 0.2.11"
4
- description = " OpenAI Agents SDK"
5
- readme = " README.md"
6
- requires-python = " >=3.9"
7
- license = " MIT"
8
- authors = [{
name =
" OpenAI" ,
email =
" [email protected] " }]
9
- dependencies = [
10
- " openai>=1.104.1,<2" ,
11
- " pydantic>=2.10, <3" ,
12
- " griffe>=1.5.6, <2" ,
13
- " typing-extensions>=4.12.2, <5" ,
14
- " requests>=2.0, <3" ,
15
- " types-requests>=2.0, <3" ,
16
- " mcp>=1.11.0, <2; python_version >= '3.10'" ,
17
- ]
18
- classifiers = [
19
- " Typing :: Typed" ,
20
- " Intended Audience :: Developers" ,
21
- " Programming Language :: Python :: 3" ,
22
- " Programming Language :: Python :: 3.9" ,
23
- " Programming Language :: Python :: 3.10" ,
24
- " Programming Language :: Python :: 3.11" ,
25
- " Programming Language :: Python :: 3.12" ,
26
- " Programming Language :: Python :: 3.13" ,
27
- " Operating System :: OS Independent" ,
28
- " Topic :: Software Development :: Libraries :: Python Modules" ,
29
- " License :: OSI Approved :: MIT License" ,
30
- ]
31
-
32
- [project .urls ]
33
- Homepage = " https://openai.github.io/openai-agents-python/"
34
- Repository = " https://github.com/openai/openai-agents-python"
35
-
36
- [project .optional-dependencies ]
37
- voice = [" numpy>=2.2.0, <3; python_version>='3.10'" , " websockets>=15.0, <16" ]
38
- viz = [" graphviz>=0.17" ]
39
- litellm = [" litellm>=1.67.4.post1, <2" ]
40
- realtime = [" websockets>=15.0, <16" ]
41
- sqlalchemy = [" SQLAlchemy>=2.0" , " asyncpg>=0.29.0" ]
42
- encrypt = [" cryptography>=45.0, <46" ]
43
-
44
- [dependency-groups ]
45
- dev = [
46
- " mypy" ,
47
- " ruff==0.9.2" ,
48
- " pytest" ,
49
- " pytest-asyncio" ,
50
- " pytest-mock>=3.14.0" ,
51
- " rich>=13.1.0, <14" ,
52
- " mkdocs>=1.6.0" ,
53
- " mkdocs-material>=9.6.0" ,
54
- " mkdocstrings[python]>=0.28.0" ,
55
- " mkdocs-static-i18n" ,
56
- " coverage>=7.6.12" ,
57
- " playwright==1.50.0" ,
58
- " inline-snapshot>=0.20.7" ,
59
- " pynput" ,
60
- " types-pynput" ,
61
- " sounddevice" ,
62
- " textual" ,
63
- " websockets" ,
64
- " graphviz" ,
65
- " mkdocs-static-i18n>=1.3.0" ,
66
- " eval-type-backport>=0.2.2" ,
67
- " fastapi >= 0.110.0, <1" ,
68
- " aiosqlite>=0.21.0" ,
69
- ]
70
-
71
- [tool .uv .workspace ]
72
- members = [" agents" ]
73
-
74
- [tool .uv .sources ]
75
- agents = { workspace = true }
76
-
77
- [build-system ]
78
- requires = [" hatchling" ]
79
- build-backend = " hatchling.build"
80
-
81
- [tool .hatch .build .targets .wheel ]
82
- packages = [" src/agents" ]
83
-
84
-
85
- [tool .ruff ]
86
- line-length = 100
87
- target-version = " py39"
88
-
89
- [tool .ruff .lint ]
90
- select = [
91
- " E" , # pycodestyle errors
92
- " W" , # pycodestyle warnings
93
- " F" , # pyflakes
94
- " I" , # isort
95
- " B" , # flake8-bugbear
96
- " C4" , # flake8-comprehensions
97
- " UP" , # pyupgrade
98
- ]
99
- isort = { combine-as-imports = true , known-first-party = [" agents" ] }
100
-
101
- [tool .ruff .lint .pydocstyle ]
102
- convention = " google"
103
-
104
- [tool .ruff .lint .per-file-ignores ]
105
- "examples/**/*.py" = [" E501" ]
106
-
107
- [tool .mypy ]
108
- strict = true
109
- disallow_incomplete_defs = false
110
- disallow_untyped_defs = false
111
- disallow_untyped_calls = false
112
-
113
- [[tool .mypy .overrides ]]
114
- module = " sounddevice.*"
115
- ignore_missing_imports = true
116
-
117
- [tool .coverage .run ]
118
- source = [" tests" , " src/agents" ]
119
-
120
- [tool .coverage .report ]
121
- show_missing = true
122
- sort = " -Cover"
123
- exclude_also = [
124
- # This is only executed while typechecking
125
- " if TYPE_CHECKING:" ,
126
- " @abc.abstractmethod" ,
127
- " raise NotImplementedError" ,
128
- " logger.debug" ,
129
- ]
130
-
131
- [tool .pytest .ini_options ]
132
- asyncio_mode = " auto"
133
- asyncio_default_fixture_loop_scope = " session"
134
- filterwarnings = [
135
- # This is a warning that is expected to happen: we have an async filter that raises an exception
136
- " ignore:coroutine 'test_async_input_filter_fails.<locals>.invalid_input_filter' was never awaited:RuntimeWarning" ,
137
- ]
138
- markers = [
139
- " allow_call_model_methods: mark test as allowing calls to real model implementations" ,
140
- ]
141
-
142
- [tool .inline-snapshot ]
143
- format-command = " ruff format --stdin-filename {filename}"
1
+ [project ]
2
+ name = " openai-agents"
3
+ version = " 0.2.11"
4
+ description = " OpenAI Agents SDK"
5
+ readme = " README.md"
6
+ requires-python = " >=3.9"
7
+ license = " MIT"
8
+ authors = [{
name =
" OpenAI" ,
email =
" [email protected] " }]
9
+ dependencies = [
10
+ " openai>=1.104.1,<2" ,
11
+ " pydantic>=2.10, <3" ,
12
+ " griffe>=1.5.6, <2" ,
13
+ " typing-extensions>=4.12.2, <5" ,
14
+ " requests>=2.0, <3" ,
15
+ " types-requests>=2.0, <3" ,
16
+ " mcp>=1.11.0, <2; python_version >= '3.10'" ,
17
+ ]
18
+ classifiers = [
19
+ " Typing :: Typed" ,
20
+ " Intended Audience :: Developers" ,
21
+ " Programming Language :: Python :: 3" ,
22
+ " Programming Language :: Python :: 3.9" ,
23
+ " Programming Language :: Python :: 3.10" ,
24
+ " Programming Language :: Python :: 3.11" ,
25
+ " Programming Language :: Python :: 3.12" ,
26
+ " Programming Language :: Python :: 3.13" ,
27
+ " Operating System :: OS Independent" ,
28
+ " Topic :: Software Development :: Libraries :: Python Modules" ,
29
+ " License :: OSI Approved :: MIT License" ,
30
+ ]
31
+
32
+ [project .urls ]
33
+ Homepage = " https://openai.github.io/openai-agents-python/"
34
+ Repository = " https://github.com/openai/openai-agents-python"
35
+
36
+ [project .optional-dependencies ]
37
+ voice = [" numpy>=2.2.0, <3; python_version>='3.10'" , " websockets>=15.0, <16" ]
38
+ viz = [" graphviz>=0.17" ]
39
+ litellm = [" litellm>=1.67.4.post1, <2" ]
40
+ realtime = [" websockets>=15.0, <16" ]
41
+ sqlalchemy = [" SQLAlchemy>=2.0" , " asyncpg>=0.29.0" ]
42
+ encrypt = [" cryptography>=45.0, <46" ]
43
+
44
+ [dependency-groups ]
45
+ dev = [
46
+ " mypy" ,
47
+ " ruff==0.9.2" ,
48
+ " pytest" ,
49
+ " pytest-asyncio" ,
50
+ " pytest-mock>=3.14.0" ,
51
+ " rich>=13.1.0, <14" ,
52
+ " mkdocs>=1.6.0" ,
53
+ " mkdocs-material>=9.6.0" ,
54
+ " mkdocstrings[python]>=0.28.0" ,
55
+ " mkdocs-static-i18n" ,
56
+ " coverage>=7.6.12" ,
57
+ " playwright==1.50.0" ,
58
+ " inline-snapshot>=0.20.7" ,
59
+ " pynput" ,
60
+ " types-pynput" ,
61
+ " sounddevice" ,
62
+ " textual" ,
63
+ " websockets" ,
64
+ " graphviz" ,
65
+ " mkdocs-static-i18n>=1.3.0" ,
66
+ " eval-type-backport>=0.2.2" ,
67
+ " fastapi >= 0.110.0, <1" ,
68
+ " aiosqlite>=0.21.0" ,
69
+ ]
70
+
71
+ [tool .uv .workspace ]
72
+ members = [" agents" ]
73
+
74
+ [tool .uv .sources ]
75
+ agents = { workspace = true }
76
+
77
+ [build-system ]
78
+ requires = [" hatchling" ]
79
+ build-backend = " hatchling.build"
80
+
81
+ [tool .hatch .build .targets .wheel ]
82
+ packages = [" src/agents" ]
83
+
84
+
85
+ [tool .ruff ]
86
+ line-length = 100
87
+ target-version = " py39"
88
+
89
+ [tool .ruff .lint ]
90
+ select = [
91
+ " E" , # pycodestyle errors
92
+ " W" , # pycodestyle warnings
93
+ " F" , # pyflakes
94
+ " I" , # isort
95
+ " B" , # flake8-bugbear
96
+ " C4" , # flake8-comprehensions
97
+ " UP" , # pyupgrade
98
+ ]
99
+ isort = { combine-as-imports = true , known-first-party = [" agents" ] }
100
+
101
+ [tool .ruff .lint .pydocstyle ]
102
+ convention = " google"
103
+
104
+ [tool .ruff .lint .per-file-ignores ]
105
+ "examples/**/*.py" = [" E501" ]
106
+
107
+ [tool .mypy ]
108
+ strict = true
109
+ disallow_incomplete_defs = false
110
+ disallow_untyped_defs = false
111
+ disallow_untyped_calls = false
112
+
113
+ [[tool .mypy .overrides ]]
114
+ module = " sounddevice.*"
115
+ ignore_missing_imports = true
116
+
117
+ [tool .coverage .run ]
118
+ source = [" tests" , " src/agents" ]
119
+
120
+ [tool .coverage .report ]
121
+ show_missing = true
122
+ sort = " -Cover"
123
+ exclude_also = [
124
+ # This is only executed while typechecking
125
+ " if TYPE_CHECKING:" ,
126
+ " @abc.abstractmethod" ,
127
+ " raise NotImplementedError" ,
128
+ " logger.debug" ,
129
+ ]
130
+
131
+ [tool .pytest .ini_options ]
132
+ asyncio_mode = " auto"
133
+ asyncio_default_fixture_loop_scope = " session"
134
+ filterwarnings = [
135
+ # This is a warning that is expected to happen: we have an async filter that raises an exception
136
+ " ignore:coroutine 'test_async_input_filter_fails.<locals>.invalid_input_filter' was never awaited:RuntimeWarning" ,
137
+ ]
138
+ markers = [
139
+ " allow_call_model_methods: mark test as allowing calls to real model implementations" ,
140
+ ]
141
+
142
+ [tool .inline-snapshot ]
143
+ format-command = " ruff format --stdin-filename {filename}"
0 commit comments