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?










1















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)









share|improve this question


























    1















    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)









    share|improve this question
























      1












      1








      1








      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)









      share|improve this question














      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






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 7 at 10:41









      NarfanarNarfanar

      177211




      177211






















          1 Answer
          1






          active

          oldest

          votes


















          1














          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.






          share|improve this answer























          • 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





            @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











          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
          );



          );













          draft saved

          draft discarded


















          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









          1














          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.






          share|improve this answer























          • 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





            @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
















          1














          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.






          share|improve this answer























          • 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





            @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














          1












          1








          1







          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.






          share|improve this answer













          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.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          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 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





            @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






          • 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




















          draft saved

          draft discarded
















































          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.




          draft saved


          draft discarded














          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





















































          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







          Popular posts from this blog

          Can't initialize raids on a new ASUS Prime B360M-A motherboard2019 Community Moderator ElectionSimilar to RAID config yet more like mirroring solution?Can't get motherboard serial numberWhy does the BIOS entry point start with a WBINVD instruction?UEFI performance Asus Maximus V Extreme

          Identity Server 4 is not redirecting to Angular app after login2019 Community Moderator ElectionIdentity Server 4 and dockerIdentityserver implicit flow unauthorized_clientIdentityServer Hybrid Flow - Access Token is null after user successful loginIdentity Server to MVC client : Page Redirect After loginLogin with Steam OpenId(oidc-client-js)Identity Server 4+.NET Core 2.0 + IdentityIdentityServer4 post-login redirect not working in Edge browserCall to IdentityServer4 generates System.NullReferenceException: Object reference not set to an instance of an objectIdentityServer4 without HTTPS not workingHow to get Authorization code from identity server without login form

          2005 Ahvaz unrest Contents Background Causes Casualties Aftermath See also References Navigation menue"At Least 10 Are Killed by Bombs in Iran""Iran"Archived"Arab-Iranians in Iran to make April 15 'Day of Fury'"State of Mind, State of Order: Reactions to Ethnic Unrest in the Islamic Republic of Iran.10.1111/j.1754-9469.2008.00028.x"Iran hangs Arab separatists"Iran Overview from ArchivedConstitution of the Islamic Republic of Iran"Tehran puzzled by forged 'riots' letter""Iran and its minorities: Down in the second class""Iran: Handling Of Ahvaz Unrest Could End With Televised Confessions""Bombings Rock Iran Ahead of Election""Five die in Iran ethnic clashes""Iran: Need for restraint as anniversary of unrest in Khuzestan approaches"Archived"Iranian Sunni protesters killed in clashes with security forces"Archived