Metadata-Version: 2.4
Name: vrt_lss_packer
Version: 7.38.3336
Summary: VRt.Packer [PC]
Home-page: 
Author: Veeroute Support Team
Author-email: Veeroute Support Team <support@veeroute.com>
License: Proprietary
Project-URL: Repository, https://github.com/GIT_USER_ID/GIT_REPO_ID
Keywords: OpenAPI,VRt.Packer [PC]
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: urllib3<3.0.0,>=2.1.0
Requires-Dist: python-dateutil>=2.8.2
Requires-Dist: pydantic>=2
Requires-Dist: typing-extensions>=4.7.1
Dynamic: author

# vrt_lss_packer
Programming interface for Veeroute Packer.

# Description

The service is designed to compute the placement of goods inside the given packagings.

![overview](../images/packer_overview.png)

## Types of packaging

### Slot

![slot](../images/packer_slot.svg)

Loaded pallets are stacked on top of each other; a slot is the place where a stack of pallets is set.

A slot has no physical body — therefore the slot's `body` dimensions are zero.

### Pallet

![pallet](../images/packer_pallet.svg)

If a pallet is fully filled with the same product, such a pallet is called a **mono-pallet**, and the following loading rules apply:

1. The maximum allowed pallet height including the loaded goods is taken into account.
1. The maximum allowed weight of the loaded pallet is taken into account.
1. Product packagings can be placed only parallel to the pallet walls.
1. Packagings can be rotated around the vertical Z axis only and only at right angles.
1. To equalize the height between positions (in order to place another pallet on top), empty spaces can be added to the layered placement.

After mono-pallets have been formed, the remaining items of the same SKU are placed on the next pallet.
Such a pallet is divided by a cardboard partition into zones so that each zone contains products of only one SKU,
and the zones have the following constraints:

1. The zones are rectangular.
1. The aspect ratio of a zone's sides can be any.
1. One side of any zone always touches the edge of the pallet.
1. The allowed number of zones on a pallet: from 2 to 6.
1. Each zone is filled according to the mono-pallet filling rules.
1. The placement height of all goods does not exceed 50 mm so that another pallet can be placed on top.
1. It is allowed to form pallets with different placement heights for different positions (height difference greater than 50 mm) if these are the topmost pallets in the stack.

### Mixbox

![mixbox](../images/packer_mixbox.svg)

If at the steps described above it is not possible to place the items so that a pallet has the required height or weight, mixboxes are used:

1. A mixbox can only be placed in a single layer.
1. A single mixbox can contain different products; in this case it is divided by partitions similarly to a pallet (the only difference is that the height of the packed goods is not equalized).
1. Mixboxes can be mixed with item positions on the same pallet.
1. The same product can be packed in different mixboxes.

## Coordinate system

![coordinates](../images/packer_coordinates.svg)

To indicate the location of packagings and goods, a local coordinate system is used, in which the coordinates of a specific object are given relative to the near lower-left corner of the parent object, where:

* Horizontal plane — axes **X**, **Y**
* Vertical — axis **Z**

Axis-to-dimension mapping for goods and packagings:

* Width — along axis **X**
* Length — along axis **Y**
* Height — along axis **Z**

## Entity diagram

![erd](../uml/packer.svg)


This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: 7.38.3336
- Package version: 7.38.3336
- Generator version: 7.17.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen

## Requirements.

Python 3.9+

## Installation & Usage
### pip install

If the python package is hosted on a repository, you can install directly using:

```sh
pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git
```
(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git`)

Then import the package:
```python
import vrt_lss_packer
```

### Setuptools

Install via [Setuptools](http://pypi.python.org/pypi/setuptools).

```sh
python setup.py install --user
```
(or `sudo python setup.py install` to install the package for all users)

Then import the package:
```python
import vrt_lss_packer
```

### Tests

Execute `pytest` to run the tests.

## Getting Started

Please follow the [installation procedure](#installation--usage) and then run the following:

```python

import vrt_lss_packer
from vrt_lss_packer.rest import ApiException
from pprint import pprint

# Defining the host is optional and defaults to https://api.edge7.veeroute.cloud
# See configuration.py for a list of all supported configuration parameters.
configuration = vrt_lss_packer.Configuration(
    host = "https://api.edge7.veeroute.cloud"
)

# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.

# Configure Bearer authorization (JWT): ApiKeyAuth
configuration = vrt_lss_packer.Configuration(
    access_token = os.environ["BEARER_TOKEN"]
)


# Enter a context with an instance of the API client
with vrt_lss_packer.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = vrt_lss_packer.PackApi(api_client)
    process_code = 'process_code_example' # str | Unique process identifier.

    try:
        # Cancel calculation
        api_instance.cancel_pack_calculation(process_code)
    except ApiException as e:
        print("Exception when calling PackApi->cancel_pack_calculation: %s\n" % e)

```

## Documentation for API Endpoints

All URIs are relative to *https://api.edge7.veeroute.cloud*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*PackApi* | [**cancel_pack_calculation**](docs/PackApi.md#cancel_pack_calculation) | **DELETE** /packer/pack/calculation-async/{process_code} | Cancel calculation
*PackApi* | [**delete_pack_result**](docs/PackApi.md#delete_pack_result) | **DELETE** /packer/pack/result/{process_code} | Result removal
*PackApi* | [**read_pack_result**](docs/PackApi.md#read_pack_result) | **GET** /packer/pack/result/{process_code} | Getting the result
*PackApi* | [**read_pack_state**](docs/PackApi.md#read_pack_state) | **GET** /packer/pack/state/{process_code} | Calculation state
*PackApi* | [**run_pack_calculation**](docs/PackApi.md#run_pack_calculation) | **POST** /packer/pack/calculation | Packing (SYNC)
*PackApi* | [**run_pack_calculation_async**](docs/PackApi.md#run_pack_calculation_async) | **POST** /packer/pack/calculation-async | Packing (ASYNC)
*PackApi* | [**run_pack_validation**](docs/PackApi.md#run_pack_validation) | **POST** /packer/pack/validation | Data validation
*SystemApi* | [**check**](docs/SystemApi.md#check) | **GET** /packer/system/check | Checking the availability
*SystemApi* | [**file**](docs/SystemApi.md#file) | **GET** /packer/file/{filename} | Getting the documentation
*SystemApi* | [**version**](docs/SystemApi.md#version) | **GET** /packer/system/version | Getting the service version


## Documentation For Models

 - [Attribute](docs/Attribute.md)
 - [CalculationAsyncResult](docs/CalculationAsyncResult.md)
 - [CalculationInfo](docs/CalculationInfo.md)
 - [CalculationSettings](docs/CalculationSettings.md)
 - [CalculationState](docs/CalculationState.md)
 - [CalculationStatus](docs/CalculationStatus.md)
 - [CheckResult](docs/CheckResult.md)
 - [Coordinates](docs/Coordinates.md)
 - [Dimensions](docs/Dimensions.md)
 - [General402](docs/General402.md)
 - [General404](docs/General404.md)
 - [General404Detail](docs/General404Detail.md)
 - [General429](docs/General429.md)
 - [General500](docs/General500.md)
 - [PackResult](docs/PackResult.md)
 - [PackSettings](docs/PackSettings.md)
 - [PackStatistics](docs/PackStatistics.md)
 - [PackTask](docs/PackTask.md)
 - [Package](docs/Package.md)
 - [PackageLayout](docs/PackageLayout.md)
 - [PackageStatistics](docs/PackageStatistics.md)
 - [PackageType](docs/PackageType.md)
 - [Packer400WithErrorsAndWarnings](docs/Packer400WithErrorsAndWarnings.md)
 - [PackerEntityError](docs/PackerEntityError.md)
 - [PackerEntityErrorType](docs/PackerEntityErrorType.md)
 - [PackerEntityPath](docs/PackerEntityPath.md)
 - [PackerEntityType](docs/PackerEntityType.md)
 - [PackerEntityWarning](docs/PackerEntityWarning.md)
 - [PackerEntityWarningType](docs/PackerEntityWarningType.md)
 - [PackerValidateResult](docs/PackerValidateResult.md)
 - [Product](docs/Product.md)
 - [ProductGroupLayout](docs/ProductGroupLayout.md)
 - [ProductLayout](docs/ProductLayout.md)
 - [SchemaError](docs/SchemaError.md)
 - [Service](docs/Service.md)
 - [Tracedata](docs/Tracedata.md)
 - [UnpackedItems](docs/UnpackedItems.md)
 - [VersionResult](docs/VersionResult.md)


<a id="documentation-for-authorization"></a>
## Documentation For Authorization


Authentication schemes defined for the API:
<a id="ApiKeyAuth"></a>
### ApiKeyAuth

- **Type**: Bearer authentication (JWT)


## Author

support@veeroute.com


