Metadata-Version: 2.1
Name: async-services
Version: 1.0.2
Summary: Synchronus Wrapper for Async Code
Home-page: https://github.com/gekco/async_services
Author: Ankit Kathuria
Author-email: ankitkathuria534@gmail.com
License: MIT
Description: # Async Services
        
        [![Build Status](https://travis-ci.org/gekco/async_services.svg?branch=master)](https://travis-ci.org/gekco/async_services)
        
        Run fast asynchronous code from a synchronous code. Async Services provide a synchronous wrapper to run
        third party asynchronous code or any coroutine for that matter in a synchronous way from a synchronous code.
        
        ### Installation
        
        ```
        pip install async_services
        ```
        
        ## For Development Purposes
        Install project Dependencies
        ```
        pip install -r requirements.txt
        ```
        
        ```
        pip install -U .
        ```
        
        ## Running the tests
        
        You can run the tests with the following command
        
        ```
        pytest .
        ```
        
        ### And coding style tests
        
        ```
        pycodestyle .
        ```
        
        ### Example Usage
        
        ```
        from async_services.core import run_coro, run_manager, stop_manager
        from async_services.core.manager import CoroStatus
        import asyncio
        
        async def coroutine(seconds=1, raise_exception=False):
            await asyncio.sleep(seconds)
            if raise_exception:
                raise Exception("Sample Exception")
            return "Hello World"
        
        run_manager()
        result = run_coro(coroutine(), block=True)
        print(result)
        assert result[0] == CoroStatus.Completed
        assert result[1] == "Hello World"
        stop_manager()
        
        ```
        ## Output
        Result will be a tuple consisting of two values (status, result)
        status will be a integer between 0 and 5 and it defines the state of the coruotine
        
        ```
        (1, 'Hello World')
        ```
        
        ## Coroutine Status
        Presently there are six status of a coruotine
        
        1. Queued = 0                   -> Coroutine is still queued waiting to be executed or is being executed
        2. Completed = 1                -> Coroutine has Completed Successfully
        3. Failed = 2                   -> Coroutine Completed Successfully , But callback function raised an exception
        4. Cancelled = 3                -> Coroutine was Cancelled
        5. Timeout = 4                  -> Coroutine did not complete in the given time
        6. CoroutineException = 5       -> Coroutine Itself Raised an Exception
        
        ## Authors
        
        * **Ankit Kathuria** - *Initial work*
        
        ## License
        
        This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details
        
        ## Acknowledgments
        
        * Hat tip to anyone whose code was used
        * Inspiration
        * etc
        
        
        
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Description-Content-Type: text/markdown
