Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: retry and retry_async support streaming rpcs #495

Merged
merged 220 commits into from
Dec 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
220 commits
Select commit Hold shift + click to select a range
953106a
got retryable generators partially working
daniel-sanche Feb 8, 2023
89aeb75
added retrun statement
daniel-sanche Feb 8, 2023
27feb80
refactoring
daniel-sanche Feb 8, 2023
0dffa6d
work for now deadline
daniel-sanche Feb 8, 2023
b330c3b
improved synchronous generator retry
daniel-sanche Feb 8, 2023
67ceaa2
handle closing and returns
daniel-sanche Feb 10, 2023
ee2647a
got test to pass
daniel-sanche Feb 10, 2023
5a5396c
restructured test
daniel-sanche Feb 10, 2023
7afa76b
added tests
daniel-sanche Feb 10, 2023
2d91ade
refactoring and comments in retry code
daniel-sanche Feb 10, 2023
0cd384e
fixed helper; added is_generator flag
daniel-sanche Feb 11, 2023
f72bbec
got first test working
daniel-sanche Feb 11, 2023
88eed5c
remove extra await in front of async generator
daniel-sanche Feb 11, 2023
91f9cc4
implemented async generator retry test
daniel-sanche Feb 11, 2023
c3eb997
fixed is_generator
daniel-sanche Feb 11, 2023
f6c6201
added tests for aclose and athrow
daniel-sanche Feb 11, 2023
57b0ee3
simplified close; don't support throws
daniel-sanche Feb 11, 2023
e814ce7
added tests
daniel-sanche Feb 11, 2023
0ffb03f
have test that throw should retry
daniel-sanche Feb 11, 2023
a8024f3
improved aclose and athrow
daniel-sanche Feb 11, 2023
c76f641
added comments
daniel-sanche Feb 11, 2023
ee631e3
close synchronous generator
daniel-sanche Feb 11, 2023
70eb78c
refactor async file
daniel-sanche Feb 11, 2023
42ee132
ran blacken
daniel-sanche Feb 11, 2023
102d83b
improved send test
daniel-sanche Feb 11, 2023
f029dbd
improved comments
daniel-sanche Feb 11, 2023
c83c62a
got send working
daniel-sanche Feb 11, 2023
185826c
tested deadline handling
daniel-sanche Feb 11, 2023
c5f7bbe
changed timeout to only count time awaiting or sleeping
daniel-sanche Feb 13, 2023
4242036
improved comments
daniel-sanche Feb 14, 2023
9c4799c
added test for cancellation
daniel-sanche Feb 14, 2023
0bd6cab
improved comments
daniel-sanche Feb 14, 2023
67aeeaf
on_error can yield into the generator stream
daniel-sanche Feb 14, 2023
985b13a
Merge branch 'main' into retry_generators
daniel-sanche Apr 3, 2023
0ea8297
added filter_func to retryable generator
daniel-sanche Apr 4, 2023
b952652
fixed error in time budget calculation
daniel-sanche Apr 6, 2023
6cb3e2d
added from field to raised timeout exception
daniel-sanche Apr 6, 2023
99da116
removed filter_fn
daniel-sanche Apr 6, 2023
7f862d0
ran blacken
daniel-sanche Apr 6, 2023
04a4a69
removed generator auto-detection
daniel-sanche Apr 7, 2023
d20cf08
fixed tests and lint
daniel-sanche Apr 7, 2023
183c221
changed comments
daniel-sanche Apr 7, 2023
d2217e4
fixed 3.11 failed test
daniel-sanche Apr 7, 2023
d4a9d30
added comments
daniel-sanche Apr 7, 2023
06d45cc
made streaming retries into a custom generator object
daniel-sanche Apr 13, 2023
de41a14
added tests for iterators
daniel-sanche Apr 13, 2023
dcb3766
added test for non-awaitable target
daniel-sanche Apr 13, 2023
dd368e4
changed is_generator to is_stream
daniel-sanche Apr 13, 2023
452b9bb
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Apr 13, 2023
6879418
changed docstrings
daniel-sanche Apr 13, 2023
847509f
removed back-ticks
daniel-sanche Apr 13, 2023
b5e3796
removed outdated comment
daniel-sanche Apr 13, 2023
7a7d9ac
changed comments
daniel-sanche Apr 14, 2023
6619895
moved streaming retries to new files
daniel-sanche Apr 14, 2023
27fc930
reverted some style changes
daniel-sanche Apr 14, 2023
d6a23ea
changed comments
daniel-sanche Apr 14, 2023
90ef834
added comments
daniel-sanche Apr 14, 2023
6201db6
refactoring and commenting
daniel-sanche Apr 14, 2023
61ce3a7
blacken/mypy fixes
daniel-sanche Apr 14, 2023
69149a1
fixed issue with py37
daniel-sanche Apr 14, 2023
d63871e
added tests for bad sleep generators
daniel-sanche Apr 14, 2023
773e033
improved test_retry coverage
daniel-sanche Apr 14, 2023
d1def5d
improved async test coverage
daniel-sanche Apr 14, 2023
cbaaa1d
added test for calling next on exhausted generator
daniel-sanche Apr 14, 2023
21a863f
fixed lint issue
daniel-sanche Apr 14, 2023
878ddfb
changed docstring
daniel-sanche Apr 14, 2023
7b0a600
changed docstrings
daniel-sanche Apr 14, 2023
0188228
updated comments
daniel-sanche Apr 14, 2023
902a4ab
updated comments
daniel-sanche Apr 14, 2023
74f3f3e
fixed send and asend retry logic
daniel-sanche Apr 14, 2023
e506aad
update test error string
daniel-sanche Apr 19, 2023
5baa2aa
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Apr 19, 2023
5c3805d
improved type hinting
daniel-sanche Apr 19, 2023
265d998
improved test docs
daniel-sanche Apr 19, 2023
0423ebe
fixed mypy issues
daniel-sanche Apr 20, 2023
c4049f5
Merge branch 'main' into retry_generators
daniel-sanche Apr 21, 2023
acd6546
remove wait_for in async streaming for perf reasons
daniel-sanche May 8, 2023
b1ad4b3
fixed style issues
daniel-sanche May 8, 2023
8dcf67c
fixed callable type annotation
daniel-sanche May 10, 2023
6104c59
change time calculations
daniel-sanche May 12, 2023
43d0913
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] May 12, 2023
9ba7676
simplified retry_streaming_async to use wall time instead of cpu time
daniel-sanche May 19, 2023
14c195c
Merge branch 'main' into retry_generators
daniel-sanche Jun 16, 2023
de7b51a
removed extra CancelledError handling
daniel-sanche Jun 17, 2023
4cdee6b
improved docstrings
daniel-sanche Jun 20, 2023
a526d65
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Jun 20, 2023
ee2bbdd
Merge branch 'main' into retry_generators
daniel-sanche Jul 17, 2023
5f82355
swapped out utcnow for more performant time.monotonic
daniel-sanche Jul 28, 2023
9900c40
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Jul 28, 2023
2c2dcbe
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Jul 28, 2023
3340399
Merge branch 'retry_generators' of https://github.com/googleapis/pyth…
gcf-owl-bot[bot] Jul 28, 2023
de07714
Merge branch 'main' into retry_generators
parthea Aug 7, 2023
67068ac
don't check timeout on each yield by default
daniel-sanche Aug 14, 2023
54325bc
added exception building logic
daniel-sanche Aug 15, 2023
bafa18b
added type hint to check_timeout_on_yield
daniel-sanche Aug 15, 2023
2ae2a32
simplified ensure_tareget; fixed mypy issues
daniel-sanche Aug 15, 2023
9cadd63
don't check timeout on each yield by default
daniel-sanche Aug 14, 2023
c9ef1d5
added exception building logic
daniel-sanche Aug 15, 2023
41c7868
added type hint to check_timeout_on_yield
daniel-sanche Aug 15, 2023
30fccb9
simplified ensure_tareget; fixed mypy issues
daniel-sanche Aug 15, 2023
a2b0e6c
remove iteration helper
daniel-sanche Aug 15, 2023
4aa1ab4
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Aug 15, 2023
8349424
added test coverage for send/asend
daniel-sanche Aug 15, 2023
ece5cf8
Merge branch 'retry_generators_2' into retry_generators
daniel-sanche Aug 15, 2023
5ddda24
added test for closing new generator
daniel-sanche Aug 15, 2023
9e3ea92
improved test decorators
daniel-sanche Aug 15, 2023
3b06b3a
swapped out generator object with generator function
daniel-sanche Aug 15, 2023
8bb6b0c
support iterators, along with generators
daniel-sanche Aug 15, 2023
37c64a0
got tests passing with new structure
daniel-sanche Aug 15, 2023
cee0028
replaces sync streaming retries object with generator function
daniel-sanche Aug 15, 2023
3a7e5fa
removed timeout on yield functionality
daniel-sanche Aug 15, 2023
ba6dc9f
fixed comments
daniel-sanche Aug 15, 2023
0500b8b
fixed mypy issues
daniel-sanche Aug 15, 2023
1ccadb1
fixed issue with py310
daniel-sanche Aug 15, 2023
c312262
renamed streaming retry function
daniel-sanche Aug 15, 2023
1fe57e0
removed unneeded functions
daniel-sanche Aug 15, 2023
4f09f29
simplified some test functions
daniel-sanche Aug 15, 2023
06824b9
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Aug 15, 2023
343157b
removed unneeded test variable
daniel-sanche Aug 15, 2023
93f82cc
improved documentation
daniel-sanche Aug 16, 2023
0915ca0
Merge branch 'main' into retry_generators
parthea Sep 1, 2023
61e5ab5
fixed type hinting issues
daniel-sanche Sep 1, 2023
51c125b
fixed undefined name issues
daniel-sanche Sep 1, 2023
02604bc
fixed lint issues
daniel-sanche Sep 1, 2023
6269db2
update comment
daniel-sanche Sep 1, 2023
0dcd0de
fix typo
daniel-sanche Sep 1, 2023
54e9c81
Update google/api_core/retry_streaming.py
daniel-sanche Sep 1, 2023
2342910
added comment to on_error
daniel-sanche Sep 1, 2023
eada0d7
fixed indentation
daniel-sanche Sep 1, 2023
ae2bf37
improved sample
daniel-sanche Sep 1, 2023
c8a4f26
improved default exception factory
daniel-sanche Sep 1, 2023
2840b9f
added pylint disable line
daniel-sanche Sep 1, 2023
82274a3
cleaned up async retry wrapping
daniel-sanche Sep 1, 2023
1594a17
improved sample
daniel-sanche Sep 1, 2023
9b0ddb0
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Sep 1, 2023
8985127
remove extra generator close line
daniel-sanche Sep 1, 2023
60b20ab
added missing test
daniel-sanche Sep 1, 2023
237ca3d
AsyncRetry adds a coroutine in front of async streams
daniel-sanche Sep 12, 2023
a46c0f7
improved type checking
daniel-sanche Sep 12, 2023
93727b7
Merge branch 'main' into retry_generators
daniel-sanche Sep 12, 2023
796ae52
fixed typing issues
daniel-sanche Sep 12, 2023
0688ffe
moved docstrings
daniel-sanche Sep 21, 2023
da048ab
use enum in exception builder
daniel-sanche Sep 21, 2023
80e5eb0
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Sep 21, 2023
562079b
fixed lint and docs issues
daniel-sanche Sep 21, 2023
a0fecc5
Merge branch 'main' into retry_generators
daniel-sanche Oct 3, 2023
8cc6ea9
Update tests/unit/test_retry.py
daniel-sanche Oct 6, 2023
e7a5cd4
fixed comment line break
daniel-sanche Oct 6, 2023
02c12cc
use kwargs map
daniel-sanche Oct 6, 2023
03b1608
fixed on_error docstrings
daniel-sanche Oct 6, 2023
b05b11f
renamed example lists
daniel-sanche Oct 6, 2023
0b5d3a2
removed ignore_sent
daniel-sanche Oct 6, 2023
03f2af5
fixed lint issues
daniel-sanche Oct 6, 2023
5fee888
fixed generator mock and added comments
daniel-sanche Oct 6, 2023
239ed7d
Merge branch 'main' into retry_generators
daniel-sanche Oct 6, 2023
94eb0f5
Merge branch 'main' into retry_generators
daniel-sanche Oct 17, 2023
7d1e246
Merge branch 'main' into retry_generators
parthea Nov 8, 2023
b0faa2d
Apply suggestions from code review
daniel-sanche Nov 9, 2023
6c44298
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Nov 9, 2023
51df672
Update google/api_core/retry.py
daniel-sanche Nov 9, 2023
e207376
removed unneeded comments
daniel-sanche Nov 9, 2023
39716a7
improved comments
daniel-sanche Nov 9, 2023
2bbf33f
simplified generator detection
daniel-sanche Nov 9, 2023
3b03bfa
renamed variables
daniel-sanche Nov 9, 2023
e63701d
improved comments
daniel-sanche Nov 9, 2023
c101ea6
renamed variable
daniel-sanche Nov 9, 2023
3642d74
fixed tests
daniel-sanche Nov 9, 2023
34cfa08
improved comments
daniel-sanche Nov 9, 2023
583181d
Merge branch 'main' into retry_generators
daniel-sanche Nov 17, 2023
b311b87
fixed retry factory functionality
daniel-sanche Nov 18, 2023
19a998d
created new objects for streaming retry config
daniel-sanche Nov 20, 2023
5637e88
added typing to base retry
daniel-sanche Nov 20, 2023
c4be5f2
share base retry logic
daniel-sanche Nov 20, 2023
4d9e762
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Nov 20, 2023
2e9e84b
lint and mypy cleanup
daniel-sanche Nov 20, 2023
d183a7e
removed unneeded changes
daniel-sanche Nov 21, 2023
e2d9c9c
pass in initial args and kwargs to retry_target_stream
daniel-sanche Nov 21, 2023
4543106
uncommented functools.wraps
daniel-sanche Nov 21, 2023
d791aad
Merge branch 'main' into retry_generators
daniel-sanche Nov 21, 2023
638cc68
change enum encoding
daniel-sanche Nov 30, 2023
f7b1e14
moved base retry into own file
daniel-sanche Nov 30, 2023
07db4c2
restructured files
daniel-sanche Nov 30, 2023
d448a52
expose other retry target functions in retry __init__
daniel-sanche Nov 30, 2023
781426a
share a logger
daniel-sanche Nov 30, 2023
4a05404
extracted shared error handling logic
daniel-sanche Dec 1, 2023
b221c8d
added type hints
daniel-sanche Dec 1, 2023
b5b4534
removed costly awaitable check
daniel-sanche Dec 1, 2023
0f1145d
revised docstring
daniel-sanche Dec 1, 2023
8408512
added exception_factory docstrings
daniel-sanche Dec 1, 2023
aa69c56
Revert "removed costly awaitable check"
daniel-sanche Dec 1, 2023
d1ac29d
renamed variable
daniel-sanche Dec 5, 2023
3ab88fc
update docstring
daniel-sanche Dec 5, 2023
382d0e2
add punctuation
daniel-sanche Dec 5, 2023
4258823
punctuation
daniel-sanche Dec 5, 2023
1bc9731
update docstrings
daniel-sanche Dec 5, 2023
aafe057
changed deadline to timeout
daniel-sanche Dec 5, 2023
8095229
updated deadlien to timeout in docstrings
daniel-sanche Dec 5, 2023
de9f518
update docstring
daniel-sanche Dec 5, 2023
7864667
update test comment
daniel-sanche Dec 5, 2023
4c24322
update docstrings
daniel-sanche Dec 5, 2023
7855513
removed unneeded comments
daniel-sanche Dec 5, 2023
f4bfb02
improved docstrings
daniel-sanche Dec 5, 2023
a88cf6f
use timeout in tests
daniel-sanche Dec 5, 2023
b5c62e1
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Dec 5, 2023
852f4f8
moved test to proper place
daniel-sanche Dec 5, 2023
cd8323e
added test comments; fixed asserts
daniel-sanche Dec 5, 2023
ace61eb
use _build_retry_error as default param
daniel-sanche Dec 5, 2023
1bbd1f0
ran blacken
daniel-sanche Dec 5, 2023
35cc00a
added comment to clarify timeouts
daniel-sanche Dec 5, 2023
89abfa4
removed timeout vs deadline explainer from retry_streaming
daniel-sanche Dec 5, 2023
74ab817
remove duplicated test
daniel-sanche Dec 8, 2023
85b3e02
fixed variable name
daniel-sanche Dec 8, 2023
6dbe17d
made build_retry_error public
daniel-sanche Dec 8, 2023
71e5888
changed docstring
daniel-sanche Dec 8, 2023
cbae3d3
import extra helper in retry_unary_async
daniel-sanche Dec 11, 2023
61198b8
Merge branch 'main' into retry_generators
vchudnov-g Dec 11, 2023
acf9752
fix: address backwards compatibility warnings failing presubmits
vchudnov-g Dec 12, 2023
7cf9fbf
fix: address mypy errors
vchudnov-g Dec 12, 2023
f62439a
fix: address coverage and lint issues failing presubmits
vchudnov-g Dec 12, 2023
b7abeca
chore: simplify resolution of backaward-compatibility warnings
vchudnov-g Dec 12, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions google/api_core/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@
from google.api_core import version as api_core_version

__version__ = api_core_version.__version__

# for backwards compatibility, expose async unary retries as google.api_core.retry_async
from .retry import retry_unary_async as retry_async # noqa: F401
Loading