semvec/pypi-packages huggingface dataset:
datta 1.0.1
Implementation of Slotted Data Classes compatible with Python 2.7 and 3.7+.
Requires Python: >= 2.7, != 3.0.*, != 3.1.*, != 3.2.*, != 3.3.*, != 3.4.*, != 3.5.*, != 3.6.*

Datta
=====

.. image:: https://github.com/brunonicko/datta/workflows/MyPy/badge.svg
   :target: https://github.com/brunonicko/datta/actions?query=workflow%3AMyPy

.. image:: https://github.com/brunonicko/datta/workflows/Lint/badge.svg
   :target: https://github.com/brunonicko/datta/actions?query=workflow%3ALint

.. image:: https://github.com/brunonicko/datta/workflows/Tests/badge.svg
   :target: https://github.com/brunonicko/datta/actions?query=workflow%3ATests

.. image:: https://readthedocs.org/projects/datta/badge/?version=stable
   :target: https://datta.readthedocs.io/en/stable/

.. image:: https://img.shields.io/github/license/brunonicko/datta?color=light-green
   :target: https://github.com/brunonicko/datta/blob/main/LICENSE

.. image:: https://static.pepy.tech/personalized-badge/datta?period=total&units=international_system&left_color=grey&right_color=brightgreen&left_text=Downloads
   :target: https://pepy.tech/project/datta

.. image:: https://img.shields.io/pypi/pyversions/datta?color=light-green&style=flat
   :target: https://pypi.org/project/datta/

Overview
--------
Immutable data structures based on `estruttura <https://github.com/brunonicko/estruttura>`_.

Examples
--------

.. code:: python

    >>> from datta import Data, attribute
    >>> class Point(Data):
    ...     x = attribute(types=int)
    ...     y = attribute(types=int)
    ...
    >>> point_a = Point(3, 4)
    >>> point_a
    Point(3, 4)
    >>> point_b = point_a.update(x=30, y=40)
    >>> point_b
    Point(30, 40)

.. code:: python

    >>> from datta import Data, attribute, list_attribute
    >>> from tippo import Literal
    >>> class Vehicle(Data):
    ...     kind = attribute(types=str)
    ...
    >>> class Garage(Data):
    ...     vehicles = list_attribute(types=Vehicle)
    ...     gate = attribute(default="automatic", types=str)  # type: Literal["automatic", "manual"]
    ...
    >>> garage = Garage([Vehicle("bicycle"), Vehicle("car")], gate="manual")
    >>> garage
    Garage([Vehicle('bicycle'), Vehicle('car')], gate='manual')
    >>> garage.serialize() == {"vehicles": [{"kind": "bicycle"}, {"kind": "car"}], "gate": "manual"}
    True
    >>> Garage.deserialize({"vehicles": [{"kind": "bicycle"}, {"kind": "car"}], "gate": "manual"}) == garage
    True

.. code:: python

    >>> from datta import list_cls
    >>> MyStrList = list_cls(converter=str, qualified_name="MyStrList")
    >>> my_str_list = MyStrList([1, 2.2, None, True])
    >>> my_str_list
    MyStrList(['1', '2.2', 'None', 'True'])
kiertotie 2023.1.5
Detour (Finnish: kiertotie) per rsync proxy to https mirror node.
Requires Python: >=3.10
Keywords: developer-tools,validation,verification

# Kiertotie

Detour (Finnish: kiertotie) per rsync proxy to https mirror node.

[License: MIT](https://git.sr.ht/~sthagen/kiertotie/tree/default/item/LICENSE)

Third party dependencies are documented in the folder [third-party](third-party/README.md).

[![version](https://img.shields.io/pypi/v/kiertotie.svg?style=flat)](https://pypi.python.org/pypi/kiertotie/)
[![downloads](https://pepy.tech/badge/kiertotie/month)](https://pepy.tech/project/kiertotie)
[![wheel](https://img.shields.io/pypi/wheel/kiertotie.svg?style=flat)](https://pypi.python.org/pypi/kiertotie/)
[![supported-versions](https://img.shields.io/pypi/pyversions/kiertotie.svg?style=flat)](https://pypi.python.org/pypi/kiertotie/)
[![supported-implementations](https://img.shields.io/pypi/implementation/kiertotie.svg?style=flat)](https://pypi.python.org/pypi/kiertotie/)

## Documentation

User and developer [documentation of kiertotie](https://codes.dilettant.life/docs/kiertotie).

## Bug Tracker

Feature requests and bug reports are best entered in the [todos of kiertotie](https://todo.sr.ht/~sthagen/kiertotie).

## Primary Source repository

The main source of `kiertotie` is on a mountain in central Switzerland.
We use distributed version control (git). No central hub. Each clone can become a new source for the benefit of all.
The preferred public clones of `kiertotie` are:

* [on codeberg](https://codeberg.org/sthagen/kiertotie) - a democratic community-driven, non-profit software development platform operated by Codeberg e.V.
* [at sourcehut](https://git.sr.ht/~sthagen/kiertotie) - a collection of tools useful for software development.

# Status

Experimental.

**Note**: The default branch is `default`.
manim-sequence-diagram 0.1.0
Manim extension to generate UML sequence diagrams
Requires Python: >=3.8,<4.0

# Manim Sequence Diagrams

[![watch the sequence diagram video](docs/seq-diagram.png)](./docs/ClientRaceDatabaseNetwork.mp4)

## Installation

Following manim's guide on how to install plugins on [this guide](https://docs.manim.community/en/stable/plugins.html), but TL;DR is:

run

```sh
pip install manim-sequence-diagram
manim cfg write
```

this will generate a `manim.cfg` file somewhere, you'll need to add to it this package

```
[CLI]
enable_wireframe = False
dry_run = False
tex_template =
plugins = manim_sequence_diagram
```

You'll know if you have it working if you run

```sh
manim plugins -l
```

and it shows something like

```
Manim Community v0.16.0.post0

Plugins:
 • manim_sequence_diagram
```

### Generate Examples

```sh
manim -pql docs/examples.py ClientRaceDatabaseNetwork
```

Although one day, we'd like to support proper sequence diagram syntax, for now, it's all in python.

Here's a quick example of how it works

```python
from manim import *
from manim_sequence_diagram import *

class ClientRaceDatabaseNetwork(MovingCameraScene):
    def construct(self):
        actor_client = SeqActor(name="client")
        actor_delivery = SeqActor(name="delivery")
        actor_server = SeqActor(name="server")
        actor_db = SeqActor(name="database")
        for anime in SeqAction.introduce_actors(actor_client, actor_server, actor_delivery, actor_db):
            self.play(anime)

        # Move the camera yourself!
        self.play(self.camera.frame.animate.move_to(DOWN * 3))

        for anime in SeqAction.subject_gives_gift_to_target(
            subject=actor_client,
            gift=SeqObject(name="async getData"),
            target=actor_delivery
        ):
            self.play(anime)
```

## Development

You'll need poetry to properly get this to work, checkout their guide [here](https://python-poetry.org/docs/) for how to install. Once you do, do the following to setup

```sh
make install
make dev
```

In order to generate examples, you'll need to setup your manim cfg
searchlauncher 0.2.0
Search multiple websites using a single shortcut.
Requires Python: >=3.10,<4.0

# searchlauncher

Search multiple websites at once using your default browser.

The search (launcher) can be triggered from anywhere as it's listening for a global keypress.

### Installation

```bash
pip install searchlauncher
```

#### Requirements

Python `>=3.10` with [`tkinter`](https://docs.python.org/3/library/tkinter.html) installed.

### Running in background

```bash
searchlauncher
```

to start as a daemon waiting for a [configurable](#settings-and-supported-websites) keypress (e.g., `Ctrl + Shift + E`).

Then type your query and press `Enter` to submit or `Esc` to close the window.

This will open the search for each website in a new tab.

Searching different website groups can be triggered with different hotkeys.

### Searching from console

Instead of running in background, you can use the CLI run a one-off search.

To open a search for all [configured websites](#settings-and-supported-websites):

```shell
searchlauncher search "an item I'm looking for"
```

You can also select a [custom search group](#settings-and-supported-websites):

```shell
searchlauncher search "and now for something completely different" -g en
```

### Settings and supported websites

To open the config file location, you can run

```shell
searchlauncher config
```

after installing.

See the available [`default websites and groups`](src/searchlauncher/settings/default.toml).

You can easily modify this file to add and modify target websites as well as their groups.

You can also customise the default `shortcut` hotkey as well as shortcuts for all groups.

## TODO

- [x] CLI to search for a single item
- [x] GUI (popup on hotkey)
- Configurability
    - [x] Customise the hotkey(s)
    - [x] Customise search sites
    - [x] Customisable search groups
    - [ ] Add and select different browsers

## Development

### Setup

1. [Install poetry](https://python-poetry.org/docs/#installation) and `cd` to this folder.

2. `poetry install`

3. `poetry run pre-commit install`