semvec/pypi-packages huggingface dataset:
observer-pattern 1.0.0
Simple Observer Pattern implementation
Requires Python: >=3.7

# observer-pattern
Simple Observer Pattern Implementation

```python
from observer_pattern import Observable

counter = 0

def plus_n(n):
    global counter
    counter += n

def plus_2n(n):
    global counter
    counter += 2*n

def plus_3n(n):
    global counter
    counter += 3*n

observable = Observable()
observable.subscribe(plus_n)
observable.subscribe(plus_2n)
observable.subscribe(plus_3n)
observable.notify(2)
observable.unsubscribe(plus_3n)
observable.notify(5)

print(counter) # 27
print(len(observable)) # 2
```

You can pass any number of `args` and `kwargs`

```python
def print_product(a, b):
    print(a * b)

observable = Observable()
observable.subscribe(print_product)
observable.notify(3, b=5) # 15
print(print_product in observable) # True
```
patchwork-websoccer 0.2.0
Websockets integration for Patchwork - The distributed asynchronous microframework

# Patchwork websoccer

Websockets integration for Patchwork - an asynchronous distributed microservices framework.

## Requirements
* Python 3.7

## Installation

``pip install pachwork-websoccer``

## Documentation

https://patchwork-framework.gitlab.io/core
pyowler 1.0.0
Cool package.

ï»¿# sss
>An API Management tool written in Python.

[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/)
![PyPI](https://img.shields.io/badge/pypi-v1.0.0-blue)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/requests.svg)
![PyPI - Wheel](https://img.shields.io/pypi/wheel/pywol.svg)
![CircleCI branch](https://img.shields.io/circleci/project/github/erberlin/pywol/master.svg)

pystob allows for API Authorization Management and allows to build REST-Based API with custom JSON syntax.
pystob can be used as a plugin for many API Repository such as [FRPC](https://github.com/seznam/fastrpc) and many others.

## Installation

```console
$ pip install pystob
```

## Usage examples
As an API Management Tool :
```console
$ pywool -u api.redacted.com -t "FRPC_BASED" -l -vv
Retrieve list from [api.redacted.com] | AUTHORIZATION: None | BASED: FRPC_TECH
$
$ pywool -u api.redacted.com -t "REST_BASED" -d "JSON" -auth <AUTH_EXAMPLE> -l -vv
Retrieve list from [api.redacted.com] | AUTHORIZATION: <AUTH_EXAMPLE> | BASED: REST_API
$
$ pywool --help
Usage: pywool -u API_URL [OPTIONS]

  API Management for the Pywool package.

  Please don't type any hypertext protocol such as "https://" or "http://" because they can 
  corrupt the results. The standard URL_TYPE is <SUBDOMAIN>.<BASE>.<DOMAIN>:<PORT>

Options:
  -u, --url URL  Please respect the standards described above
  -p, --port PORT      Target port.
  -vv, --verbose
  -t, --technology OPTIONS
  -l, --list
  -b, --build URL Please check documentation to build your own API with Pywool Tool
  -d, --data OPTIONS
  --help                   Show this message and exit.
```
## Why create API Builder and Manager ?
I needed one and this was an opportunity to learn some stuff.

## Meta

 Kevin Jonsson- jonsson.dev@gmail.com

Distributed under the MIT license. See ``LICENSE`` for more information.
event-web-scout 0.0.1a24
Extendable package for collecting events from the web and adding them to Google calendars

# event-web-scout

![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/geeeezmo/event-web-scout/ci.yml?label=Build)

![GitHub Latest Pre-Release)](https://img.shields.io/github/v/release/geeeezmo/event-web-scout?include_prereleases&label=pre-release&logo=github)  
![GitHub Latest Release)](https://img.shields.io/github/v/release/geeeezmo/event-web-scout?logo=github)
![GitHub Release Date - Published_At](https://img.shields.io/github/release-date/geeeezmo/event-web-scout)

![PyPI - Version](https://img.shields.io/pypi/v/event-web-scout?label=PyPI%20version)

Configuration is a JSON with 3 elements:
- `plugin_entry_points` - list of entry points that will be scanned for plugins
- `plugin_defaults` - default plugin config (overriden by config defined explicitly for each individual plugin); default value is an empty object
- `plugins`- array of configurations for individual plugins; each configuration has 3 properties:
  - `name` - name of the plugin (name of the plugin package)
  - `priority` - priority of plugin execution (lower number = higher priority); plugins with the same priority value will be executed in alphabetical order
  - `enabled` - whether the plugin is enabled
  - `config` - individual plugin configuration; will be passed to the plugin constructor as the first argument


```json
{
  "plugin_entry_points": [
    "example_plugins"
  ],
  "plugin_defaults": {
    "priority": 10,
    "enabled": false,
    "config": {
      "google_service_account_token_file": "google_service_account_token.json",
      "google_calendar_id": "<google_calendar_id>"
    }
  },
  "plugins": [
    {
      "name": "example_plugin",
      "priority": 3,
      "enabled": true,
      "config": {
        "example_prop_1": "example_value_1"
      }
    },
    {
      "name": "cool_plugin_1",
      "config": {
        "google_calendar_id": "cool_calendar_id"
      }
    }
  ]
}
```

JSON schema generation was done using these tools:
- [Transform](https://transform.tools/json-to-json-schema)
- [Code Beautify](https://codebeautify.org/json-to-json-schema-generator)