semvec/pypi-packages huggingface dataset:
pywars 0.1.1
Public topic consumer for Chat Wars API
License: MIT
Requires Python: >=3.6,<4.0

# PyWars

> A public topic consumer for Chat Wars ... **with steroids**


## 🚀 Motivations

- 🤖 Build a bot? 
- 👥 Help comunity? 
- 🚀 Personal training?


## ☄ Quick start

```python
from PyWars import *

app = Client()

@app.agent(Deal)
async def deals(stream:Stream[Deal]):
    async for deal in stream:
        print(deal)

app.run()
```
## 📚 Overview

### Dummy client creation

```python
from PyWars import Client
app = Client()
```
>This will create a client with an autogenerated id for chat wars **v2** api

----------


### Specifiying client version

```python
from PyWars import Client
app = Client(version=Client.Version.CW3)
```
>This will create a client for chat wars **v3** api

----------

### Adding agents

```python
from PyWars import *
app = Client()

@app.agent(Deal)
async def deals(stream:Stream[Deal]):
    async for deal in stream:
        print(deal)

app.run()
```
The **Client.agent** method recieves an allowed record. The allowed records are:

- **Deal** for *cw\*-deals* topic
- **Duel** for *cw\*-duels* topic
- **Offer** for *cw\*-offers* topic
- **SexDigest** for *cw\*-sex_digest* topic
- **YellowPage** for *cw\*-yellow_pages* topic
- **AuctionDigest** for *cw\*-au_digest* topic

----------

### Adding timers

```python
from PyWars import *
app = Client()
procesed_deals = 0

@app.agent(Deal)
async def deals(stream:Stream[Deal]):
    async for deal in stream:
        procesed_deals += 1

@app.timer(60)
async def print_procesed():
    print(procesed_deals)
    procesed_deals = 0

app.run()
```
A timer is a courutine that is triggered every *n* seconds in the previous examples we used *60 seconds*.

----------

### Using executions loops

```python
from PyWars import *
import asyncio

app = Client(loop=asyncio.get_event_loop())

@app.agent(Deal)
async def deals(stream:Stream[Deal]):
    async for deal in stream:
        print(deal)
try:
    app.start()
finally:
    app.stop()
```

The magical start and stop methods were thought to run and stop client with his execution loop smootly

----------

### Bulking

```python
from PyWars import *

app = Client()

@app.agent(Deal)
async def deals(stream:Stream[Deal]):
    async for bulk in stream.take(100, 10):
        print(bulk)

app.run()
```
A bulk is just the use of **Stream.take** method from **faust**. It will try to take bulks of 100 objetcs, in case that it can´t return the 100 objects its going to wait for 10 seconds and return any amount gathered in that time.

----------

For extended documentation see for the [docs](https://Gaspect.github.io/PyWars/) page.
py3status-jenkins-status 0.0.11
py3status module to display the current jenkins job status
License: MIT
Keywords: py3status,jenkins

[![Documentation Status](https://readthedocs.org/projects/py3status-jenkins/badge/?version=latest)](https://py3status-jenkins.readthedocs.io/en/latest/?badge=latest)
[![coverage report](https://gitlab.com/schmidtandreas/py3status-jenkins/badges/master/coverage.svg)](https://gitlab.com/schmidtandreas/py3status-jenkins/-/commits/master)
[![pipeline status](https://gitlab.com/schmidtandreas/py3status-jenkins/badges/master/pipeline.svg)](https://gitlab.com/schmidtandreas/py3status-jenkins/-/commits/master)

# py3status-jenkins-status

A [py3status](https://github.com/ultrabug/py3status) module displays the current status of jenkins jobs.