semvec/pypi-packages huggingface dataset:
qm-sim 0.1.2
Quantum mechanics simulation library
Requires Python: >=3.10

# QM_sim

Python library for simulation of quantum mechanical systems. The documentation is available on [GitHub pages](https://viljarjf.github.io/QM_sim/).

[![Build docs](https://github.com/viljarjf/QM_sim/actions/workflows/build_docs.yml/badge.svg)](https://github.com/viljarjf/QM_sim/actions/workflows/build_docs.yml)

[//]: # (This is a comment. This comment should be on line 7. If this changes, also change the hard-coded line number for the start-line for the mdinclude at the top of docs/source/index.rst )

## Features 
- 1D, 2D, and 3D systems
- Choice of finite difference scheme
- Zero and periodic boundary conditions
- Stationary and temporal solutions
- Plots

## Planned features
- Transfer matrix for transmission ect.
- Proper testing

[//]: # (This is a comment. This comment should be on line 20. If this changes, also change the hard-coded line number for the end-line for the mdinclude at the top of docs/source/index.rst )

## Installation

`pip install qm-sim`

To be able to use the [PyTorch](https://pytorch.org/) backend for eigenvalue calculations, run the following command: 

`pip install qm-sim[torch]`

This will install the cpu-version of the package. To run GPU calculations, install the version for your system at the [PyTorch website](https://pytorch.org/get-started/locally/) instead.

## Usage

Examples are provided in the `examples/`-folder.
These are enumerated with increasing level of simulation complexity.

## Contribution

To contribute, please open a pull request to the `dev`-branch on [GitHub](https://www.github.com/viljarjf/QM_sim/pulls).

### Linting

When opening a PR, a linting check is performed.
To ensure your contribution passes the checks, you can run the following

~~~bash
$ pip install .[linting]
$ black src/qm_sim
$ isort src -m 3 --trailing-comma
$ pylint src --fail-under=7
~~~

### Setup

The following is an example of how to set up VS Code for development, adapt to your IDE of choice.

TL;DR: 
- `pip install -e .` to install in an editable state

**Requirements**
- VS Code
    - Python extension
- Python 3.10 or above

**Steps**
1. Clone the repo recursively and open the repo in VS Code. If not cloned recursively, initialize the submodules with `git submodule update --init`
2. Press f1, and run `Python: Create Environment`. Select `.venv`
3. Open a new terminal, which should automatically use the virtual environment. If not, run `.venv\Scripts\activate` on Windows, or `source .venv/bin/activate` on Unix
4. In the same terminal, run `pip install -e .[test]` to install the current directory in an editable state, and the testing utility Pytest
5. To run tests, press f1 and run `Python: Configure Tests`. Choose `pytest`. Run tests in the testing menu
librelingo-yaml-loader 1.12.0
Load YAML-based LibreLingo courses in your Python project.
Requires Python: >=3.8,<4.0

<a id="librelingo_yaml_loader.yaml_loader"></a>

# librelingo\_yaml\_loader.yaml\_loader

<a id="librelingo_yaml_loader.yaml_loader.load_course"></a>

#### load\_course

```python
def load_course(path: str)
```

Load a YAML-based course into a Course() object
daffi-terminals 1.0.13
Remote terminal control
Requires Python: >=3.8
Keywords: async,debug,debugging,distributed,embedded,iot,python,remote,remote control,rpc,ssh,stream,webssh

## Daffi Terminals

Simple web based application designed to facilitate the connection to remote terminals.

## Preview
![sc.png](https://raw.githubusercontent.com/600apples/dafi-terminals/main/docs/sc.png)

### How it works

![how-it-works](https://raw.githubusercontent.com/600apples/dafi-terminals/main/docs/intro.png)


### Get started

1. Install this app, run command `pip install daffi-terminals`
2. Start a router, run command `dterm start-router --rpc-host=0.0.0.0 --rpc-port=9999 --web-host=0.0.0.0 --web-port=8888`
3. Connect worker to router, run command `dterm start-worker --rpc-host=0.0.0.0 --rpc-port=9999` (you can connect as many workers as you want)
3. Navigate [http://localhost:8888](http://localhost:8888/) in your browser

#### `start-router` arguments

| Argument | Description | Required  |
|----------|-------------|-----------|
| `--rpc-host` | host for communication between router and workers | Yes |
| `--rpc-port` | port for communication between router and workers | Yes |
| `--web-host` | host for serving web server | Yes |
| `--web-port` |  port for serving web server | Yes |
| `--ssl-cert` | ssl certificate for connection encryption between router and workers | No |
| `--ssl-key` | ssl key for connection encryption between router and workers | No |


#### `start-worker` arguments

| Argument | Description | Required  |
|----------|-------------|-----------|
| `--rpc-host` | router rpc host | Yes |
| `--rpc-port` | router rpc port | Yes |
| `--name` | worker name. This name must be unique across all workers. If not provided then random name will be assigned | No |
| `--ssl-cert` | ssl certificate for connection encryption between router and workers | No |
| `--ssl-key` | ssl key for connection encryption between router and workers | No |