Metadata-Version: 2.4
Name: llnl-clippy
Version: 0.3
Summary: A Python interface to HPC resources
Author: Roger Pearce, Seth Bromberger
Project-URL: Homepage, https://github.com/LLNL/clippy
Project-URL: Issues, https://github.com/LLNL/clippy/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: C++
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE-MIT
License-File: NOTICE
Requires-Dist: semver>=3.0
Requires-Dist: jsonlogic-py>=0.1
Provides-Extra: dev
Requires-Dist: coverage>=5.5; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pylint<3,>=2.15; extra == "dev"
Requires-Dist: pyproj<4,>=3.6; extra == "dev"
Requires-Dist: pytest<8,>=7; extra == "dev"
Requires-Dist: tqdm; extra == "dev"
Requires-Dist: json-logic-qubit; extra == "dev"
Dynamic: license-file

# CLIPPy - Command Line Interface Plus Python
 ````
 ╭────────────────────────────────────╮
 │ It looks like you want to use HPC. │ 
 │ Would you like help with that?     │
 ╰────────────────────────────────────╯
  ╲
   ╲
    ╭──╮  
    ⊙ ⊙│╭
    ││ ││
    │╰─╯│
    ╰───╯
````

## Overview

Clippy (CLI + PYthon) is a Python language interface to HPC resources. Precompiled binaries
that execute on HPC systems are exposed as methods to a dynamically-created `Clippy` Python
object, where they present a familiar interface to researchers, data scientists, and others.
Clippy allows these users to interact with HPC resources in an easy, straightforward
environment – at the REPL, for example, or within a notebook – without the need to learn
complex HPC behavior and arcane job submission commands.

## Installation of Python Code
```console
$ pip install .
```

## Building C++ Examples on LC

```console
$ . /usr/workspace/llamag/spack/share/spack/setup-env.sh
$ git clone https://github.com/LLNL/clippy-cpp.git
$ spack load gcc
$ spack load boost
$ cd clippy-cpp
$ mkdir build
$ cd build
$ cmake ../
$ make
$ cd ../.. #back to root project directory 
```

## Running Current C++ Examples
```python
$ CLIPPY_BACKEND_PATH=/path/to/binaries ipython3

In [1]: from clippy import *

 ╭────────────────────────────────────╮
 │ It looks like you want to use HPC. │ 
 │ Would you like help with that?     │
 ╰────────────────────────────────────╯
  ╲
   ╲
    ╭──╮  
    ⊙ ⊙│╭
    ││ ││
    │╰─╯│
    ╰───╯

In [2]: c = ClippyBag()  # creates a bag datastructure.

In [3]: c.insert("foo").insert("bar")  # mutating methods can be chained
       
Out[3]: foo bar

In [4]: c.size()  # nonmutating methods return the appropriate output.
Out[4]: 2

```
## Authors
- Seth Bromberger (seth at llnl dot gov)
- Roger Pearce (rpearce at llnl dot gov)


## License
CLIPPy is distributed under the MIT license.

See [LICENSE-MIT](LICENSE-MIT), [NOTICE](NOTICE), and [COPYRIGHT](COPYRIGHT) for
details.

SPDX-License-Identifier: MIT

## Release
LLNL-CODE-818157
