semvec/pypi-packages huggingface dataset:
easycharts 0.106
Easily create data visualization of static or streaming data
Requires Python: >=3.7, <4

![](images/logo.png)

##

Easily create data visualization of static or streaming data


## Get Started

```python
pip install easycharts
```

## Create EasyCharts Server

```python
# charts.py
from fastapi import FastAPI
from easycharts import ChartServer

server = FastAPI()

@server.on_event('startup')
async def setup():
    server.charts = await ChartServer.create(
        server,
        charts_db="test"
    )

    await server.charts.create_dataset(
        "test",
        labels=['a', 'b', 'c', 'd'],
        dataset=[1,2,3,4]
    )
```
## Start Server

```bash
uvicorn --host 0.0.0.0 --port 0.0.0.0 charts:server

```

![](images/get-started-test.png)

## Update Data via API

In a separate window, access the OpenAPI docs to demonstrate dynanimc updates to the graph

```
http://0.0.0.0:8220/docs
```

![](images/get-started-update.png) 

## Line
![](images/get-started-test-1.png)


## Bar
![](images/get-started-test-1-bar.png)

## APIS

![](images/get-started-apis.png)

## Real World Usage - Resource Monitoring


```python
import datetime, psutil
import asyncio
from fastapi import FastAPI
from easycharts import ChartServer
from easyschedule import EasyScheduler

scheduler = EasyScheduler()
server = FastAPI()

every_minute = '* * * * *'

@server.on_event('startup')
async def setup():
    asyncio.create_task(scheduler.start())
    server.charts = await ChartServer.create(
        server,
        charts_db="charts_database",
        chart_prefix = '/mycharts'
    )

    await server.charts.create_dataset(
        "test",
        labels=['a', 'b', 'c', 'd'],
        dataset=[1,2,3,4]
    )

    # set initial sync time
    label=datetime.datetime.now().isoformat()[11:19]
    await server.charts.create_dataset(
        'cpu',
        labels=[label],
        dataset=[psutil.cpu_percent()]
    )
    await server.charts.create_dataset(
        'mem',
        labels=[label],
        dataset=[psutil.virtual_memory().percent]
    )

    @scheduler(schedule=every_minute)
    async def resource_monitor():
        time_now=datetime.datetime.now().isoformat()[11:19]

        # updates CPU & MEM datasets with current time
        await server.charts.update_dataset(
            'cpu',
            label=time_now,
            data=psutil.cpu_percent()
        )
        await server.charts.update_dataset(
            'mem',
            label=time_now,
            data=psutil.virtual_memory().percent
        )
```

![](images/resource-mon.png)
SBMate 1.1.3
Annotation quality metrics calculator (coverage, consistency, specificity).

[![Build Status](https://www.travis-ci.com/woosubs/SBMate.svg?token=AZ9nCjqJmNF7xVsjbZBP&branch=main)](https://www.travis-ci.com/woosubs/SBMate) [![Coverage Status](https://coveralls.io/repos/github/woosubs/SBMate/badge.svg?branch=main&service=github)](https://coveralls.io/github/woosubs/SBMate?branch=main)

# SBMate
Systems Biology Model AnnoTation Evaluator

## Overview
``SBMate`` evaluates the quality of annotations in SBML model elements, especially libsbml.Model, libsbml.Species, libsbml.Compartment, and libsbml.Reaction. Currently, it examines annotations from five knowledge resources, CHEBI, GO, KEGG, SBO, and UNIPROT. 
 
SBMate calculates three metrics: 
1. Coverage checks how many model elements of the above four types (model, reaction, species, and compartment) are actually annotated. 
2. Consistency computes how many of such annotated entities has proper annotation. For example, a reaction object should not have a GO cellular component term (GO:0005575 or its children). SBMate identifies such instances and calculates the proprotion of model entities whose annotations are consistent. 
3. Finally, specificity is a measure of how 'precise' such consistent annotations are. This is obtained by utilizing the hierarchical structures of knowledge resource terms, such as the directed acyclic graphs of SBO, GO and CHEBI. 

More detailed discussions can be found in our manuscript (in preparation). 

## Example
It is quite easy to use SBMate as there is just one main method, ``sbmate.AnnotationMetrics.getMetrics``.

<img src="https://github.com/woosubs/SBMate/raw/main/png/run_sbmate.png" width="800"/>

By default, SBMate produces a report summarizing the three scores:

<img src="https://github.com/woosubs/SBMate/raw/main/png/result_report.png" width="800"/>

Another option is to create a pandas DataFrame, as below:

<img src="https://github.com/woosubs/SBMate/raw/main/png/run_sbmate_table.png" width="800"/>

And you will get the dataframe. 

<img src="https://github.com/woosubs/SBMate/raw/main/png/result_table.png" width="800"/>

## Adding Additional Metrics
You can add additional metrics by creating a class that calculates metrics.
Metric values are contained in a ``pandas`` ``DataFrame``.
See ``metric_calculator.py`` to see how to write a class that calculates metrics.
When you construct ``AnnotationMetrics``, you will assign a value to the keyword argument ``metric_calculator_classes``
of the constructor.
mcsrvstat.py 1.0.2.1
A simple Python wrapper for the Minecraft Server Status API.
Keywords: python,minecraft,mcsrvstat

# mcsrvstat.py
A simple Python wrapper for the [Minecraft Server Status API](https://mcsrvstat.us).

![GitHub](https://img.shields.io/github/license/hitblast/mcsrvstat.py?color=blue&style=for-the-badge)
![GitHub Repo stars](https://img.shields.io/github/stars/hitblast/mcsrvstat.py?color=blue&style=for-the-badge)
![GitHub watchers](https://img.shields.io/github/watchers/hitblast/mcsrvstat.py?color=blue&style=for-the-badge)
<br><br>

## Installation
As the library is very lightweight, the installation is also fairly easy with the minimum dependencies required.
```bash
python3 -m pip install -U mcsrvstat.py
```

## Usage Examples
Navigate to the [EXAMPLES.md](https://github.com/hitblast/mcsrvstat.py/blob/master/EXAMPLES.md) file in order to get short examples on using the different aspects of the library.
<br><br>

## License
<blockquote>
MIT License

Copyright (c) 2021 HitBlast

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
</blockquote>