semvec/pypi-packages huggingface dataset:
favicorn 0.0.5
ASGI webserver
License: MIT

# Favicorn
![CI](https://github.com/Voldemat/favicorn/actions/workflows/python-package.yml/badge.svg)
[![PyPI version](https://badge.fury.io/py/favicorn.svg)](https://badge.fury.io/py/favicorn)
[![codecov](https://codecov.io/github/Voldemat/favicorn/branch/main/graph/badge.svg?token=7X60C005I2)](https://codecov.io/github/Voldemat/favicorn)
[![Maintainability](https://api.codeclimate.com/v1/badges/56b798d26921ebc22f08/maintainability)](https://codeclimate.com/github/Voldemat/favicorn/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/56b798d26921ebc22f08/test_coverage)](https://codeclimate.com/github/Voldemat/favicorn/test_coverage)


## Installation
```bash
pip3 install favicorn 
```

## ASGI Usage


```bash
pip3 install httptools
```
main.py
```python
import asyncio
import logging

from favicorn import ASGIFavicornBuilder


logging.basicConfig(
    level=logging.INFO, format="[%(asctime)s][%(levelname)s] %(message)s"
)
async def app(scope, receive, send) -> None:
    await send(
        {
            "type": "http.response.start",
            "status": 200,
            "headers": [(b"Content-Length", b"0")],
        }
    )
    await send({"type": "http.response.body", "body": b"", "more_body": False})
s = ASGIFavicornBuilder(
    app=app,
    http_parser_impl="httptools",
).build()

async def main() -> None:
    await s.init()
    try:
        await s.serve_forever()
    finally:
        await s.close()

asyncio.run(main())
```

```bash
python3 main.py
[2023-07-14 12:37:14,979][INFO] Socket ('127.0.0.1', 8000) acquired successfully using <class 'favicorn.socket_providers.inet.InetSocketProvider'>
[2023-07-14 12:37:14,979][INFO] Serve forever...
```

## ASGI Usage with websockets
```bash
pip3 install httptools wsproto
```
main.py
```python
import asyncio
import logging

from favicorn import ASGIFavicornBuilder


logging.basicConfig(
    level=logging.INFO, format="[%(asctime)s][%(levelname)s] %(message)s"
)

async def app(scope, receive, send) -> None:
    await send({"type": "websocket.accept"})
    msg = await receive()
    await send({"type": "websocket.send", "bytes": b"Something", "text": None})
    await send({"type": "websocket.close", "code": 1000})

s = ASGIFavicornBuilder(
    app=app,
    http_parser_impl="httptools",
    ws_impl='wsproto'
).build()

async def main() -> None:
    await s.init()
    try:
        await s.serve_forever()
    finally:
        await s.close()

asyncio.run(main())
```

```bash
python3 main.py
[2023-07-14 12:37:14,979][INFO] Socket ('127.0.0.1', 8000) acquired successfully using <class 'favicorn.socket_providers.inet.InetSocketProvider'>
[2023-07-14 12:37:14,979][INFO] Serve forever...
```
gispandas 0.1.9
gispandas
License: MIT
Requires Python: >=3.6
Keywords: gis,geo,tif,json,shp

# GisPandas针对栅格数据进行统计的python包
GisPandas是一个为栅格、矢量数据处理、分析以及可视化而开发的Python包。GisPandas为常见栅格矢量数据提供了快速而简洁的gis操作方法，代码简洁、高效、灵活、易用，可以用简洁的代码实现复杂的数据任务。
# 主要功能
目前，GisPandas主要提供以下方法：

1.栅格数据进行阿尔伯斯等面积投影，根据矢量区划计算面积并导出json。

2.种植结构变化，自动对齐，导出栅格数据和统计json。

3.gee下载数据的后处理主要包括：栅格数据镶嵌并压缩。

4.矢量数据写入四至、中心经纬度等属性，矢量简化，文本矢量化等。

5.栅格数据像素对齐、裁剪、重采样、投影、插值、切片、格式转换等。
# 安装
pip install gispandas
# 相关链接
本项目的github页面：https://github.com/mxhou/gispandas

有bug请在这个页面提交：https://github.com/mxhou/gispandas/issues