semvec/pypi-packages huggingface dataset:
py4html 0.0.4
Use Python for front end web development
Requires Python: >=3

# py4html
<b>py4html short for Python for HTML</b> is a simple Python library that makes it possible to develop websites entirely using python by writing HTML code in python or in other words you write your webpage
appearance in Python and the library generates the equivalent HTML code for you.

Write HTML in Python. No need to type a single word of HTML. Use Python to create web pages. Do web development only using Python. This is an ongoing project and will be updated frequently
storyteller-ai 0.0.1
A storyteller project - where your imagination meets state-of-the-art AI creativity.
Keywords: storyteller, ai, storyteller-ai

===========
Storyteller
===========
.. image:: storyteller.jpg
   :width: 100%
   :alt: Storyteller - where your imagination meets state-of-the-art AI creativity
   :align: center

A storyteller project - where your imagination meets state-of-the-art AI creativity.

Concept
=======

Simply share a brief message outlining the story you envision, upload photos of characters (or even multiple images to bring diverse personas to life), and select key settings that shape tone, setting, and style. The system converts these inputs into an engaging narrative using OpenAI's LLMs while DALL-E3 generates amazing visuals - all compiled into a polished PDF that tells your own unique personalised fairytale.

Background
==========
When my first son (now 20) was little, around age of 3 and beyond, he enjoyed listening to the stories I made up for him. These stories were about his favourite things, places he wanted to go, with him being the lead character.

I told many stories over the years. Whether we were riding bikes, waiting for a bus, relaxing at home, or even as a bedtime story alternative, these moments became very special to both of us.

I love to read and I love art.

Around that time, about 15 years ago, I was considering turning my experience into a small side hobby/business where parents would request a personalised stories for their children that I would work on from both visual and narrative perspective and produce a printed book - a special gift to their beloved child, almost exactly as I described in the Concept section. However, as time went on and other responsibilities took over, I set the idea aside.

When LLM breakout happened, the first thing that came into my mind was that I actually can revisit my concept and bring it to life.

Quick start
===========
Create venv and install requirements
------------------------------------
.. code-block:: sh

    make create-venv
    make install

Run the marimo app
------------------
.. code-block:: sh

    make run

Open
----

Go to `localhost:8000/storyteller/ <http://localhost:8000/storyteller/>`_


Presentation
============
See the `presentation.rst`.

Build
-----
.. code-block:: sh

    make revealjs

Serve
-----
.. code-block:: sh

    make serve-docs

Open
----

Go to `localhost:5001/revealjs/ <http://localhost:5001/revealjs/>`_
robotframework-platynui-inspector 0.2.0.dev1
Inspector for Robot Framework PlatynUI
Requires Python: >=3.10

# Robot Framework PlatynUI – Inspector

A simple GUI inspector for PlatynUI. It shows the UI (accessibility) tree and attributes/patterns of the selected node and can briefly highlight the selected element’s bounds.

> [!WARNING]
> Preview release on PyPI. This package is experimental; the UI and behavior may change. Intended for evaluation, not production.

## Install

Install the pre‑release package from PyPI. After installation, the `platynui-inspector` command is available on your PATH.

```pwsh
# In a virtual environment (uv)
uv pip install --pre robotframework-platynui-inspector

# Or with pip
pip install --pre robotframework-platynui-inspector

# Or install as a user-level tool (uv tool)
uv tool install --prerelease allow robotframework-platynui-inspector
```

Supported platforms: Windows, macOS, and Linux. The bundled binary links platform providers for your OS. Note: As a pre‑release, some installers require an explicit flag (e.g., `--pre`).

## Usage

```pwsh
platynui-inspector
```

- Left: Tree view (lazy-loaded). Expand/collapse nodes; the desktop is the root.
- Right: Attribute table (namespace, name, value, type) for the selected node.
- On selection, if available, the node’s `control:Bounds` is highlighted for ~1.5s.

Tips:
- Keyboard: Up/Down selects previous/next. Left collapses or jumps to the parent. Right expands or jumps to the first child. Home/End go to first/last; PageUp/PageDown scroll by a page.
- Context menu: Right‑click a row to Refresh or Refresh subtree.
- Value types are shown in the third column (Bool, Integer, Number, String, Point, Size, Rect, Array, Object).

## Troubleshooting

- macOS: Grant Accessibility permissions to your terminal/IDE.
- Linux (X11): Ensure accessibility is enabled and AT‑SPI is running.
- Windows: UIA is typically available. If nothing appears, try running with elevated privileges.
- Highlight not visible: Some elements don’t expose `Bounds` or expose empty rectangles.

## License

Apache‑2.0. See the repository’s LICENSE file.
custom-tail-cli 0.1.0
A custom tail command line tool using Python and Click.
Requires Python: >=3.6

### 📜 Для проєкту `custom-tail` (`README.md`)

```markdown
# Custom Tail CLI (`ctail`)

[![PyPI version](https://badge.fury.io/py/custom-tail-cli.svg)](https://badge.fury.io/py/custom-tail-cli)
[![Build Status](https://github.com/bohdanfariyon/custom-tail/actions/workflows/publish.yml/badge.svg)](https://github.com/bohdanfariyon/custom-tail/actions)

A simple command-line utility written in Python to display the last few lines of a file, mimicking the basic functionality of the GNU `tail` command. This tool is built using the `click` library.

---

## 🚀 Features

* **Show Last Lines**: Display the last N lines of a file (10 by default).
* **Follow Mode**: Watch a file for changes and output new lines as they are added (`-f` option).
* **Custom Line Count**: Specify the exact number of lines to display.
* **Dockerized**: Comes with a `Dockerfile` for easy containerization.

---

## 📦 Installation

You can install the package directly from PyPI:

```bash
pip install custom-tail-cli
````

-----

## 🛠️ Usage

The main command is `ctail`. You must provide a file path.

### **Basic Usage**

Show the last 10 lines of `logfile.log`.

```bash
ctail logfile.log
```

### **Command Options**

  * **`-n, --lines <number>`**: Specify the number of lines to show.

    ```bash
    # Show the last 5 lines
    ctail -n 5 logfile.log
    ```

  * **`-f, --follow`**: "Follow" mode. The command will wait and display new lines as they are written to the file. This is useful for monitoring log files in real-time.

    ```bash
    ctail -f /var/log/syslog
    ```

    *(Press `Ctrl+C` to exit follow mode.)*

-----

## 🐳 Docker Usage

You can also build and run this tool as a Docker container.

1.  **Build the image:**

    ```bash
    docker build -t ctail-app .
    ```

2.  **Run the container:**

    To see the help message:

    ```bash
    docker run --rm ctail-app --help
    ```

    To view the tail of a file from your current directory, you need to mount it as a volume:

    ```bash
    # This command mounts the current directory to /data inside the container
    # and tells ctail to read the file /data/logfile.log
    docker run --rm -v "$(pwd)":/data ctail-app /data/logfile.log
    ```

    To use follow mode on a local file:

    ```bash
    docker run --rm -v "$(pwd)":/data ctail-app -f /data/logfile.log
    ```

-----
custom-sort-cli 0.1.0
A custom sort command line tool using Python and Click.
Requires Python: >=3.6

### 📜 Для проєкту `custom-sort` (`README.md`)

````markdown
# Custom Sort CLI (`csort`)

[![PyPI version](https://badge.fury.io/py/custom-sort-cli.svg)](https://badge.fury.io/py/custom-sort-cli)
[![Build Status](https://github.com/bohdanfariyon/custom-sort/actions/workflows/publish.yml/badge.svg)](https://github.com/bohdanfariyon/custom-sort/actions)

A simple, lightweight command-line utility written in Python to sort lines of text files, mimicking the basic functionality of the GNU `sort` command. This tool is built using the `click` library.

---

## 🚀 Features

* **Standard Input/Output**: Works with files or standard I/O streams (`stdin`/`stdout`).
* **Reverse Sort**: Sort lines in descending order.
* **Numeric Sort**: Sort based on the numerical value of lines.
* **Unique Lines**: Output only unique lines from the input.
* **File Output**: Write the sorted result directly to a specified file.
* **Dockerized**: Comes with a `Dockerfile` for easy containerization.

---

## 📦 Installation

You can install the package directly from PyPI:

```bash
pip install custom-sort-cli
````

-----

## 🛠️ Usage

The main command is `csort`. You can pass it a file path or pipe data into it.

### **Basic Sorting**

Sort lines in `myfile.txt` and print to the console.

```bash
csort myfile.txt
```

### **Sorting from Standard Input**

```bash
cat myfile.txt | csort
```

### **Command Options**

  * **`-r, --reverse`**: Sort in reverse (descending) order.

    ```bash
    csort -r myfile.txt
    ```

  * **`-n, --numeric`**: Perform a numeric sort. Useful for files containing numbers.

    ```bash
    # For a file `numbers.txt` with:
    # 10
    # 2
    # 1
    # 50
    csort -n numbers.txt
    # Output:
    # 1
    # 2
    # 10
    # 50
    ```

  * **`-u, --unique`**: Filter out duplicate lines.

    ```bash
    csort -u duplicates.txt
    ```

  * **`-o, --output <filename>`**: Write the output to a file instead of the console.

    ```bash
    csort myfile.txt -o sorted_file.txt
    ```

-----

## 🐳 Docker Usage

You can also build and run this tool as a Docker container.

1.  **Build the image:**

    ```bash
    docker build -t csort-app .
    ```

2.  **Run the container:**

    To see the help message:

    ```bash
    docker run --rm csort-app --help
    ```

    To sort a file from your current directory, you need to mount it as a volume:

    ```bash
    # This command mounts the current directory to /data inside the container
    # and tells csort to read the file /data/myfile.txt
    docker run --rm -v "$(pwd)":/data csort-app /data/myfile.txt
    ```

```
ray-log-notebook 0.0.1
Capture and redir ray logs in Jupyter Notebook.
Requires Python: >=3.12
Keywords: ray, log, IPython, jupyter, notebook

# Ray Log Notebook

This is a tiny **FIX** for Ray to display logs under the **last executed cell** instead of **ray.init()** cell.

Q: Why would this happen?\
A: Ipykernel captures thread output and redir to the cell where thread is created.
This is desired in some scenarios, but definitely not for Ray, whose logging thread
is created upon `ray.init()` initialization.

Q: How can you fix this?\
A: Utilizing IPython Events and mock Ray's internal log event handler.
**This may be unstable because we depend on Ray's non-public API.**
In normal mode, Ray would log by emitting logs to `global_worker_stdstream_dispatcher`,
replacing the original handler with ours just works.
For client mode, things get trickier. `client_worker`'s LogStreamClient `log_client`
would receive remote log stream by gRPC and print to stdout/stderr.
We directly **mock replace** the `stdstream` method of that LogStreamClient instance.
There may be more robust and non-intrusive ways to do it,
for example capturing the `ray.init()`
cell output.

Q: How can I use this?
A: As simple as:

```python
% cell 1
import ray
ray.init()

% cell 2
import ray_log_notebook
ray_log_notebook.enable()

% cell 3
@ray.remote
def test_print():
    print("Woola!")

await test_print.remote()
```

![before](./assets/before-ray.png)
![after](./assets/after-ray.png)

Logs will always go to the last executed cell, instead of where the Ray Tasks are created.

Tested on Python 3.13 and Ray 2.50.0, generally should work but I don't have much time to test.
jack-social-checker 0.1.0
A Python tool for checking if an email is linked to Snapchat, Twitter, or Instagram accounts.
Requires Python: >=3.6

# JackSocialChecker

أداة بايثون للتحقق مما إذا كان البريد الإلكتروني مرتبطًا بحسابات Snapchat أو Twitter أو Instagram.
`

```bash
pip install jack_social_checker
```

## الاستخدام

1.  **إنشاء `email.txt`:** قم بإنشاء ملف يسمى `email.txt` في نفس دليل تشغيل السكريبت. يجب أن يحتوي هذا الملف على قائمة بعناوين البريد الإلكتروني، كل عنوان في سطر منفصل.

    ```
    email1@example.com
    email2@example.com
    ```

2.  **إنشاء `proxies.txt` (اختياري):** إذا كنت ترغب في استخدام بروكسيات، فقم بإنشاء ملف يسمى `proxies.txt` يحتوي على قائمة بالبروكسيات، كل بروكسي في سطر منفصل. يمكن أن تكون البروكسيات بتنسيق `IP:PORT`.

    ```
    192.168.1.1:8080
    192.168.1.2:8080
    ```

3.  **تشغيل الأداة:**

    ```python
    from jack_social_checker.checker import JackSocialChecker
    import sys

    try:
        with open("email.txt", "r") as text:
            emails_to_check = text.read().strip().splitlines()
    except FileNotFoundError:
        print("email.txt not found. Please create it with emails to check.")
        sys.exit(1)

    try:
        with open("proxies.txt", "r") as pro:
            proxy_list = pro.read().strip().splitlines()
    except FileNotFoundError:
        print("proxies.txt not found. Please create it with proxies.")
        proxy_list = []

    print("""
    [+] 1 - للجميع (تويتر، انستغرام، سناب شات)[+]
    [===================================================]
    [+] 2 - فحص بريد تويتر [+]
    [===================================================]
    [+] 3 - فحص بريد انستغرام [+]
    [===================================================]
    [+] 4 - فحص بريد سناب شات [+]

    مثال على اختيار متعدد: 2 3 أو 4 3 هكذا :)

    """)

    user_choice = str(input("أدخل الرقم من فضلك:"))
    num_threads = int(input("[+] أدخل عدد الثريدات [+]:"))
    proxy_type_choice = int(input("[1] Http/Https ---- [2] socks4 ------ [3] socks5 [أدخل الرقم فقط]:"))

    checker = JackSocialChecker(emails_to_check, proxy_list, user_choice, num_threads)
    checker.start(proxy_type_choice)
    ```

## الميزات

*   التحقق من ارتباط البريد الإلكتروني بحسابات Instagram و Twitter و Snapchat.
*   دعم البروكسيات (HTTP/HTTPS، SOCKS4، SOCKS5).
*   العمل متعدد الخيوط (Multithreading) لتحسين الأداء.

## الاعتمادات

*   `requests`
*   `threading`
*   `queue`
PyQtPaint 0.2.1
A library the uses PyQt5 for setting up apps with a window to programatically draw in.
Requires Python: >=3.13

# PyQtPaint
**This is still a work in progress, but basic functionality is present.**
A library of boilerplate code using the PyQt5 library. Used for creating a window to draw in and having an application and update thread. Also comes with some predefined objects to add to the window for drawing.

## Installation:
* **Github**:
```sh
git clone https://github.com/WafflerThe/PyQtPaint
pip install PyQtPaint
```
* **pip**:
```sh
pip install PyQtPaint==0.1.0
```

## Modules
* `PyQtPaint.app`:
Contains the `App` abstract class for running the window and updates to it.

* `PyQtPaint.form`:
Contains the `PainterWindow` class of which objects can be added and removed from it. These objects will be painted on every update call.

* `PyQtPaint.objects`:
Contains the `PainterObject` abstract class which descendants will have paint methods and other styling methods for customizing the object.

## Examples:
Press `esc` to close.
* tree_app.py
* mouse_app.py

## How to use:
The expected way to use this library to to create a class that extends App.
The subclass can override various methods inside of App and there are options for further customization.

### App Options:
These will be keyword arguments that are passed into the super constructor.
* `auto_update`: Defaults to `True`; determines if an asynchronous thread should be made and ran
* `fps`: Defaults to `30`; will be the amount of times the `update` method is called in a second
* `mouse_tracking`: Defaults to `False`; Will not capture mouse movements unless a button is down when `False`
* `title`: Defaults to `Painter Window`; The title to be displayed on the window
* `fullscreen`: Defaults to `False`; If `True` the window will be in fullscreen mode
* `size`: The size of the window as a tuple `(width, height)`
* `width`: Defaults to `600`; If not `size` the width of the window
* `height`: Defaults to `600`; If not `size` the height of the window
* `position`: Defaults to `(0, 0)`; Where the window should be placed on the screen
* `render_hint`: Defaults to `QPainter.Antialiasing`; The render hint the window should use when painting
* `background`: Defaults to `QBrush(Qt.black)`; The `QBrush` the background should use

### Methods to override:
#### Standard:
* `setup_objects`:
	* Automatically called in the constructor
	* Where the initial painter objects should be added to the window
* `update`:
	* When `auto_update` is `True` will be called asynchronously multiple times a second based on `fps`
	* When `auto_update` is `False` call `update` manually when you need a repaint
#### Events:
They will all have an event parameter
##### Keys:
* `keyPress`
* `keyRelease`
##### Mouse:
* `mousePress`
* `mouseRelease`
* `mouseDouble`
* `mouseMove`
* `mouseEnter`
* `mouseLeave`
* `mouseWheel`