semvec/pypi-packages huggingface dataset:
pyrchain 0.4.0a1
Interface to RChain RNode RPC

# pyrchain

Interface to RChain RNode RPC.

## Install 

Pyrchain is Python 3 library for interfacing with RChain RNode gRPC API. The
library is distributed via PyPI (https://pypi.org/project/pyrchain/). You can
install it for current user by running:

	pip3 install -U pyrchain

See `setup.py` for information about 3rd party library dependencies.


## Examples

The features below are provided in pyrchain.

1. [generate private key and public key](./examples/keys_example.py)
2. [sign a deploy with the private key](./examples/sign_verify_examples.py)
3. [use grpc api to interact with rnode](./examples/grpc_api_example.py)
4. [Vault Api of rchain to do transfer and check balance](./examples/vault_example.py)     

## Development

To install the development package:

    pip install -e .[dev]

To update protocol buffers from upstream run:

	./update-protobufs
	./update-generated

This first command will fetch latest RChain `*.proto` files from `dev` branch
into `./protobuf` directory. The second command will generate gRPC Python code
corresponding to the protcol buffers into `rchain.pb` package (`./rchain/pb`).

To run integration tests run:

	python -m pytest rchain/tests
    python -m mypy rchain
    isort --recursive --check-only rchain
secure-settings 1.0.3
Secure storage of settings for your python programs. Use strong salt
Requires Python: >=3.1,<4.0


## API Reference

#### import

```python
  from secure_settings import Settings
```

The settings are stored in sqlite in encrypted form

#### CLI

    You need to use salt to access correct data.
    main.py <salt> <command> <argv_command>
    
    Commands:
    1. set_settings:
            argv:
                "name_settings=value_settings,name_settings2=value_settings2"
            description:
                Set settings into base
            example:
                main.py salt set_settings "name_settings=value_settings,name_settings2=value_settings2"
    2. get_settings
            description:
                Get all settings from base
    3. clear_settings
            description:
                Delete all settings on base
    4. from_file
            argv:
                path_to_settings
            description:
                Filling in settings from a file
            example:
                main.py salt from_file file_settings                             
            example file:
                path_to_work;C:\\\\Program Files(x86)\\projects\\tralala.prj
                git_repo;E:\\\\tralala\\git
    5. to_file
            argv:
                path_to_settings_to_upload
            description:
                Upload settings into file
            example:
                main.py salt to_file file_settings
				
#### Library
The program must be run with at least one parameter indicating the encryption key.
```
	main.py this_is_salt
```

Running without salt will result in a program error:
```
Missing key parameter. Read help.\nPress ENTER to exit.
```

Default values when initializing the class
```
Settings(delete_after_filling=True, close_after_get=True)
```

settings = Settings()
readed_settings = settings.get_all()
print(readed_settings.path_to_lib)

```
var/lib/
```

#### Using in you programms

run with argument string

```
from from secure_settings import Settings

settings = Settings()
dict_settings = settings.get_all()

```

Thats all, simple as one, two, three
You may read settings:
```
dict_settings['path_to_repo']
```
or 
```
dict_settings.path_to_repo
```

#### Security
There are two methods of encryption and decryption for the settings class:
```python
    def encode(self, clear):
        enc = []
        for i in range(len(clear)):
            key_c = self.salt[i % len(self.salt)]
            enc_c = chr((ord(clear[i]) + ord(key_c)) % 256)
            enc.append(enc_c)
        return base64.urlsafe_b64encode("".join(enc).encode()).decode()

    def decode(self, enc):
        dec = []
        enc = base64.urlsafe_b64decode(enc).decode()
        for i in range(len(enc)):
            key_c = self.salt[i % len(self.salt)]
            dec_c = chr((256 + ord(enc[i]) - ord(key_c)) % 256)
            dec.append(dec_c)
        return "".join(dec)
```

After viewing the settings file without decryption, we will see something like the following:
```
#=path_to_libwqLDl8ONw6bCosONw5XDlsKi
```
scheduledexecutor 0.0.2.dev0
scheduledexecutor
Requires Python: >=3.7

# scheduledexecutor

[![CI](https://github.com/delegacy/scheduledexecutor/actions/workflows/ci.yml/badge.svg)](https://github.com/delegacy/scheduledexecutor/actions)
[![Codecov](https://codecov.io/gh/delegacy/scheduledexecutor/branch/main/graph/badge.svg?token=I6VQGPPOKF)](https://codecov.io/gh/delegacy/scheduledexecutor)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![PyPI Package latest release](https://img.shields.io/pypi/v/scheduledexecutor.svg)](https://pypi.org/project/scheduledexecutor/)
[![PyPI Wheel](https://img.shields.io/pypi/wheel/scheduledexecutor.svg)](https://pypi.org/project/scheduledexecutor/)
[![Supported versions](https://img.shields.io/pypi/pyversions/scheduledexecutor.svg)](https://pypi.org/project/scheduledexecutor/)
[![License](https://img.shields.io/pypi/l/scheduledexecutor.svg)](https://pypi.org/project/scheduledexecutor/)
[![Documentation Status](https://readthedocs.org/projects/scheduledexecutor/badge/?version=latest)](https://scheduledexecutor.readthedocs.io/en/latest/?badge=latest)