1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
|
%global _empty_manifest_terminate_build 0
Name: python-aiohttp-graphql
Version: 1.1.0
Release: 1
Summary: Adds GraphQL support to your aiohttp application
License: MIT
URL: https://github.com/graphql-python/aiohttp-graphql
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/fc/e7/953018ff0af70c515efff12175240ca1d4f9a47d2681eeba656a37e3db02/aiohttp-graphql-1.1.0.tar.gz
BuildArch: noarch
%description
# aiohttp-graphql
Adds [GraphQL] support to your [aiohttp] application.
Based on [flask-graphql] by [Syrus Akbary] and [sanic-graphql] by [Sergey Porivaev].
[](https://badge.fury.io/py/aiohttp-graphql)
[](https://github.com/graphql-python/aiohttp-graphql)
[](https://github.com/graphql-python/aiohttp-graphql)
## Usage
Just use the `GraphQLView` view from `aiohttp_graphql`
```python
from aiohttp_graphql import GraphQLView
GraphQLView.attach(app, schema=Schema, graphiql=True)
# Optional, for adding batch query support (used in Apollo-Client)
GraphQLView.attach(app, schema=Schema, batch=True)
```
This will add a `/graphql` endpoint to your app (customizable by passing `route_path='/mypath'` to `GraphQLView.attach`).
Note: `GraphQLView.attach` is just a convenience function, and the same functionality can be achieved with
```python
gql_view = GraphQLView(schema=Schema, **kwargs)
app.router.add_route('*', gql_view, name='graphql')
```
It's worth noting that the the "view function" of `GraphQLView` is contained in `GraphQLView.__call__`. So, when you create an instance, that instance is callable with the request object as the sole positional argument. To illustrate:
```python
gql_view = GraphQLView(schema=Schema, **kwargs)
gql_view(request) # <-- the instance is callable and expects a `aiohttp.web.Request` object.
```
### Supported options
- `schema`: The `GraphQLSchema` object that you want the view to execute when it gets a valid request.
- `executor`: The `Executor` that you want to use to execute queries. If an `AsyncioExecutor` instance is provided, performs queries asynchronously within executor’s loop.
- `root_value`: The `root_value` you want to provide to `executor.execute`.
- `context`: A value to pass as the `context` to the `graphql()` function. By default is set to `dict` with request object at key `request`.
- `pretty`: Whether or not you want the response to be pretty printed JSON.
- `graphiql`: If `True`, may present [GraphiQL] when loaded directly from a browser (a useful tool for debugging and exploration).
- `graphiql_version`: The version of the provided `graphiql` package.
- `graphiql_template`: Inject a Jinja template string to customize GraphiQL.
- `middleware`: Custom middleware for [graphql-python].
- `batch`: Set the GraphQL view as batch (for using in [Apollo-Client] or [ReactRelayNetworkLayer])
- `jinja_env`: Sets jinja environment to be used to process GraphiQL template. If Jinja’s async mode is enabled (by `enable_async=True`), uses
`Template.render_async` instead of `Template.render`. If environment is not set, fallbacks to simple regex-based renderer.
- `max_age`: sets the response header `Access-Control-Max-Age` for preflight requests
- `encoder`: the encoder to use for responses (sensibly defaults to `graphql_server.json_encode`)
- `error_formatter`: the error formatter to use for responses (sensibly defaults to `graphql_server.default_format_error`)
- `enable_async`: whether `async` mode will be enabled.
- `subscriptions`: The [GraphiQL] socket endpoint for using subscriptions in [graphql-ws].
## Testing
Testing is done with `pytest`.
```bash
git clone https://github.com/graphql-python/aiohttp-graphql
cd aiohttp-graphql
# Create a virtualenv
python3.6 -m venv env && source env/bin/activate # for example
pip install -e .[test]
pytest
```
The tests, while modeled after sanic-graphql's tests, have been entirely refactored to take advantage of `pytest-asyncio`, conform with PEP-8, and increase readability with pytest fixtures. For usage tests, please check them out.
## License
Copyright for portions of project [aiohttp-graphql] are held by [Syrus Akbary] as part of project [flask-graphql] and [sanic-graphql] as part of project [Sergey Porivaev]. All other claims to this project [aiohttp-graphql] are held by [Devin Fee].
This project is licensed under the MIT License.
[GraphQL]: http://graphql.org/
[aiohttp]: https://github.com/aio-libs/aiohttp/
[flask-graphql]: https://github.com/graphql-python/flask-graphql
[sanic-graphql]: https://github.com/graphql-python/sanic-graphql
[Syrus Akbary]: https://github.com/syrusakbary
[Sergey Porivaev]: https://github.com/grazor
[GraphiQL]: https://github.com/graphql/graphiql
[graphql-python]: https://github.com/graphql-python/graphql-core
[Apollo-Client]: https://www.apollographql.com/docs/react/networking/network-layer/#query-batching
[Devin Fee]: https://github.com/dfee
[aiohttp-graphql]: https://github.com/graphql-python/aiohttp-graphql
[graphql-ws]: https://github.com/graphql-python/graphql-ws
%package -n python3-aiohttp-graphql
Summary: Adds GraphQL support to your aiohttp application
Provides: python-aiohttp-graphql
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-aiohttp-graphql
# aiohttp-graphql
Adds [GraphQL] support to your [aiohttp] application.
Based on [flask-graphql] by [Syrus Akbary] and [sanic-graphql] by [Sergey Porivaev].
[](https://badge.fury.io/py/aiohttp-graphql)
[](https://github.com/graphql-python/aiohttp-graphql)
[](https://github.com/graphql-python/aiohttp-graphql)
## Usage
Just use the `GraphQLView` view from `aiohttp_graphql`
```python
from aiohttp_graphql import GraphQLView
GraphQLView.attach(app, schema=Schema, graphiql=True)
# Optional, for adding batch query support (used in Apollo-Client)
GraphQLView.attach(app, schema=Schema, batch=True)
```
This will add a `/graphql` endpoint to your app (customizable by passing `route_path='/mypath'` to `GraphQLView.attach`).
Note: `GraphQLView.attach` is just a convenience function, and the same functionality can be achieved with
```python
gql_view = GraphQLView(schema=Schema, **kwargs)
app.router.add_route('*', gql_view, name='graphql')
```
It's worth noting that the the "view function" of `GraphQLView` is contained in `GraphQLView.__call__`. So, when you create an instance, that instance is callable with the request object as the sole positional argument. To illustrate:
```python
gql_view = GraphQLView(schema=Schema, **kwargs)
gql_view(request) # <-- the instance is callable and expects a `aiohttp.web.Request` object.
```
### Supported options
- `schema`: The `GraphQLSchema` object that you want the view to execute when it gets a valid request.
- `executor`: The `Executor` that you want to use to execute queries. If an `AsyncioExecutor` instance is provided, performs queries asynchronously within executor’s loop.
- `root_value`: The `root_value` you want to provide to `executor.execute`.
- `context`: A value to pass as the `context` to the `graphql()` function. By default is set to `dict` with request object at key `request`.
- `pretty`: Whether or not you want the response to be pretty printed JSON.
- `graphiql`: If `True`, may present [GraphiQL] when loaded directly from a browser (a useful tool for debugging and exploration).
- `graphiql_version`: The version of the provided `graphiql` package.
- `graphiql_template`: Inject a Jinja template string to customize GraphiQL.
- `middleware`: Custom middleware for [graphql-python].
- `batch`: Set the GraphQL view as batch (for using in [Apollo-Client] or [ReactRelayNetworkLayer])
- `jinja_env`: Sets jinja environment to be used to process GraphiQL template. If Jinja’s async mode is enabled (by `enable_async=True`), uses
`Template.render_async` instead of `Template.render`. If environment is not set, fallbacks to simple regex-based renderer.
- `max_age`: sets the response header `Access-Control-Max-Age` for preflight requests
- `encoder`: the encoder to use for responses (sensibly defaults to `graphql_server.json_encode`)
- `error_formatter`: the error formatter to use for responses (sensibly defaults to `graphql_server.default_format_error`)
- `enable_async`: whether `async` mode will be enabled.
- `subscriptions`: The [GraphiQL] socket endpoint for using subscriptions in [graphql-ws].
## Testing
Testing is done with `pytest`.
```bash
git clone https://github.com/graphql-python/aiohttp-graphql
cd aiohttp-graphql
# Create a virtualenv
python3.6 -m venv env && source env/bin/activate # for example
pip install -e .[test]
pytest
```
The tests, while modeled after sanic-graphql's tests, have been entirely refactored to take advantage of `pytest-asyncio`, conform with PEP-8, and increase readability with pytest fixtures. For usage tests, please check them out.
## License
Copyright for portions of project [aiohttp-graphql] are held by [Syrus Akbary] as part of project [flask-graphql] and [sanic-graphql] as part of project [Sergey Porivaev]. All other claims to this project [aiohttp-graphql] are held by [Devin Fee].
This project is licensed under the MIT License.
[GraphQL]: http://graphql.org/
[aiohttp]: https://github.com/aio-libs/aiohttp/
[flask-graphql]: https://github.com/graphql-python/flask-graphql
[sanic-graphql]: https://github.com/graphql-python/sanic-graphql
[Syrus Akbary]: https://github.com/syrusakbary
[Sergey Porivaev]: https://github.com/grazor
[GraphiQL]: https://github.com/graphql/graphiql
[graphql-python]: https://github.com/graphql-python/graphql-core
[Apollo-Client]: https://www.apollographql.com/docs/react/networking/network-layer/#query-batching
[Devin Fee]: https://github.com/dfee
[aiohttp-graphql]: https://github.com/graphql-python/aiohttp-graphql
[graphql-ws]: https://github.com/graphql-python/graphql-ws
%package help
Summary: Development documents and examples for aiohttp-graphql
Provides: python3-aiohttp-graphql-doc
%description help
# aiohttp-graphql
Adds [GraphQL] support to your [aiohttp] application.
Based on [flask-graphql] by [Syrus Akbary] and [sanic-graphql] by [Sergey Porivaev].
[](https://badge.fury.io/py/aiohttp-graphql)
[](https://github.com/graphql-python/aiohttp-graphql)
[](https://github.com/graphql-python/aiohttp-graphql)
## Usage
Just use the `GraphQLView` view from `aiohttp_graphql`
```python
from aiohttp_graphql import GraphQLView
GraphQLView.attach(app, schema=Schema, graphiql=True)
# Optional, for adding batch query support (used in Apollo-Client)
GraphQLView.attach(app, schema=Schema, batch=True)
```
This will add a `/graphql` endpoint to your app (customizable by passing `route_path='/mypath'` to `GraphQLView.attach`).
Note: `GraphQLView.attach` is just a convenience function, and the same functionality can be achieved with
```python
gql_view = GraphQLView(schema=Schema, **kwargs)
app.router.add_route('*', gql_view, name='graphql')
```
It's worth noting that the the "view function" of `GraphQLView` is contained in `GraphQLView.__call__`. So, when you create an instance, that instance is callable with the request object as the sole positional argument. To illustrate:
```python
gql_view = GraphQLView(schema=Schema, **kwargs)
gql_view(request) # <-- the instance is callable and expects a `aiohttp.web.Request` object.
```
### Supported options
- `schema`: The `GraphQLSchema` object that you want the view to execute when it gets a valid request.
- `executor`: The `Executor` that you want to use to execute queries. If an `AsyncioExecutor` instance is provided, performs queries asynchronously within executor’s loop.
- `root_value`: The `root_value` you want to provide to `executor.execute`.
- `context`: A value to pass as the `context` to the `graphql()` function. By default is set to `dict` with request object at key `request`.
- `pretty`: Whether or not you want the response to be pretty printed JSON.
- `graphiql`: If `True`, may present [GraphiQL] when loaded directly from a browser (a useful tool for debugging and exploration).
- `graphiql_version`: The version of the provided `graphiql` package.
- `graphiql_template`: Inject a Jinja template string to customize GraphiQL.
- `middleware`: Custom middleware for [graphql-python].
- `batch`: Set the GraphQL view as batch (for using in [Apollo-Client] or [ReactRelayNetworkLayer])
- `jinja_env`: Sets jinja environment to be used to process GraphiQL template. If Jinja’s async mode is enabled (by `enable_async=True`), uses
`Template.render_async` instead of `Template.render`. If environment is not set, fallbacks to simple regex-based renderer.
- `max_age`: sets the response header `Access-Control-Max-Age` for preflight requests
- `encoder`: the encoder to use for responses (sensibly defaults to `graphql_server.json_encode`)
- `error_formatter`: the error formatter to use for responses (sensibly defaults to `graphql_server.default_format_error`)
- `enable_async`: whether `async` mode will be enabled.
- `subscriptions`: The [GraphiQL] socket endpoint for using subscriptions in [graphql-ws].
## Testing
Testing is done with `pytest`.
```bash
git clone https://github.com/graphql-python/aiohttp-graphql
cd aiohttp-graphql
# Create a virtualenv
python3.6 -m venv env && source env/bin/activate # for example
pip install -e .[test]
pytest
```
The tests, while modeled after sanic-graphql's tests, have been entirely refactored to take advantage of `pytest-asyncio`, conform with PEP-8, and increase readability with pytest fixtures. For usage tests, please check them out.
## License
Copyright for portions of project [aiohttp-graphql] are held by [Syrus Akbary] as part of project [flask-graphql] and [sanic-graphql] as part of project [Sergey Porivaev]. All other claims to this project [aiohttp-graphql] are held by [Devin Fee].
This project is licensed under the MIT License.
[GraphQL]: http://graphql.org/
[aiohttp]: https://github.com/aio-libs/aiohttp/
[flask-graphql]: https://github.com/graphql-python/flask-graphql
[sanic-graphql]: https://github.com/graphql-python/sanic-graphql
[Syrus Akbary]: https://github.com/syrusakbary
[Sergey Porivaev]: https://github.com/grazor
[GraphiQL]: https://github.com/graphql/graphiql
[graphql-python]: https://github.com/graphql-python/graphql-core
[Apollo-Client]: https://www.apollographql.com/docs/react/networking/network-layer/#query-batching
[Devin Fee]: https://github.com/dfee
[aiohttp-graphql]: https://github.com/graphql-python/aiohttp-graphql
[graphql-ws]: https://github.com/graphql-python/graphql-ws
%prep
%autosetup -n aiohttp-graphql-1.1.0
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-aiohttp-graphql -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1.0-1
- Package Spec generated
|