semvec/pypi-packages huggingface dataset:
ICF-CatDorm 0.1.0
Package to analyse the data of CatTracker in Dormagen SMR, containing steady-state extraction and parameter clustering.
Requires Python: >=3.7

ICF CatDorm package

This package is mainly organised in 5 steps corresponding to the analysis of the CatTracker data :
- downloading raw data from SCADA
- computing and downloading useful statistics
- extracting steady states with various parameterization choices
- cluster the steady states according to chosen variables
- plot the CatTracker data in form of temperature evolution against time

The use of these functions will require the downloading of various libraries such as
- pandas
- matplotlib
- numpy
- sklearn
- yaml
- seaborn
- PIconnect
getir-locals-integration-swagger-client 0.0.1
Getir-Locals Integration Swagger Documentation
Keywords: Swagger,Getir-Locals Integration Swagger Documentation

    This documentation is created by Getir Developers for Getir-Locals Integration.For this integration, you need to take CLIENT NAME and CLIENT SECRET keys from Getir-dev team and use these keys for authentication. You also need to use access token provided after successful login to be able to use all other endpoints  You can view information about the active order through /orders/unapproved endpoints. The status of the order is managed via verify, prepare, handover and cancel endpoints. Details on order management are as follows:  For orders to be made by the Getir courier, the flow is as follows:  Supplier confirms order --verify&lt;br /&gt;Supplier prepares order --prepare (1-2 minutes must pass before delivery)&lt;br /&gt;Supplier hands over the order to Getir courier --handover&lt;br /&gt;For Getir delivery, transactions are made by the Getir courier after handover.  A valid reason will be requested from the supplier to cancel an order. Valid reasons may vary depending on the instant status of the order. For this reason, before canceling an order, you have to get instant valid order cancellation reasons from /orders/{orderId}/cancel-options endpoint.   # noqa: E501
kucoin-websocket 1.0.3
Faster deployment is what we want!
Requires Python: >=3.8

# kucoin-websocket
Multi-threaded KuCoin WebSocket with self-management mechanisms to ensure stable streaming at all times. More control and abstraction than the native [kucoin-python-sdk](https://github.com/Kucoin/kucoin-python-sdk).
> **Note**
> This package is still under development and probably will not contain the full functionality described under [KuCoin documentation](https://docs.kucoin.com/#websocket-feed)!

## Features
### Subscription Strategy
According to [KuCoin documentations](https://docs.kucoin.com/#request-rate-limit), maximum number of batch subscriptions is **100 topics per 10 seconds**. KuCoin policy is to ignore the rest of the subscriptions if the limitation is violated. To avoid this behavior, a configurable **Backoff Strategy** is used to keep congestion low while allowing for asynchronous subscription.

### Auto-connect on Errors
There are numerous errors that can occur during the stream ([KuCoin errors](https://docs.kucoin.com/#request)) that can interrupt the stream flow. Most of the errors are *TimeOut* or *ConnectionClosed* and such errors are generally not a big concern due to network volatility, so the WebSocket tries to reconnect at most 5 times before giving up.

### Auto-Token Renewal
Currently, KuCoin tokens expire after **24 hours** ([KuCoin FAQ](https://docs.kucoin.com/#faq)) and the stream is stopped immediately. To overcome this, WebSocket details like *token* and *endpoint* are renewed after an interval, so that the connection stays alive at all time. Default interval is set to **12 hours** to leave no room for error.

### Limitless Subscriptions
KuCoin has a limitation of maximum **300 active subscriptions** at the time ([KuCoin FAQ](https://docs.kucoin.com/#faq)). To scale the subscriptions, multiple WebSockets are automatically created on parallel threads that at most **200 subscriptions**. (*to my experience, better not challenge the threshold* ^_^)

## Credits
- [python-kucoin](https://github.com/sammchardy/python-kucoin) by sammchardy

## 🤝 Contribution 
Your contributions are welcomed, as always!
robotframework-testrail-library-nerajarolle 0.0.8
A robot framework library to integrate robot tests with Testrail
Requires Python: >=3.8

# robotframework-testrail-library

This is a robot framework library to be used with Testrail API.

The library requires a Testrail username and API key, which needs to be created in testrail. The credentials are passed to the library with the `connect to testrail` keyword. So library can be imported without credentials, and it will connect only when a keyword is called.

Some keywords are trying to find a suite/run... by name, and they assume the name is unique, given some conditions. For example it is assumed that in same project there is only one run with a specific name. This can be overriden by providing a special attribute for the class. Some adding keywords have logic to find a particular run or suite by either id or name, and if name is used and there are duplicates, then either exception is raised (default) or empty dictionary is returned (in case expected duplicates is True), since we cannot be sure which object we are adding stuff.

Deleting keywords are currently not supported, for safety reasons, as accidentally deleted wrong objects, may delete hundreds of other related objects, so it is preferrable to delete things manually in Testrail.

Installation:
```
pip install robotframework-testrail-library-nerajarolle
```

Example Usage:
```
*** Settings ***
Library   TestrailLibrary  
Suite Setup    connect to testrail    ${SERVER}   
...                 ${TESTRAIL_USERNAME}   ${TESTRAIL_KEY}

*** Test Cases ***
Test Get Project
    [Tags]   project   id
    ${project}   Get Project     1 
    IF  ${project}
        Log To Console  ${project}
    ELSE
        Log To Console    Project id 1 Not found  
    END

Test Get Project by Name
    [Tags]   project  name
    ${project}   Get Project by Name    TA Test Project  
    IF  ${project}
        Log To Console  ${project}
    ELSE
        Log To Console   TA Test Project Not found  
    END

Test Update Run Status 
    [Tags]   update_status
    ${params}   Create Dictionary    project_id=${PROJECT_ID}   run_name=Run number 1  
    ...   suite_name=${SUITE_NAME}   test_name=${TEST_NAME}   section_name=${SUITE_NAME}
    ...   elapsed=20s   comment=a comment   
    ${response}  set status on test run   status_id=1   &{params}  
    IF  ${response}
        log To Console    ${response}
    ELSE 
        log to console    Failed to update run ${response}
    END  

```
python-aes256 1.0.5
ENCRYPT DECRYPT AES256
Keywords: encrypt,decrypt,string,manipulation

# ENCRYPT DECRYPT AES 256bit
----------------------------

Install to your environment :
    > pip install python-aes256

How to use :
------------
    Test using python shell :
    > python manage.py shell
    > from pyaes256 import PyAES256
    > a = PyAES256()
    > password = 'g_7me8rl2m#a_h2oresgt2#ni=3_4*!ai*=rtsq)yi!g7_5-51'     

    Encryption Process :
    > enc = a.encrypt('Secret Text',password)
    > print('Encrypt: ', enc)
        Encrypt: {'url': 'REhHcFNaN0tPSzVqNm50UUJ0T2g5dz09', 'salt': b'k4/Ai7zJKUssvup2c+2+3w==', 'iv': b'34YtC6XqlQjo8UfWc4yNcA=='}

    Decryption Process :
    > dec = a.decrypt(url='REhHcFNaN0tPSzVqNm50UUJ0T2g5dz09', salt=b'k4/Ai7zJKUssvup2c+2+3w==', iv=b'34YtC6XqlQjo8UfWc4yNcA==', password=password)
    > print('Decrypt: ', dec)
        Decrypt: b'Secret Text'
    > origin = bytes.decode(dec)
    > print('Origin: ', origin)
        Origin: 'Secret Text'


# Avalanche Effect :
--------------------

How to use :
------------
    Test using python shell :
    > python manage.py shell
    > from pyavalanche import PyAvalanche
    
    > chipper1 = 'Nk9iL05BQmM5bnRES3drVGc0NHZRdz09'
    > chipper2 = 'Z3VFbi9lWDJtS1B5UzE4TGVsMzRHQT09'
    > print('Chipper 1 = ', chipper1)
    > print('Chipper 2 = ', chipper2)
    > ava = PyAvalanche()
    > result = ava.avalanche_effect(chipper1, chipper2)

    Print result :
    > print(result,'%')
        50.0 %
    > print("If more than 50% output bits have changed then the algo have good avalanche effect.")