semvec/pypi-packages huggingface dataset:
proof_frog 0.2.0
A tool for verifying game-hopping proofs
Requires Python: >=3.11

# ProofFrog
ProofFrog is a work-in-progress tool for verifying cryptographic game-hopping proofs. All security properties in ProofFrog are written via pairs of indistinguishable games. More info can be found on our [wiki](https://prooffrog.github.io/)

## Installation:

```
pip3 install -r requirements.txt
pip3 install -r requirements-dev.txt
```

## Commands:

To use the proof engine: `python3 -m proof_frog prove [proof_file]`. The [examples repo](https://github.com/ProofFrog/examples/]) contains a list of examples largely adapated from [The Joy of Cryptography](https://joyofcryptography.com/). See also our [examples page](https://github.com/ProofFrog/examples) on our wiki.

You can also parse any type of file (scheme, proof, game, or primitive) using `python3 -m proof_frog parse [file]`. It will read the file, transform it into an internal AST representation, stringify the representation, and print it back out to the screen.

The bash files `testParsing.sh` ensures that the ANTLR grammar can parse each file in the examples folder. `testAST.sh` parses each file with proof_frog, strips the whitespace, and diffs it with the original file to ensure that the AST output matches the file input. Finally, `testProofs.sh` runs both the suite of examples and the pytest unit tests.

## Jupyter Notebook

We have a custom kernel that allows a user to interact with proof_frog via a Jupyter notebook. To do so, run the following commands from the base directory.

```
docker build -f jupyter/Dockerfile -t proof_frog .
docker run -p 8888:8888 proof_frog
```

The output from the `docker run` command will contain a `localhost:8888` URL containing a token that will allow you to view the jupyter notebook.

# Acknowledgements
<img src="media/NSERC.jpg" alt="NSERC signature" width="750"/> 

We acknowledge the support of the Natural Sciences and Engineering Research Council of Canada (NSERC).

Nous remercions le Conseil de recherches en sciences naturelles et en génie du Canada (CRSNG) de son soutien.
FrameStory 2025.4.231619
A Python package for creating video descriptions by analyzing and extracting significant frames.
Requires Python: >=3.6

[![PyPI version](https://badge.fury.io/py/FrameStory.svg)](https://badge.fury.io/py/FrameStory)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
[![Downloads](https://static.pepy.tech/badge/FrameStory)](https://pepy.tech/project/FrameStory)
[![LinkedIn](https://img.shields.io/badge/LinkedIn-blue)](https://www.linkedin.com/in/eugene-evstafev-716669181/)

# Frame Story

`FrameStory` is a Python package designed for extracting and describing significant frames from videos. Leveraging state-of-the-art machine learning models, it can provide detailed descriptions of video content, making it a powerful tool for content analysis, accessibility, and summarization.

## Installation

To install `FrameStory`, you can use pip:

```bash
pip install FrameStory
```

## Usage

Using `FrameStory` is straightforward. Below are examples demonstrating how to extract and describe significant frames from videos with various parameters.

### Describing Video by URL

```python
from frame_story.video_describer import VideoDescriber

video_url = "https://example.com/video.mp4"
describer = VideoDescriber(show_progress=True)
descriptions = describer.get_video_descriptions(video_url=video_url)
print(descriptions)
```

### Describing Video from Local Path

```python
video_path = "/path/to/your/video.mp4"
describer = VideoDescriber(show_progress=True, max_tokens=50)
descriptions = describer.get_video_descriptions(video_path=video_path)
print(descriptions)
```

### Customizing Extraction Threshold

The `extract_significant_frames` method allows you to customize the threshold for what constitutes a "significant" change between frames.

```python
video_url = "https://example.com/video.mp4"
describer = VideoDescriber(threshold=25000)
descriptions = describer.get_video_descriptions(video_url=video_url)
print(descriptions)
```

These examples demonstrate the versatility of `frame_story` in processing videos from different sources and with various levels of detail in descriptions.

## Features

- Extraction of significant frames from videos for detailed analysis.
- Generation of descriptive text for each significant frame using state-of-the-art image captioning models.
- Support for videos from URLs or local file paths.
- Customizable settings for progress display, description length, and frame extraction threshold.
- Easy to integrate into Python projects for content analysis, summarization, and accessibility applications.

## Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the [issues page](https://github.com/chigwell/frame_story/issues).

## License

This project is licensed under the [MIT License](https://choosealicense.com/licenses/mit/).