Block on result of `async` method within a normal (sync) method2019 Community Moderator ElectionTest if function or method is normal or asynchronousSet result of 2 or more Async HTTP calls into named variablesUsing async/await keywords with Tk.after() method of tkinterPython websockets: how to override sync method WebSocketCommonProtocol.connection_made() with async call?async code running synchronously, doesn't seem to have any lines that will be blockingasyncio: collecting results from an async function in an executorTypeError: _request() got an unexpected keyword argument 'cookies' (aiohttp)check if function is async in python 3.7Wait on an ordinary function which calls an async functionCan a Python coroutine be implemented without await or yield?
Single word request: Harming the benefactor
Can "semicircle" be used to refer to a part-circle that is not a exact half-circle?
Running a subshell from the middle of the current command
What wound would be of little consequence to a biped but terrible for a quadruped?
Can someone explain this Mudra being done by Ramakrishna Paramhansa in Samadhi?
Making a sword in the stone, in a medieval world without magic
My story is written in English, but is set in my home country. What language should I use for the dialogue?
Who is our nearest neighbor
How do anti-virus programs start at Windows boot?
Is having access to past exams cheating and, if yes, could it be proven just by a good grade?
Should we release the security issues we found in our product as CVE or we can just update those on weekly release notes?
Counter-example to the existence of left Bousfield localization of combinatorial model category
What to do when during a meeting client people start to fight (even physically) with each others?
What is the dot in “1.2.4."
When were linguistics departments first established
Why must traveling waves have the same amplitude to form a standing wave?
What is the blue range indicating on this manifold pressure gauge?
Silly Sally's Movie
Latest web browser compatible with Windows 98
My adviser wants to be the first author
Does Linux have system calls to access all the features of the file systems it supports?
"One can do his homework in the library"
"However" used in a conditional clause?
Question about partial fractions with irreducible quadratic factors
Block on result of `async` method within a normal (sync) method
2019 Community Moderator ElectionTest if function or method is normal or asynchronousSet result of 2 or more Async HTTP calls into named variablesUsing async/await keywords with Tk.after() method of tkinterPython websockets: how to override sync method WebSocketCommonProtocol.connection_made() with async call?async code running synchronously, doesn't seem to have any lines that will be blockingasyncio: collecting results from an async function in an executorTypeError: _request() got an unexpected keyword argument 'cookies' (aiohttp)check if function is async in python 3.7Wait on an ordinary function which calls an async functionCan a Python coroutine be implemented without await or yield?
Say I have an async 'core' in my algorithm that is meant to return a final result.
And some sync parts that have to run before and after. Like:
async def algo_async(x):
await ...
return result
def run():
x = prepare()
r = ???(algo_async(x)) #< What here?
post(r)
python-3.x python-asyncio
add a comment |
Say I have an async 'core' in my algorithm that is meant to return a final result.
And some sync parts that have to run before and after. Like:
async def algo_async(x):
await ...
return result
def run():
x = prepare()
r = ???(algo_async(x)) #< What here?
post(r)
python-3.x python-asyncio
add a comment |
Say I have an async 'core' in my algorithm that is meant to return a final result.
And some sync parts that have to run before and after. Like:
async def algo_async(x):
await ...
return result
def run():
x = prepare()
r = ???(algo_async(x)) #< What here?
post(r)
python-3.x python-asyncio
Say I have an async 'core' in my algorithm that is meant to return a final result.
And some sync parts that have to run before and after. Like:
async def algo_async(x):
await ...
return result
def run():
x = prepare()
r = ???(algo_async(x)) #< What here?
post(r)
python-3.x python-asyncio
python-3.x python-asyncio
asked Mar 7 at 10:41
NarfanarNarfanar
177211
177211
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Async function can be (and should be) runned by event loop, for example:
def run():
x = prepare()
r = asyncio.run(algo_async(x))
post(r)
(If you have Python < 3.7 use asyncio.get_event_loop().run_until_complete(algo_async(x))
instead of asyncio.run
)
Note, however, that main reason to make function async in the first place is an ability to run it concurrently with other async functions. When you run async function inside synchronous function, you lose this ability and all related benefits.
That's why usually people make event loop running entry point of whole program and use make all functions that need to run async function async also.
For the note: consider that the async algo itself runs several things concurrently. My whole issue is with explicitly sequencing part of the pipeline, while not making themain
function itself async (because I can't). Your solution is simple, and does work in a script, but I can't get it to work in a Jupyter environment (using IPython 7.x, which seems to react weirdly to async code?). Any help appreciated!
– Narfanar
Mar 7 at 13:43
1
@Narfanar in case problem you have is "asyncio.run() cannot be called from a running event loop" it is discussed here. Solution from this comment solved issue for me: i.imgur.com/oTpuaRu.png
– Mikhail Gerasimov
Mar 7 at 14:06
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55041811%2fblock-on-result-of-async-method-within-a-normal-sync-method%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Async function can be (and should be) runned by event loop, for example:
def run():
x = prepare()
r = asyncio.run(algo_async(x))
post(r)
(If you have Python < 3.7 use asyncio.get_event_loop().run_until_complete(algo_async(x))
instead of asyncio.run
)
Note, however, that main reason to make function async in the first place is an ability to run it concurrently with other async functions. When you run async function inside synchronous function, you lose this ability and all related benefits.
That's why usually people make event loop running entry point of whole program and use make all functions that need to run async function async also.
For the note: consider that the async algo itself runs several things concurrently. My whole issue is with explicitly sequencing part of the pipeline, while not making themain
function itself async (because I can't). Your solution is simple, and does work in a script, but I can't get it to work in a Jupyter environment (using IPython 7.x, which seems to react weirdly to async code?). Any help appreciated!
– Narfanar
Mar 7 at 13:43
1
@Narfanar in case problem you have is "asyncio.run() cannot be called from a running event loop" it is discussed here. Solution from this comment solved issue for me: i.imgur.com/oTpuaRu.png
– Mikhail Gerasimov
Mar 7 at 14:06
add a comment |
Async function can be (and should be) runned by event loop, for example:
def run():
x = prepare()
r = asyncio.run(algo_async(x))
post(r)
(If you have Python < 3.7 use asyncio.get_event_loop().run_until_complete(algo_async(x))
instead of asyncio.run
)
Note, however, that main reason to make function async in the first place is an ability to run it concurrently with other async functions. When you run async function inside synchronous function, you lose this ability and all related benefits.
That's why usually people make event loop running entry point of whole program and use make all functions that need to run async function async also.
For the note: consider that the async algo itself runs several things concurrently. My whole issue is with explicitly sequencing part of the pipeline, while not making themain
function itself async (because I can't). Your solution is simple, and does work in a script, but I can't get it to work in a Jupyter environment (using IPython 7.x, which seems to react weirdly to async code?). Any help appreciated!
– Narfanar
Mar 7 at 13:43
1
@Narfanar in case problem you have is "asyncio.run() cannot be called from a running event loop" it is discussed here. Solution from this comment solved issue for me: i.imgur.com/oTpuaRu.png
– Mikhail Gerasimov
Mar 7 at 14:06
add a comment |
Async function can be (and should be) runned by event loop, for example:
def run():
x = prepare()
r = asyncio.run(algo_async(x))
post(r)
(If you have Python < 3.7 use asyncio.get_event_loop().run_until_complete(algo_async(x))
instead of asyncio.run
)
Note, however, that main reason to make function async in the first place is an ability to run it concurrently with other async functions. When you run async function inside synchronous function, you lose this ability and all related benefits.
That's why usually people make event loop running entry point of whole program and use make all functions that need to run async function async also.
Async function can be (and should be) runned by event loop, for example:
def run():
x = prepare()
r = asyncio.run(algo_async(x))
post(r)
(If you have Python < 3.7 use asyncio.get_event_loop().run_until_complete(algo_async(x))
instead of asyncio.run
)
Note, however, that main reason to make function async in the first place is an ability to run it concurrently with other async functions. When you run async function inside synchronous function, you lose this ability and all related benefits.
That's why usually people make event loop running entry point of whole program and use make all functions that need to run async function async also.
answered Mar 7 at 11:01
Mikhail GerasimovMikhail Gerasimov
14.2k43869
14.2k43869
For the note: consider that the async algo itself runs several things concurrently. My whole issue is with explicitly sequencing part of the pipeline, while not making themain
function itself async (because I can't). Your solution is simple, and does work in a script, but I can't get it to work in a Jupyter environment (using IPython 7.x, which seems to react weirdly to async code?). Any help appreciated!
– Narfanar
Mar 7 at 13:43
1
@Narfanar in case problem you have is "asyncio.run() cannot be called from a running event loop" it is discussed here. Solution from this comment solved issue for me: i.imgur.com/oTpuaRu.png
– Mikhail Gerasimov
Mar 7 at 14:06
add a comment |
For the note: consider that the async algo itself runs several things concurrently. My whole issue is with explicitly sequencing part of the pipeline, while not making themain
function itself async (because I can't). Your solution is simple, and does work in a script, but I can't get it to work in a Jupyter environment (using IPython 7.x, which seems to react weirdly to async code?). Any help appreciated!
– Narfanar
Mar 7 at 13:43
1
@Narfanar in case problem you have is "asyncio.run() cannot be called from a running event loop" it is discussed here. Solution from this comment solved issue for me: i.imgur.com/oTpuaRu.png
– Mikhail Gerasimov
Mar 7 at 14:06
For the note: consider that the async algo itself runs several things concurrently. My whole issue is with explicitly sequencing part of the pipeline, while not making the
main
function itself async (because I can't). Your solution is simple, and does work in a script, but I can't get it to work in a Jupyter environment (using IPython 7.x, which seems to react weirdly to async code?). Any help appreciated!– Narfanar
Mar 7 at 13:43
For the note: consider that the async algo itself runs several things concurrently. My whole issue is with explicitly sequencing part of the pipeline, while not making the
main
function itself async (because I can't). Your solution is simple, and does work in a script, but I can't get it to work in a Jupyter environment (using IPython 7.x, which seems to react weirdly to async code?). Any help appreciated!– Narfanar
Mar 7 at 13:43
1
1
@Narfanar in case problem you have is "asyncio.run() cannot be called from a running event loop" it is discussed here. Solution from this comment solved issue for me: i.imgur.com/oTpuaRu.png
– Mikhail Gerasimov
Mar 7 at 14:06
@Narfanar in case problem you have is "asyncio.run() cannot be called from a running event loop" it is discussed here. Solution from this comment solved issue for me: i.imgur.com/oTpuaRu.png
– Mikhail Gerasimov
Mar 7 at 14:06
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55041811%2fblock-on-result-of-async-method-within-a-normal-sync-method%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown