semvec/pypi-packages huggingface dataset:
pycon-ng2019 1.0.0
Welcome to Pycon Nigeria 2019
License: MIT
Requires Python: >=3.6
Keywords: pycon nigeria

# pipelining-pycon-talk
This repo contains the source code of the demos of the talk on `End to End Workflows` presented at Pycon Nigeria 2019
View the [Powerpoint presentation](https://drive.google.com/open?id=17-w5oIWQ-O4aVWivOGecywH2eb3IHn9jx-l5fxwnR6g)

[![Build Status](https://travis-ci.com/bisoncorps/pipelining-pycon-talk.svg?branch=master)](https://travis-ci.com/bisoncorps/pipelining-pycon-talk)
[![Heroku App Status](http://heroku-shields.herokuapp.com/pycon-2019)](https://pycon-2019.herokuapp.com)
[![PyPI version](https://badge.fury.io/py/pycon.svg)](https://badge.fury.io/py/pycon)
<hr/>


## Installation
Installation can be done from [Test PyPi](https://test.pypi.org)
```bash
pip install --index-url https://test.pypi.org/simple/ pycon-ng2019 
```
### Development
- Install Development dependencies. Update the settings in the [manage.py](https://github.com/bisoncorps/pipelining-pycon-talk/blob/a3067872d7c8bb4f9d5f62273a71946691d69131/manage.py#L8) file to `django.settings.common` 

```bash
# install Dev dependencies
pip install -r dev-requirements.txt
```

- Start Server

```bash
python manage.py runserver
```

## Usage

### For cli demo
```python
  import pycon
  pycon.demo()
```
![CLI Image](assets/cli.gif)

### Django App
- Add `pycon` to `installed_apps`
- Add `path('', include('pycon.urls'))` to urls file

![Django Image](assets/django.gif)
Pycon-NG page should be available in http://localhost:8000/pycon
Flask-Log-Request-ID 0.10.1
Flask extension that can parse and handle multiple types of request-id sent by request processors like Amazon ELB, Heroku or any multi-tier infrastructure as the one used for microservices.
License: MIT


Flask-Log-Request-Id
====================

|CircleCI|

**Flask-Log-Request-Id** is an extension for `Flask`_ that can parse and handle
the request-id sent by request processors like `Amazon ELB`_, `Heroku Request-ID`_
or any multi-tier infrastructure as the one used at microservices. A common
usage scenario is to inject the request\_id in the logging system so that all
log records, even those emitted by third party libraries, have attached the
request\_id that initiated their call. This can greatly improve tracing and debugging of problems.


Features
--------

Flask-Log-Request-Id provides the ``current_request_id()`` function which can be used
at any time to get the request id of the initiated execution chain. It also comes with
log filter to inject this information on log events as also an extension to forward
the current request id into Celery's workers.


Example: Parse request id and send it to to logging
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In the following example, we will use the ``RequestIDLogFilter`` to inject
the request id on all log events, and a custom formatter to print this
information. If all these sounds unfamiliar please take a look at `python logging system`_

.. code:: python

    import logging
    import logging.config
    from random import randint
    from flask import Flask
    from flask_log_request_id import RequestID, RequestIDLogFilter

    def generic_add(a, b):
        """Simple function to add two numbers that is not aware of the request id"""
        logging.debug('Called generic_add({}, {})'.format(a, b))
        return a + b

    app = Flask(__name__)
    RequestID(app)

    # Setup logging
    handler = logging.StreamHandler()
    handler.setFormatter(
        logging.Formatter("%(asctime)s - %(name)s - level=%(levelname)s - request_id=%(request_id)s - %(message)s"))
    handler.addFilter(RequestIDLogFilter())  # << Add request id contextual filter
    logging.getLogger().addHandler(handler)


    @app.route('/')
    def index():
        a, b = randint(1, 15), randint(1, 15)
        logging.info('Adding two random numbers {} {}'.format(a, b))
        return str(generic_add(a, b))


Installation
------------
The easiest way to install it is using ``pip`` from PyPI

.. code:: bash

    pip install flask-log-request-id


License
-------

See the `LICENSE`_ file for license rights and limitations (MIT).


.. _Flask: http://flask.pocoo.org/
.. _Amazon ELB: http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-request-tracing.html
.. _Heroku Request-ID: https://devcenter.heroku.com/articles/http-request-id
.. _python logging system: https://docs.python.org/3/library/logging.html
.. _LICENSE: https://github.com/Workable/flask-log-request-id/blob/master/LICENSE.md
.. |CircleCI| image:: https://img.shields.io/circleci/project/github/Workable/flask-log-request-id.svg
   :target: https://circleci.com/gh/Workable/flask-log-request-id