sprintsolo-sally-db-client 0.1.45__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. sprintsolo_sally_db_client-0.1.45/PKG-INFO +17 -0
  2. sprintsolo_sally_db_client-0.1.45/README.md +9 -0
  3. sprintsolo_sally_db_client-0.1.45/pyproject.toml +18 -0
  4. sprintsolo_sally_db_client-0.1.45/setup.cfg +4 -0
  5. sprintsolo_sally_db_client-0.1.45/sprintsolo_sally_db_client.egg-info/PKG-INFO +17 -0
  6. sprintsolo_sally_db_client-0.1.45/sprintsolo_sally_db_client.egg-info/SOURCES.txt +95 -0
  7. sprintsolo_sally_db_client-0.1.45/sprintsolo_sally_db_client.egg-info/dependency_links.txt +1 -0
  8. sprintsolo_sally_db_client-0.1.45/sprintsolo_sally_db_client.egg-info/top_level.txt +1 -0
  9. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/__init__.py +63 -0
  10. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/__main__.py +6 -0
  11. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_async_http.py +68 -0
  12. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_base_client.py +543 -0
  13. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_builder.py +878 -0
  14. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_compat.py +369 -0
  15. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_config.py +128 -0
  16. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_constants.py +21 -0
  17. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_fields.py +198 -0
  18. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_metrics.py +49 -0
  19. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_proxy.py +49 -0
  20. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_raw_query.py +194 -0
  21. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_registry.py +54 -0
  22. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_sync_http.py +65 -0
  23. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_transactions.py +224 -0
  24. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_types.py +97 -0
  25. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_typing.py +10 -0
  26. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_vendor/__init__.py +0 -0
  27. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_vendor/lark_schema_parser.py +3484 -0
  28. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/_vendor/lark_schema_scan_parser.py +3484 -0
  29. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/actions.py +36232 -0
  30. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/bases.py +426 -0
  31. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/binaries/__init__.py +3 -0
  32. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/binaries/constants.py +11 -0
  33. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/binaries/platform.py +71 -0
  34. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/cli/__init__.py +2 -0
  35. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/cli/_node.py +410 -0
  36. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/cli/cli.py +97 -0
  37. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/cli/commands/__init__.py +0 -0
  38. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/cli/commands/dev.py +47 -0
  39. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/cli/commands/fetch.py +21 -0
  40. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/cli/commands/generate.py +84 -0
  41. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/cli/commands/version.py +48 -0
  42. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/cli/custom.py +12 -0
  43. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/cli/options.py +26 -0
  44. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/cli/prisma.py +116 -0
  45. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/cli/utils.py +166 -0
  46. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/client.py +4396 -0
  47. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/engine/__init__.py +18 -0
  48. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/engine/_abstract.py +178 -0
  49. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/engine/_http.py +235 -0
  50. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/engine/_query.py +459 -0
  51. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/engine/abstract.py +47 -0
  52. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/engine/errors.py +75 -0
  53. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/engine/http.py +7 -0
  54. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/engine/query.py +7 -0
  55. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/engine/utils.py +185 -0
  56. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/enums.py +121 -0
  57. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/errors.py +193 -0
  58. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/fields.py +1 -0
  59. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/__init__.py +5 -0
  60. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/_dsl_parser/__init__.py +1 -0
  61. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/_dsl_parser/parser.py +87 -0
  62. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/_dsl_parser/transformer.py +48 -0
  63. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/errors.py +9 -0
  64. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/filters.py +8 -0
  65. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/generator.py +305 -0
  66. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/jsonrpc.py +111 -0
  67. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/models.py +1199 -0
  68. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/schema.py +211 -0
  69. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/templates/_header.py.jinja +48 -0
  70. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/templates/_pragma.py.jinja +3 -0
  71. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/templates/_utils.py.jinja +32 -0
  72. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/templates/actions.py.jinja +1069 -0
  73. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/templates/bases.py.jinja +51 -0
  74. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/templates/client.py.jinja +447 -0
  75. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/templates/engine/abstract.py.jinja +16 -0
  76. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/templates/engine/http.py.jinja +13 -0
  77. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/templates/engine/query.py.jinja +13 -0
  78. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/templates/enums.py.jinja +12 -0
  79. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/templates/http.py.jinja +17 -0
  80. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/templates/metadata.py.jinja +23 -0
  81. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/templates/models.py.jinja +226 -0
  82. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/templates/partials.py.jinja +47 -0
  83. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/templates/types.py.jinja +782 -0
  84. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/types.py +23 -0
  85. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/generator/utils.py +170 -0
  86. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/http.py +45 -0
  87. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/http_abstract.py +125 -0
  88. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/metadata.py +209 -0
  89. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/models.py +8583 -0
  90. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/mypy.py +381 -0
  91. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/partials.py +51 -0
  92. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/py.typed +1 -0
  93. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/schema.prisma +1050 -0
  94. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/testing.py +35 -0
  95. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/types.py +160125 -0
  96. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/utils.py +141 -0
  97. sprintsolo_sally_db_client-0.1.45/src/sprintsolo_sally_db_client/validator.py +99 -0
@@ -0,0 +1,17 @@
1
+ Metadata-Version: 2.4
2
+ Name: sprintsolo-sally-db-client
3
+ Version: 0.1.45
4
+ Summary: Prisma Python client for organization services (generated in central repo)
5
+ License: UNLICENSED
6
+ Requires-Python: >=3.11
7
+ Description-Content-Type: text/markdown
8
+
9
+ # sprintsolo-sally-db-client
10
+
11
+ Internal Prisma Python client published by the central backend repo.
12
+
13
+ Usage:
14
+
15
+ ```bash
16
+ pip install sprintsolo-sally-db-client --index-url <your-private-pypi>
17
+ ```
@@ -0,0 +1,9 @@
1
+ # sprintsolo-sally-db-client
2
+
3
+ Internal Prisma Python client published by the central backend repo.
4
+
5
+ Usage:
6
+
7
+ ```bash
8
+ pip install sprintsolo-sally-db-client --index-url <your-private-pypi>
9
+ ```
@@ -0,0 +1,18 @@
1
+ [project]
2
+ name = "sprintsolo-sally-db-client"
3
+ version = "0.1.45"
4
+ description = "Prisma Python client for organization services (generated in central repo)"
5
+ readme = "README.md"
6
+ license = {text = "UNLICENSED"}
7
+ requires-python = ">=3.11"
8
+
9
+ [build-system]
10
+ requires = ["setuptools", "wheel"]
11
+ build-backend = "setuptools.build_meta"
12
+
13
+ [tool.setuptools]
14
+ package-dir = {"sprintsolo_sally_db_client" = "src/sprintsolo_sally_db_client"}
15
+ packages = ["sprintsolo_sally_db_client"]
16
+
17
+ [tool.setuptools.package-data]
18
+ sprintsolo_sally_db_client = ["**/*"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,17 @@
1
+ Metadata-Version: 2.4
2
+ Name: sprintsolo-sally-db-client
3
+ Version: 0.1.45
4
+ Summary: Prisma Python client for organization services (generated in central repo)
5
+ License: UNLICENSED
6
+ Requires-Python: >=3.11
7
+ Description-Content-Type: text/markdown
8
+
9
+ # sprintsolo-sally-db-client
10
+
11
+ Internal Prisma Python client published by the central backend repo.
12
+
13
+ Usage:
14
+
15
+ ```bash
16
+ pip install sprintsolo-sally-db-client --index-url <your-private-pypi>
17
+ ```
@@ -0,0 +1,95 @@
1
+ README.md
2
+ pyproject.toml
3
+ sprintsolo_sally_db_client.egg-info/PKG-INFO
4
+ sprintsolo_sally_db_client.egg-info/SOURCES.txt
5
+ sprintsolo_sally_db_client.egg-info/dependency_links.txt
6
+ sprintsolo_sally_db_client.egg-info/top_level.txt
7
+ src/sprintsolo_sally_db_client/__init__.py
8
+ src/sprintsolo_sally_db_client/__main__.py
9
+ src/sprintsolo_sally_db_client/_async_http.py
10
+ src/sprintsolo_sally_db_client/_base_client.py
11
+ src/sprintsolo_sally_db_client/_builder.py
12
+ src/sprintsolo_sally_db_client/_compat.py
13
+ src/sprintsolo_sally_db_client/_config.py
14
+ src/sprintsolo_sally_db_client/_constants.py
15
+ src/sprintsolo_sally_db_client/_fields.py
16
+ src/sprintsolo_sally_db_client/_metrics.py
17
+ src/sprintsolo_sally_db_client/_proxy.py
18
+ src/sprintsolo_sally_db_client/_raw_query.py
19
+ src/sprintsolo_sally_db_client/_registry.py
20
+ src/sprintsolo_sally_db_client/_sync_http.py
21
+ src/sprintsolo_sally_db_client/_transactions.py
22
+ src/sprintsolo_sally_db_client/_types.py
23
+ src/sprintsolo_sally_db_client/_typing.py
24
+ src/sprintsolo_sally_db_client/actions.py
25
+ src/sprintsolo_sally_db_client/bases.py
26
+ src/sprintsolo_sally_db_client/client.py
27
+ src/sprintsolo_sally_db_client/enums.py
28
+ src/sprintsolo_sally_db_client/errors.py
29
+ src/sprintsolo_sally_db_client/fields.py
30
+ src/sprintsolo_sally_db_client/http.py
31
+ src/sprintsolo_sally_db_client/http_abstract.py
32
+ src/sprintsolo_sally_db_client/metadata.py
33
+ src/sprintsolo_sally_db_client/models.py
34
+ src/sprintsolo_sally_db_client/mypy.py
35
+ src/sprintsolo_sally_db_client/partials.py
36
+ src/sprintsolo_sally_db_client/py.typed
37
+ src/sprintsolo_sally_db_client/schema.prisma
38
+ src/sprintsolo_sally_db_client/testing.py
39
+ src/sprintsolo_sally_db_client/types.py
40
+ src/sprintsolo_sally_db_client/utils.py
41
+ src/sprintsolo_sally_db_client/validator.py
42
+ src/sprintsolo_sally_db_client/_vendor/__init__.py
43
+ src/sprintsolo_sally_db_client/_vendor/lark_schema_parser.py
44
+ src/sprintsolo_sally_db_client/_vendor/lark_schema_scan_parser.py
45
+ src/sprintsolo_sally_db_client/binaries/__init__.py
46
+ src/sprintsolo_sally_db_client/binaries/constants.py
47
+ src/sprintsolo_sally_db_client/binaries/platform.py
48
+ src/sprintsolo_sally_db_client/cli/__init__.py
49
+ src/sprintsolo_sally_db_client/cli/_node.py
50
+ src/sprintsolo_sally_db_client/cli/cli.py
51
+ src/sprintsolo_sally_db_client/cli/custom.py
52
+ src/sprintsolo_sally_db_client/cli/options.py
53
+ src/sprintsolo_sally_db_client/cli/prisma.py
54
+ src/sprintsolo_sally_db_client/cli/utils.py
55
+ src/sprintsolo_sally_db_client/cli/commands/__init__.py
56
+ src/sprintsolo_sally_db_client/cli/commands/dev.py
57
+ src/sprintsolo_sally_db_client/cli/commands/fetch.py
58
+ src/sprintsolo_sally_db_client/cli/commands/generate.py
59
+ src/sprintsolo_sally_db_client/cli/commands/version.py
60
+ src/sprintsolo_sally_db_client/engine/__init__.py
61
+ src/sprintsolo_sally_db_client/engine/_abstract.py
62
+ src/sprintsolo_sally_db_client/engine/_http.py
63
+ src/sprintsolo_sally_db_client/engine/_query.py
64
+ src/sprintsolo_sally_db_client/engine/abstract.py
65
+ src/sprintsolo_sally_db_client/engine/errors.py
66
+ src/sprintsolo_sally_db_client/engine/http.py
67
+ src/sprintsolo_sally_db_client/engine/query.py
68
+ src/sprintsolo_sally_db_client/engine/utils.py
69
+ src/sprintsolo_sally_db_client/generator/__init__.py
70
+ src/sprintsolo_sally_db_client/generator/errors.py
71
+ src/sprintsolo_sally_db_client/generator/filters.py
72
+ src/sprintsolo_sally_db_client/generator/generator.py
73
+ src/sprintsolo_sally_db_client/generator/jsonrpc.py
74
+ src/sprintsolo_sally_db_client/generator/models.py
75
+ src/sprintsolo_sally_db_client/generator/schema.py
76
+ src/sprintsolo_sally_db_client/generator/types.py
77
+ src/sprintsolo_sally_db_client/generator/utils.py
78
+ src/sprintsolo_sally_db_client/generator/_dsl_parser/__init__.py
79
+ src/sprintsolo_sally_db_client/generator/_dsl_parser/parser.py
80
+ src/sprintsolo_sally_db_client/generator/_dsl_parser/transformer.py
81
+ src/sprintsolo_sally_db_client/generator/templates/_header.py.jinja
82
+ src/sprintsolo_sally_db_client/generator/templates/_pragma.py.jinja
83
+ src/sprintsolo_sally_db_client/generator/templates/_utils.py.jinja
84
+ src/sprintsolo_sally_db_client/generator/templates/actions.py.jinja
85
+ src/sprintsolo_sally_db_client/generator/templates/bases.py.jinja
86
+ src/sprintsolo_sally_db_client/generator/templates/client.py.jinja
87
+ src/sprintsolo_sally_db_client/generator/templates/enums.py.jinja
88
+ src/sprintsolo_sally_db_client/generator/templates/http.py.jinja
89
+ src/sprintsolo_sally_db_client/generator/templates/metadata.py.jinja
90
+ src/sprintsolo_sally_db_client/generator/templates/models.py.jinja
91
+ src/sprintsolo_sally_db_client/generator/templates/partials.py.jinja
92
+ src/sprintsolo_sally_db_client/generator/templates/types.py.jinja
93
+ src/sprintsolo_sally_db_client/generator/templates/engine/abstract.py.jinja
94
+ src/sprintsolo_sally_db_client/generator/templates/engine/http.py.jinja
95
+ src/sprintsolo_sally_db_client/generator/templates/engine/query.py.jinja
@@ -0,0 +1,63 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ __title__ = 'prisma'
4
+ __author__ = 'RobertCraigie'
5
+ __license__ = 'APACHE'
6
+ __copyright__ = 'Copyright 2020-2023 RobertCraigie'
7
+ __version__ = '0.15.0'
8
+
9
+ from typing import TYPE_CHECKING
10
+
11
+ from . import errors as errors
12
+ from .utils import setup_logging
13
+ from ._types import PrismaMethod as PrismaMethod
14
+ from ._config import config as config
15
+ from ._metrics import (
16
+ Metric as Metric,
17
+ Metrics as Metrics,
18
+ MetricHistogram as MetricHistogram,
19
+ )
20
+ from .validator import *
21
+
22
+ # the import ordering is important here because
23
+ # we rely on the fact that `prisma/client.py` is the
24
+ # first piece of generated code that is loaded. This is
25
+ # especially useful for `python -m prisma_cleanup`
26
+ try:
27
+ from .client import * # noqa: I001, TID251
28
+ from .fields import * # noqa: TID251
29
+ from . import (
30
+ bases as bases, # noqa: TID251
31
+ types as types, # noqa: TID251
32
+ models as models, # noqa: TID251
33
+ partials as partials, # noqa: TID251
34
+ )
35
+ except ModuleNotFoundError:
36
+ # code has not been generated yet
37
+ # TODO: this could swallow unexpected errors
38
+
39
+ # we only define this magic function when the client has not
40
+ # been generated for performance reasons and we hide it from
41
+ # type checkers so that they don't incidentally disable type
42
+ # checking due to the dynamic nature of the `__getattr__`
43
+ # magic dunder method.
44
+ if not TYPE_CHECKING:
45
+
46
+ def __getattr__(name: str):
47
+ try:
48
+ return globals()[name]
49
+ except KeyError as err:
50
+ # TODO: support checking for 'models' here too
51
+ if name in {'Prisma', 'Client'}:
52
+ # TODO: remove this frame from the stack trace
53
+ raise RuntimeError(
54
+ "The Client hasn't been generated yet, "
55
+ 'you must run `prisma generate` before you can use the client.\n'
56
+ 'See https://prisma-client-py.readthedocs.io/en/stable/reference/troubleshooting/#client-has-not-been-generated-yet'
57
+ ) from None
58
+
59
+ # leaves handling of this potential error to Python as per PEP 562
60
+ raise AttributeError() from err
61
+
62
+
63
+ setup_logging()
@@ -0,0 +1,6 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ from . import cli
4
+
5
+ if __name__ == '__main__':
6
+ cli.main()
@@ -0,0 +1,68 @@
1
+ import json
2
+ from typing import Any
3
+ from typing_extensions import override
4
+
5
+ import httpx
6
+
7
+ from ._types import Method
8
+ from .http_abstract import AbstractHTTP, AbstractResponse
9
+
10
+ __all__ = ('HTTP', 'AsyncHTTP', 'Response', 'client')
11
+
12
+
13
+ class AsyncHTTP(AbstractHTTP[httpx.AsyncClient, httpx.Response]):
14
+ session: httpx.AsyncClient
15
+
16
+ @override
17
+ async def download(self, url: str, dest: str) -> None:
18
+ async with self.session.stream('GET', url, timeout=None) as resp:
19
+ resp.raise_for_status()
20
+ with open(dest, 'wb') as fd:
21
+ async for chunk in resp.aiter_bytes():
22
+ fd.write(chunk)
23
+
24
+ @override
25
+ async def request(self, method: Method, url: str, **kwargs: Any) -> 'Response':
26
+ return Response(await self.session.request(method, url, **kwargs))
27
+
28
+ @override
29
+ def open(self) -> None:
30
+ self.session = httpx.AsyncClient(**self.session_kwargs)
31
+
32
+ @override
33
+ async def close(self) -> None:
34
+ if self.should_close():
35
+ await self.session.aclose()
36
+
37
+ # mypy doesn't like us assigning None as the type of
38
+ # session is not optional, however the argument that
39
+ # the setter takes is optional, so this is fine
40
+ self.session = None # type: ignore[assignment]
41
+
42
+
43
+ HTTP = AsyncHTTP
44
+
45
+
46
+ client: HTTP = HTTP()
47
+
48
+
49
+ class Response(AbstractResponse[httpx.Response]):
50
+ __slots__ = ()
51
+
52
+ @property
53
+ @override
54
+ def status(self) -> int:
55
+ return self.original.status_code
56
+
57
+ @property
58
+ @override
59
+ def headers(self) -> httpx.Headers:
60
+ return self.original.headers
61
+
62
+ @override
63
+ async def json(self, **kwargs: Any) -> Any:
64
+ return json.loads(await self.original.aread(), **kwargs)
65
+
66
+ @override
67
+ async def text(self, **kwargs: Any) -> str:
68
+ return ''.join([part async for part in self.original.aiter_text(**kwargs)])