semvec/pypi-packages huggingface dataset:
FastMSA 0.3.3
FastMSA - full-stack framework for microservice architecture applications
License: MIT
Keywords: fastmsa,microserviceframework,sqlalchemy,fastapi

# FastMSA

[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/fastmsa)]()
[![Build Status](https://travis-ci.com/2021-msa-study/fastmsa.svg?branch=main)](https://travis-ci.com/2021-msa-study/fastmsa)
[![codecov](https://codecov.io/gh/2021-msa-study/fastmsa/branch/main/graph/badge.svg?token=IKCYRJZRKE)](https://codecov.io/gh/2021-msa-study/fastmsa)

Fast Microservices Architecture Framework.

## Installation

```
$ pip install fastmsa
```

## Basic Usages

```
$ mkdir testapp && cd testapp
$ msa init
$ msa run
```

## Framework Architecture

![Framework Architecture Overview](https://raw.githubusercontent.com/2021-msa-study/fastmsa/main/docs/diagrams/out/abstract/overview.svg)
tsorted 0.1.0
TSorted lets you sort your data topologically, such as for dependency resolution or task management.
License: MIT
Requires Python: ~= 3.6

# TSorted

![Test status](https://github.com/bartfeenstra/tsorted/workflows/Test/badge.svg) [![Code coverage](https://codecov.io/gh/bartfeenstra/tsorted/branch/master/graph/badge.svg)](https://codecov.io/gh/bartfeenstra/tsorted) [![PyPI releases](https://badge.fury.io/py/tsorted.svg)](https://pypi.org/project/tsorted/) [![Supported Python versions](https://img.shields.io/pypi/pyversions/tsorted.svg?logo=python&logoColor=FBE072)](https://pypi.org/project/tsorted/) [![Recent downloads](https://img.shields.io/pypi/dm/tsorted.svg)](https://pypi.org/project/tsorted/) 

**TSorted** lets you sort your data topologically, such as for dependency resolution or task management.

## Usage

Before sorting your data, transform it into a *Directed Acyclic Graph* (*DAG*). Graph dictionary keys are the (hashable)
starting vertices, and their values are sets of destination vertices, defining unidirectional edges.

A standard topological sort:
```python
from tsorted import tsorted
graph = {
    1: {2, 3},
    2: {4},
    4: {3},
}
tsorted(graph)
# >>> OrderedSet([1, 2, 4, 3])
```

A grouped topological sort:
```python
from tsorted import tsorted_grouped
graph = {
    1: {2, 3},
    2: {4},
    3: {4},
}
tsorted_grouped(graph)
# >>> OrderedSet([frozenset({1}), frozenset({2, 3}), frozenset({4})])
```

## Development
First, [fork and clone](https://guides.github.com/activities/forking/) the repository, and navigate to its root directory.

### Requirements
- Bash (you're all good if `which bash` outputs a path in your terminal)

### Installation
If you have [tox](https://pypi.org/project/tox/) installed on your machine, `tox --develop` will create the necessary
virtual environments and install all development dependencies. 

Alternatively, in any existing Python environment, run `./bin/build-dev`.

### Testing
In any existing Python environment, run `./bin/test`.

### Fixing problems automatically
In any existing Python environment, run `./bin/fix`.

## Contributions 🥳
TSorted is Free and Open Source Software. As such you are welcome to
[report bugs](https://github.com/bartfeenstra/tsorted/issues) or
[submit improvements](https://github.com/bartfeenstra/tsorted/pulls).

## Copyright & license
TSorted is copyright [Bart Feenstra](https://twitter.com/BartFeenstra/) and contributors, and released under the
[MIT License](./LICENSE.txt). In short, that means **you are free to use TSorted**, but **if you
distribute TSorted yourself, you must do so under the exact same license** and provide that license.
scape-academy 0.0.1
A framework and an utility helps you to develop web scraping applications.
License: MIT
Requires Python: >=3.9

# Scrape Academy

Scrape Academy provides a framework and an utility helps you to develop web scraping applications.

## Simple web page  scraping

Scrape Academy helps you to download web pages to scrape.

```python
# Download a page from https://www.python.jp

from bs4 import BeautifulSoup
from scrapeacademy import context, run

async def run_simple():
    page = await context.get("https://www.python.jp")
    soup = BeautifulSoup(page, features="html.parser")
    print(soup.title.text)

run(run_simple())
```

`scrapeacademy.run()` starts [asyncio](https://docs.python.org/3/library/asyncio.html) event loop and run a scraping function.

In the async function, you can use `context.get()` method to download the page. The `context.get()` throttle the requests to the server. By default, `context.get()` waits 0.1 seconds between requests.

## Cache downloaded files

While developping the scraper, you usually need to investigate the HTML over and over. To help investigations, you can save the downloaded files to the cache directory.

The `context.get()` method saves downloaded file to the cache directory if `name` parameter is supplied.

```python
# Save https://www.python.jp

from scrapeacademy import context, run

async def save_index():
    page = await context.get("https://www.python.jp", name="python_jp_index")

run(run_simple())
```

Later, you can load the saved HTML from the cache to scrape using another script.

```python
# Parse saved HTML file.

from scrapeacademy import context

html = context.load("python_jp_index")
soup = BeautifulSoup(page, features="html.parser")
print(soup.title.text)
```

## Command line utility

Scrape Academy provides the `scrapeacademy` command to make development easier.

You can inspect the cached files with web browser.

```sh
$ scrapeacademy open python_jp_index
```

Or, you can view the file with vi editor as follow.

```sh
$ vi `scrapeacademy path python_jp_index`
```