semvec/pypi-packages huggingface dataset:
heir-play 0.0.4
A cell magic enabling one to run HEIR pipelines in Jupyter notebooks.
Requires Python: >=3.8

# HEIR Jupyter playground

This is a way to start running [HEIR](https://heir.dev) compiler passes in a
Jupyter notebook or IPython notebook without having to build the entire HEIR
project from scratch.

Uses the
[nightly HEIR build](https://github.com/google/heir/releases/tag/nightly).

## Usage

Load Jupyter:

```bash
jupyter notebook
```

In Jupyter:

```python
%pip install heir_play
%load_ext heir_play
```

```mlir
%%heir_opt --convert-if-to-select --canonicalize

func.func @secret_condition_with_non_secret_int(%inp: i16, %cond: !secret.secret<i1>) -> !secret.secret<i16> {
  %0 = secret.generic ins(%inp, %cond : i16, !secret.secret<i1>) {
  ^bb0(%copy_inp: i16, %secret_cond: i1):
    %1 = scf.if %secret_cond -> (i16) {
      %2 = arith.addi %copy_inp, %copy_inp : i16
      scf.yield %2 : i16
    } else {
      scf.yield %copy_inp : i16
    }
    secret.yield %1 : i16
  } -> !secret.secret<i16>
  return %0 : !secret.secret<i16>
}
```

The cell should output something similar to

```mlir
Running heir-opt...
module {
  func.func @secret_condition_with_non_secret_int(%arg0: i16, %arg1: !secret.secret<i1>) -> !secret.secret<i16> {
    %0 = arith.addi %arg0, %arg0 : i16
    %1 = secret.generic ins(%arg1 : !secret.secret<i1>) {
    ^bb0(%arg2: i1):
      %2 = arith.select %arg2, %0, %arg0 : i16
      secret.yield %2 : i16
    } -> !secret.secret<i16>
    return %1 : !secret.secret<i16>
  }
}
```

## Limitations

Right now, `heir-opt` as a standalone binary is not able to run lowerings to
boolean TFHE schemes due to an external dependency on ABC (see
[#885](https://github.com/google/heir/issues/885)). If you try to run any
pipeline requiring the `yosys-optimizer` pass, will see the following error from
ABC:

```
ERROR: ABC: execution of command ""external/edu_berkeley_abc/abc" -s -f /tmp/yosys-abc-iEdp1F/abc.script 2>&1" failed: return code 127.
```
fastjsonpy 1.1
Fast Json makes Json faster
Requires Python: >=3.7

# Fast Json
## EN
Fast Json makes Json faster
### How does it work?
When the init() function is run, the file is loaded into RAM, then a process is created that saves information from RAM to a file every 5 seconds.
### Why is this necessary?
Saving a file to disk every time is not a good idea. Fast Json saves all changes to RAM (which is much faster than disk) and starts the process of saving to disk every 5 seconds.
### Functions
`init('filename.json')` - loads the file into RAM and starts the save thread
`get('filename.json')` - returns the file contents from RAM
`set('filename.json', {...})` - writes the value to RAM
`updatefile('filename.json')` - saves the file contents from RAM to the file *(Not required, the file is automatically saved every 5 seconds after initialization (init))*
### Example
```py
import fastjsonpy

fastjsonpy.init('test.json')

fastjsonpy.set('test.json', {'name': 'Alex'})

print(fastjsonpy.get("test.json"))
```
This example will load `test.json` into RAM, start the file save thread every 5 seconds, write `{'name': 'Alex'} and display the contents of the file from RAM.

## RU
Fast Json делает Json более быстрым
### Как это работает?
При запуске функции init() происходит загрузка файла в оперативную память, далее создаётся процесс, который раз в 5 секунд сохраняет информацию из оперативной памяти в файл.
### Зачем это нужно?
Каждый раз сохранять файл на диск - не лучшая идея. Fast Json сохраняет все изменения в оперативную память (которая куда быстрее диска) и запускает процесс сохранения на диск каждые 5 секунд.
### Функции
`init('имя файла.json')` - загружает файл в оперативную память и запускает поток сохранения
`get('имя файла.json')` - возвращает содержимое файла из оперативной памяти
`set('имя файла.json', {...})` - записывает значение в оперативную память
`updatefile('имя файла.json')` - сохраняет содержимое файла из оперативной памяти в файл *(Не требуется, файл автоматически сохраняется каждые 5 секунд после инициализации (init))*
### Пример
```py
import fastjsonpy

fastjsonpy.init('test.json')

fastjsonpy.set('test.json', {'name': 'Alex'})

print(fastjsonpy.get("test.json"))
```
Такой пример загрузит `test.json` в оперативную память, запустит поток сохранения файла каждые 5 секунд, запишет `{'name': 'Alex'} и отобразит содержимое файла из оперативной памяти.