semvec/pypi-packages huggingface dataset:
pyphy2D 1
A 2D Rigid Body Physics Engine.
Requires Python: >=3.6

# PyPhy2D

## Description
PyPhy2D is a 2D Rigid Body Physics Engine designed to simulate physical interactions of objects in a two-dimensional space. It is easy to integrate and can be used for games, simulations, and educational purposes.

## License
This project is licensed under the MIT License.

## Installation
Before installing PyPhy2D, ensure you have pygame or pygame-ce installed:

```sh
pip install pygame

```
or
```sh
pip install pygame-ce

```

## Example Project
```python
from pyphy import World, Body, Vector2
import pygame
import sys

WIDTH, HEIGHT = 900, 900
WINDOW = pygame.display.set_mode((WIDTH, HEIGHT))

space = World(window=WINDOW, gravity=(0, 9.8))

clock = pygame.time.Clock()
FPS = 60

testBody = Body.CreateCircleBody(radius=25, center=Vector2(100, 100), density=1.2, restitution=0.8, static=False)
space.AddBody(testBody)

while True:
    dt = clock.tick(FPS) / 1000

    space.step(dt)

    WINDOW.fill((0, 0, 0))
    space.Render()

    pygame.display.update()

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
```
tkjsonpath 1.0.0
A simple JSONPath parser.
Requires Python: >=3.6

![GitHub top language](https://img.shields.io/github/languages/top/thiliapr/tkjsonpath)
![GitHub License](https://img.shields.io/badge/license-GPL--3.0--or--later-blue)
![GitHub repo size](https://img.shields.io/github/repo-size/thiliapr/tkjsonpath)
![GitHub forks](https://img.shields.io/github/forks/thiliapr/tkjsonpath)
![GitHub Repo stars](https://img.shields.io/github/stars/thiliapr/tkjsonpath)

# TkJSONPath
This is a simple JSONPath parser.
- Version: 1.0
- License: Distributed under GPL-3.0 or later.

## Languages
- [Simplified Chinese](README.zh-CN.md)
- [English](README.md)

## Usage
- Below are examples demonstrating the usage of four basic functions:
  ```python
  import tkjsonpath
  
  src = {"docs": [{"how": "how?", "id": 1}, {"how": "emm", "id": 2}]}
  
  path_a = "$.docs"
  path_b = "$[0].how"
  
  # path_ab -> "$.docs[0].how"
  path_ab = tkjsonpath.concat_path(path_a, path_b)
  
  # how_1 -> "how?"
  how_1 = tkjsonpath.get(src, path_ab)
  
  # dst -> src
  dst = src.copy()
  # dst["docs"][1]["id"] -> 4
  tkjsonpath.assign(dst, "$.docs[1].id", 4)
  ```
  1. `src` is assigned a dictionary.
  2. Concatenate `path_a` and `path_b`, assigning the result to `path_ab`.
  3. Retrieve the value at the `path_ab` location in `src`, assigning it to `how_1`.
  4. Create a copy of `src` and assign it to `dst`.
  5. Assign the value `4` to the path `$.docs[1].id` in `dst`.

For complete function usage, please refer to the [documentation](docs/index.md).
tkjsonpath-thiliapr 1.0.0
A simple JSONPath parser.
Requires Python: >=3.6

![GitHub top language](https://img.shields.io/github/languages/top/thiliapr/tkjsonpath)
![GitHub License](https://img.shields.io/badge/license-GPL--3.0--or--later-blue)
![GitHub repo size](https://img.shields.io/github/repo-size/thiliapr/tkjsonpath)
![GitHub forks](https://img.shields.io/github/forks/thiliapr/tkjsonpath)
![GitHub Repo stars](https://img.shields.io/github/stars/thiliapr/tkjsonpath)

# TkJSONPath
This is a simple JSONPath parser.
- Version: 1.0
- License: Distributed under GPL-3.0 or later.

## Languages
- [Simplified Chinese](README.zh-CN.md)
- [English](README.md)

## Usage
- Below are examples demonstrating the usage of four basic functions:
  ```python
  import tkjsonpath
  
  src = {"docs": [{"how": "how?", "id": 1}, {"how": "emm", "id": 2}]}
  
  path_a = "$.docs"
  path_b = "$[0].how"
  
  # path_ab -> "$.docs[0].how"
  path_ab = tkjsonpath.concat_path(path_a, path_b)
  
  # how_1 -> "how?"
  how_1 = tkjsonpath.get(src, path_ab)
  
  # dst -> src
  dst = src.copy()
  # dst["docs"][1]["id"] -> 4
  tkjsonpath.assign(dst, "$.docs[1].id", 4)
  ```
  1. `src` is assigned a dictionary.
  2. Concatenate `path_a` and `path_b`, assigning the result to `path_ab`.
  3. Retrieve the value at the `path_ab` location in `src`, assigning it to `how_1`.
  4. Create a copy of `src` and assign it to `dst`.
  5. Assign the value `4` to the path `$.docs[1].id` in `dst`.

For complete function usage, please refer to the [documentation](docs/index.md).
kv-rest 0.1.11
Rest API and client for a server-side KV
Requires Python: >=3.10

# Key-Value: REST

> Implementation of the `KV[T]` async Key-Value ABC, over HTTP

([`kv-api`]((https://pypi.org/project/kv-api/)))

```bash
pip install kv-rest
```

## Client

```python
from kv.rest import ClientKV

client = ClientKV('http://localhost:8000', Type=tuple[str, int])
await client.insert('hello', ('world', 42))
await client.keys()
# etc.
```

## Server
```python
import uvicorn
from kv.api import KV
from kv.rest import fastapi

kv = KV[tuple[str, int]] = ...
api = fastapi(kv)

uvicorn.run(api)
```

### Server CLI

```bash
kv-rest path/to/kv.sqlite --host 0.0.0.0 --port 8000 --protocol sqlite
kv-rest path/to/kv --host 0.0.0.0 --port 8000 --protocol fs
```