semvec/pypi-packages huggingface dataset:
myvidstream 0.0.13
Streaming video data via networks
Keywords: python,video,stream,video stream,camera stream,sockets

# vidstream

Under construction! Not ready for use yet! Currently experimenting and planning!

Developed by Florian Dedov from NeuralNine (c) 2020

## Examples of How To Use (Buggy Alpha Version)

Creating A Server

```python
from vidstream import StreamingServer

server = StreamingServer('127.0.0.1', 9999)
server.start_server()

# Other Code

# When You Are Done
server.stop_server()
```

Creating A Client
```python
from vidstream import CameraClient
from vidstream import VideoClient
from vidstream import ScreenShareClient

# Choose One
client1 = CameraClient('127.0.0.1', 9999)
client2 = VideoClient('127.0.0.1', 9999, 'video.mp4')
client3 = ScreenShareClient('127.0.0.1', 9999)

client1.start_stream()
client2.start_stream()
client3.start_stream()
```

Check out: https://www.youtube.com/c/NeuralNine
dj-optimizely 0.0.8
Store Optimizely datafile in a Django model
Requires Python: >=3.6

# dj-optimizely

## Introduction

Database-backed storage for your Optimizaly datafile and utilities for using Rollouts in Django. 

Features:
* Database-backed storage for Optimizaly datafile
* Webhook endpoint to recieve datafile updates
  * The webhook payload contains the datafile for the primary environment. If the current environment is not the primary environment, the webhook call will trigger a fetch of your current environment's datafile. Only your current environment's datafile is stored locally at this time.
  * On server start the datafile will be initialized via a pull based on the provided datafile url
* Currently only supports Rollouts. Check if a featuee flag is enabled. 

## Quickstart

Install:

```
pip install dj-optimizely
```

Add `djoptimizely` to `INSTALLED_APPS`:

```
INSTALLED_APPS = [
    ...
    'djoptimizely',
    ...
]
```

Add `djoptimizely.middleware.optimizely_middleware` to `MIDDLEWARE`:

```
MIDDLEWARE = [
    ...
    'djoptimizely.middleware.optimizely_middleware',
    ...
]
```

Specify additional required settings:

```
OPTIMIZELY_ENVIRONMENT = 'staging'
OPTIMIZELY_WEBHOOK_SECRET = os.getenv('OPTIMIZELY_WEBHOOK_SECRET')
OPTIMIZELY_DATAFILE_URL = os.getenv('OPTIMIZELY_DATAFILE_URL')
```

Specify optional callbacks. Both functions take the `request` as the first parameter:

```
OPTIMIZELY_USER_ID_CALLBACK = 'myapp.module.get_user_id'
OPTIMIZELY_USER_ATTRIBS_CALLBACK = 'myapp.module.get_user_attribs'
```

Default callbacks:

```
def get_user_id_default(request):
    if request.user.is_authenticated:
        return request.user.pk
    else:
        return request.session._get_or_create_session_key()

def get_user_attribs_default(request):
    attribs = {
        'is_authenticated': False,
        'is_staff': False
    }
    if request.user.is_authenticated:
        attribs['is_authenticated'] = True
        if request.user.is_staff:
            attribs['is_staff'] = True
        
    return attribs
```

Add the webhook to urls.py:

```
path('webhooks/', include('djoptimizely.urls')),
```

### Check if a feature should be enabled:

```
from djoptimizely.services import get_feature_enabled

if get_feature_enabled(request, 'cool_stuff'):
    print('Cool!')
```

### Check in a template

```
{% load djoptimizely_tags %}

{% feature_enabled 'cool_stuff' as show_cool_stuff %}
{% if show_cool_stuff %}
    <p>COOL Stuff!</p>
{% endif %}
```

### Generic view mixin:

If the specified `feature_key` is `not enabled` for `request.user` return a 404

```
from djoptimizely.mixins import OptimizelyFeatureViewMixin
from django.views.generic.base import TemplateView

class CoolView(OptimizelyFeatureViewMixin, TemplateView):
    feature_key = 'cool_stuff'
    ...
```