semvec/pypi-packages huggingface dataset:
graphlib2 0.4.7
Rust port of the Python stdlib graphlib modules
License: MIT
Requires Python: >=3.7

# graphlib2

![CI](https://github.com/adriangb/graphlib2/actions/workflows/python.yaml/badge.svg)

This is a Rust port of Python's stdlib [graphlib].
It passes all of the standard libraries tests and is a drop in replacement.
This also happens to be Python 3.7 compatible, so it can be used as a backport.
Since usage is exactly the same as the standard libraries, please refer to their documentation for usage details.

See this project on [GitHub](https://github.com/adriangb/graphlib2).

## Example

```python
from graphlib2 import TopologicalSorter

graph = {0: [1], 1: [2]}  # 0 depends on 1, 1 depends on 2
ts = TopologicalSorter(graph)
ts.prepare()
while ts.is_active():
    ready_nodes = ts.get_ready()
    ts.done(*ready_nodes)  # all at a time or one by one
```

## Motivation

This was primarily written for [di] and for me to learn Rust.
In other words: please vet the code yourself before using this.

## Differences with the stdlib implementation

1. Added `TopologicalSorter.copy()` which copies a prepared or unprepared graph so that it can be executed multiple times.
1. Pretty solid performance improvements (see [benchmarks]).
1. Misc improvements, like working generics without postponed evaluation (`ToplologicalSorter[int]` works at runtime).

## Performance

The implementation was designed for the specific use case of adding all nodes, calling `prepare()` then copying and executing in a loop:

```python
from graphlib2 import TopologicalSorter

graph = {0: [1], 1: [2]}
ts = TopologicalSorter(graph)
ts.prepare()
while True:  # hot loop
    t = ts.copy()
    while t.is_active():
        ready_nodes = t.get_ready()
        t.done(*ready_nodes)
```

This means that the focus is on the performance of `TopologicalSorter.get_ready()` and `TopologicalSorter.done()`, and only minimal effort was put into other methods (`prepare()`, `add()` and `get_static_order()`), although these are still quite performant.

## Contributing

1. Clone the repo.
1. Run `make init`
1. Run `make test`
1. Make your changes
1. Push and open a pull request
1. Wait for CI to run.

If your pull request gets approved and merged, it will automatically be relased to PyPi (every commit to `main` is released).

[di]: https://github.com/adriangb/di
[graphlib]: https://docs.python.org/3/library/graphlib.html
[benchmarks]: https://nbviewer.org/github/adriangb/graphlib2/blob/main/bench.ipynb
moonreader-tools 2.0.0
Library allowing to work with MoonReader book formats.
License: MIT
Requires Python: >=3.8,<4.0

[![Build Status](http://mrlokans.com/jenkins/job/moonreader_tools/badge/icon)](http://mrlokans.com/jenkins/job/moonreader_tools/)

Description - what, why and how
===========
This library allows you to get basic data from Moon+Reader notes and statistics files either local or remote (Dropbox support is currently available).


[Moon+Reader](https://play.google.com/store/apps/details?id=com.flyersoft.moonreader) is one of the best ebook readers I've tried for Android OS with lots of functionality.
The features I use a lot are creating notes when reading books and having them syncronized with my dropbox account. One day I thought that it would be great to write a library for parsing those files and obtaining data from them, as a result this library is being developed. 

Installation from source
========================
This requires [poetry](https://python-poetry.org/) for the installation
```bash
git clone https://github.com/MrLokans/MoonReader_tools
cd MoonReader_tools
poetry build && poetry install
```

Installation from PyPI
======================
```bash
pip install moonreader_tools
```

Usage as CLI utility
====================
It is assumed that you're the MoonReader+ Pro user and have Dropbox linked to your reader app.
If you're reading and creating highlights you'll be having lots of files in the syncronized folder (e.g. Dropbox/Books/.Moon+/Cache)

To get JSON data about all of your books you may use CLI entry to get data from dropbox or local folder:

```bash
moon_tools --path <path/to/moonreader/cache> --output-file <outfile>.json

moon_tools --dropbox-token <DROPBOX TOKEN> --output-file <outfile>.json
```

Usage as library
================

```python
import dropbox
from moonreader_tools.finders import FilesystemFinder, DropboxFinder

# We may look for books in FS directories
extractor = FilesystemFinder(path="/dir/with/moonreader/files")
books = extractor.get_books()
for book in books:
    print(book.title)
    for note in book.notes:
        print(note.text)

# And in the dropbox

client = dropbox.Dropbox(access_token='MYSECRETTOKEN')
extractor = DropboxFinder(client, books_path='moonreader_save_dir')

books = extractor.get_books()
for book in books:
    print(book.title)
    for note in book.notes:
        print(note.text)
```

Running tests
=============
```
make test
```

Formatting codebase
==============
```
make format
```
regru-cloudapi 1.2.13
Reg.ru CloudAPI Python library
License: MIT
Requires Python: >=3.6

# <p align="center"> REG.RU CloudAPI

![PyPI](https://img.shields.io/pypi/v/regru_cloudapi?style=plastic)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/regru_cloudapi)
![GitHub](https://img.shields.io/github/license/plvskiy/regru_cloudapi)
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org)


<p align="center"> Неофициальная библиотека для работы с API услуги <a href="https://reg.ru">Reg.ru</a> Облачные VPS.
<p align="center">Документация по API Reg.ru Облачные VPS - <a href="https://developers.cloudvps.reg.ru">developers.cloudvps.reg.ru</a>
    
* [Приступая к работе](#getting_started)
    * [Установка при помощи PyPi](#pypi)
    * [Установка вручную](#manually)
    * [Зависимости](#dependencies)
* [Быстрый старт](#quick_start)
* [Документация](DOCUMENTATION.md)
* [Лицензия](LICENSE)


## Приступая к работе <a name="getting_started"></a>

### Установка при помощи PyPi: <a name="pypi"></a>

```shell
pip3 install regru_cloudapi
```

### Установка вручную: <a name="manually"></a>

```shell
git clone https://github.com/plvskiy/regru_cloudapi.git
cd regru_cloudapi
python setup.py install
```

### Зависимости: <a name="dependencies"></a>

```
setuptools
requests
```

## Быстрый старт <a name="quick_start"></a>

Сперва импортируем модуль 

```python
from regru_cloudapi import CloudAPI
```

Далее авторизуемся:

```python
api = CloudAPI('token')
```

> Токен можно получить в Личном Кабинете -> Услуга Облачные сервера -> 
Настройки -> Токен для API
> 
> Подробно - https://developers.cloudvps.reg.ru/getting-started/authentication.html.

Следующим шагом используем нужные нам функции. Например, запросим список тарифов:

```python
api.get_tariffs()
```

На выходе мы получим список тарифов в JSON. Пример:

```json
{
  "prices": [
    {
      "plan": "cloud-1-1018",
      "price": "0.32",
      "price_month": 215,
      "type": "reglet",
      "unit": "hour"
    }
  ]
}
```

Полный код:

```python
from regru_cloudapi import CloudAPI

api = CloudAPI('token')

api.get_tariffs()
```

## Документация - [DOCUMENTATION.md](DOCUMENTATION.md)

## Лицензия - [LICENSE](LICENSE)