semvec/pypi-packages huggingface dataset:
virtualenv-make-relocatable 0.0.1
simple tool to make virtualenv provided scripts relocatable

### virtualenv-make-relocatable

simple tool to make scripts provided by virtualenv relocatable


#### Background

Historically virtualenv supported option `--relocatable` to rewrite shibangs for scripts installed in it. 
It's very useful option if you plan to create docker image from your virtualenv directory.
Unfortunately since version `20.0` virtualenv removed this option.

This project provides tool for performing removed functionality


#### How to use

just run `virtualenv-make-relocatable <VENV-DIRECTORY>`
s2-data 0.27
Spelunky 2 Data Utilities.
Requires Python: >=3.7, <4
Keywords: games

[![PyPi Version](https://img.shields.io/pypi/v/s2-data.svg)](https://pypi.python.org/pypi/s2-data/)

# s2-data

Repository for documenting and interacting with various formats for Spelunky 2.

Currently we have documents for the following:
  * [Save Format](docs/save-format.md)
  * [Leaderboards Format](docs/leaderboards-format.md)

as well as libraries for asset extraction and repacking.

## Installation

```console
pip install --upgrade s2-data
```

## Development

If you'd like to contribute to `s2-data` here are some steps to setup your environment.

### VirtualEnv

*While not required, a virtualenv is a nice way to keep this projects dependencies isolated from the rest of your system. This step is optional but recommended*

In the root directory you can make a virtualenv. It will be excluded from commits by default

```console
python -m venv venv
```
Whenever developing the project you'll want to activate the virtualenv in your terminal. This is platform dependent and there are more comprehensive docs available here: https://docs.python.org/3/library/venv.html


### Setup

Once you have your virtual environment setup and activated you'll want to finish setting up the development environment.

```console
> python setup.py develop
```

This will install any dependencies as well as setting up links on your path to your local source files. Once this is done
you'll be able to execute the binaries right from your path after any changes to the source without the need to build or
install anything. If you add new source files you may have to run `python setup.py develop` again to make sure they're linked.
hydration 4.0.0
A module used to define python objects that can be converted to (and from) bytes.
Requires Python: >=3.6

# Hydration

![Tests](https://github.com/shustinm/hydration/workflows/Tests/badge.svg?branch=master)
![PyPI](https://img.shields.io/pypi/v/hydration)

---

<p align="center">
This software has been designed for you, with much joy, by <a href="https://github.com/shustinm/">Michael Shustin</a>
</p>

---

<p align="center">
You can find the complete documentation <a href=https://shustinm.github.io/hydration/>here</a>
</p>

---

# What is Hydration?
Hydration is a library used to define python objects that can be converted to (and from) bytes.

## Installation
```
pip install hydration
```

## Introduction

<i>This guide assumes you are familiar with low-level primitive data types (like signed/unsigned int, int64, etc.) </i>

### Field
Fields are primitive objects that hold data, 
and can be converted to (and from) bytes:
```pycon
>>> from hydration import *
>>> f = UInt16(1512)
>>> bytes(f)
b'\xe8\x05'
>>> UInt16().from_bytes(b'\xe8\x05')
UInt16(1512)
```

### Struct
A struct is a composite of fields. 
To create a struct, Inherit from `Struct`:
```python
from hydration import *

class MyStruct(Struct):
    a = UInt8
    b = UInt8(value=3)  # You can set the default value
```

```pycon
>>> st = MyStruct(a=10)  # Structs can receive field values as keyword arguments
>>> print(st) 
MyStruct
    a:	UInt8(10)
    b:	UInt8(3)
>>> bytes(st)
b'\n\x03'
>>> print(MyStruct.from_bytes(b'\n\x03'))
MyStruct:
	a:	UInt8(10)
	b:	UInt8(3)
```

### Message
A message is a list-like composite of structs:
```python
from hydration import *

class Header(Struct):
    magic = UInt32(0xDEADBEEF)

class Body(Struct):
    param1 = Float(2.875)
    param2 = Int8(-128)
```
```pycon
>>> msg = Header() / Body()  # Create a message by using the division operator on structs
>>> print(msg)
Header:
	magic:	UInt32(3735928559)
Body:
	param1:	Float(2.875)
	param2:	Int8(-128)
>>> bytes(msg)
b'\xef\xbe\xad\xde\x00\x008@\x80'
```

### Advanced features
For more advanced usage, be sure to check the [documentation](https://shustinm.github.io/hydration/).

## Support
Want to report a bug? Request a feature? Please do so [here](https://github.com/shustinm/hydration/issues/new/choose)

## Maintainers
* [Michael Shustin](https://github.com/shustinm/) (Author)
* [Aviv Atedgi](https://github.com/avivatedgi)