semvec/pypi-packages huggingface dataset:
webdriver-setup 1.1.0
Easy to use webdriver instance creation api
Requires Python: >=3.6
Keywords: webdriver,selenium,browser automation,testing,test automation

webdriver-setup
===============
Easy to use webdriver instance creation api.

This package prevents manually downloading and setup of the webdriver binaries
by automatically finding and installing the related webdriver binary, and
provides an easy to use instance creation api. It uses
[webdriver_manager](https://pypi.org/project/webdriver-manager/) package.


### Supported browsers

* Firefox
* Chrome
* Opera
* Safari
* Ie
* Edge (Chromium based)


## Installation

`pip install webdriver-setup`


## Usage

```python
from webdriver_setup import get_webdriver_for

# create driver instance
driver = get_webdriver_for("firefox")

# start the browser with the given url
driver.get("https://www.python.org/")

# print the title of the website
print(f"Title: {driver.title}")

# quit browser
driver.quit()
```

You can also pass all the keyworded arguments as you would normally do with the Selenium webdriver instances.

```python
from webdriver_setup import get_webdriver_for
from selenium.webdriver import FirefoxOptions

firefox_options = FirefoxOptions()
firefox_options.add_argument("--headless")

driver = get_webdriver_for("firefox", options=firefox_options)
```


### WDM Config

If you don't want to see *webdriver_manager* logs, set environment variable "WDM_LOG_LEVEL" to "0"

```python
import os

os.environ["WDM_LOG_LEVEL"] = "0"
```

If you don't pass the `cache_valid_range` option, it will be set to 7 days by default.
You can change it as follows

```python
from webdriver_setup import get_webdriver_for

driver = get_webdriver_for("firefox", cache_valid_range=3)
```
nbgitpuller-downloader-googledrive 0.1.0
Downloads compressed archives from Google Drive for nbgitpuller
Requires Python: >=3.8

# nbgitpuller - google drive download plugin

Google Drive uses a uniquely formatted URL to identify files and folders. As a result,
programmatically downloading from Google Drive requires special handling. The
implementation of the download plugin for Google Drive handles these requirements.

The plugin is expecting a Google Drive URL in this format:
- https://drive.google.com/file/d/1p3m0h5UGWdLkVVP0SSJH6j1HpG2yeDlU/view?usp=sharing

Please note that the file(compressed archive) must have permissions set so that anyone
with the link can view the file.

## Installation

```shell
python3 -m pip install nbgitpuller-downloader-googledrive
```
nbgitpuller-downloader-dropbox 0.1.0a1
Downloads compressed archives from DropBox for nbgitpuller
Requires Python: >=3.8

# nbgitpuller - dropbox download plugin

Dropbox file/folder names add the dl=0 URL query parameter to their URLs.

This plugin expects the Dropbox URL included in the nbgitpuller link to look like this:
- https://www.dropbox.com/s/qou3g7hf41vq6sw/materials-sp20-external.zip?dl=0

This plugin replaces dl=0 with dl=1 and then downloads the file using the 
nbgitpuller's handle_files_helper function.

Please note that the file(compressed archive) must have permissions set so that anyone
with the link can view the file.

## Installation

```shell
python3 -m pip install nbgitpuller-downloader-dropbox
```
nbgitpuller-downloader-generic-web 0.1.0a1
Downloads compressed archives from any generic webserver
Requires Python: >=3.8

# nbgitpuller - generic web download plugin

This plugin is used by nbgitpuller to download archives
from any publicly available URL.

This plugin expects the Dropbox URL included in the nbgitpuller link to look like this:
- https://www.example.com/materials-sp20-external.zip

In this plugin, there is no special handling of the URL so it must point directly to
the archive and the archive must by accessible to anyone with the link.

## Installation

```shell
python3 -m pip install nbgitpuller-downloader-generic-web
```
example-pkg-muzudho 0.0.1
A small example package
Requires Python: >=3.6

# state-machine-py

状態遷移マシン

## Install

```shell
python.exe -m pip install --index-url https://test.pypi.org/simple/ --no-deps state_machine_py
                                                                              ----------------
                                                                              YOUR-API-NAME-HERE
```

## Publish

📖 [Pythonスクリプトってどうやってパブリッシュするんだぜ（＾～＾）？](https://crieit.net/drafts/61a3496b73b42)  

```shell
# Build
python.exe -m build

# Upload
python.exe -m twine upload --repository testpypi dist/* --verbose
```
flask-restful-helper 1.3.10
A small flask restful framework

# Installation


# Usage
## Api 開發


###初始化專案
```shell
flask admin start-project
```
依照後續指示建置基本專案


### 啟用 system app

```shell
flask admin start-system-app
```

此app包含基本用戶帳號，RBAC權限管理模組以及多國語言模組

### 啟用 task app 
```shell
flask admin start-task-app
```
此app包含任務對列模組

### 新增  app
```shell
flask admin start-new-app
```
新增一個乾淨的app，會自動幫忙建置好app架構


### 資料庫遷移
第一次使用
```shell
flask db init
flask db migrate
flask db upgrade
```
此後
```shell
flask db migrate
flask db upgrade
```
對資料庫模型進行變動時，皆需要進行資料庫遷移來達成更新資料庫。

## API test

### Create Role Template

下指令

   ```sh
   flask admin start-project
   ```

會同時把API測試的role template也建起來(建立一個tests資料夾)<br/>

### 設定檔說明

**config/dev.yaml**中，<br/>
變數說明：<br/>

1. TEST_INIT_DB_ON_TEST：每次測試前是否要初始化資料庫資料<br/>
2. TEST_EXECUTE_ALL_TEST：是否要執行所有測試（沒有要執行所有測試的話，需自行在manage.py中撰寫程式碼）<br/>
3. TEST_ACCOUNT：設定各role的帳密

### 建立app底下的test

下指令

   ```sh
   flask admin start-system-app
   ```

apps/system/tests/test.py為測試範例，可以參考

### 執行所有測試

在**config/dev.yaml**中，將TEST_EXECUTE_ALL_TEST設定為True，<br/>
下指令

   ```sh
   python manage.py test
   ```

時，就會執行所有測試，這邊說明一下manage.py中的程式碼，<br/>
在test function中，app.config['TEST_EXECUTE_ALL_TEST']為True時，<br/>
會先去apps資料夾底下的每個app下面的tests/test.py中，將所有class抓出來，<br/>
讓這些class的metaclass都改成tests/meta_class的MetaClass，<br/>
為的是保證所有test case的function name都是唯一的（在function名後面加上module名以及class名的後綴），這樣才能保證都會執行到，<br/>
在這邊先稱這些class為app_test_classes， 接著，在test/roles底下，會抓出所有py檔的class，<br/>
所以有幾個role就請增加幾個「role名_test.py」，內容請參照superuser_test.py，<br/>
並且在config/dev.yaml中新增role的帳密 然後會將這些class都去繼承app_test_classes，讓所有role都去測所有test case。<br/>
這邊說明一下，role的class會去繼承tests/base.py的TestBase，<br/>
TestBase class繼承了flask_testing的TestCase，<br/>
所以必須override create_app function，此function必須回傳一個Flask instance，<br/>
並override setUp function(每個測試執行前會先執行setUp)，<br/>
裡面包含了針對資料庫做資料的初始化(清空資料，insert初始資料)，<br/>
並且獲取此role的帳密，call login API做登入的動作(獲取token)，<br/>
**tests/functions/sqls**請放入資料庫的初始資料的insert sql。<br/>

### 執行單一測試

在**config/dev.yaml**中，將TEST_EXECUTE_ALL_TEST設定為False，<br/>
並且在manage.py裡，要將所需要測的role class以及app test class import進來，<br/>
並且讓role class去繼承app test class，最後single_test.addTest裡要加進去。
PyCombs 1.0.0
A package that generates all possible combinations in a given set as a list
Requires Python: >=3.0

# The package
combs is a package used to generate all possible combinations of a given length `k` 
on a given set. The set is given as a list, and `k` must be equal to 0 or positive. 

# Usage examples 

## With integers 
```python
from combs import combinations

l = [89,32,6,7]
k = 2
combs = combinations.find_combinations(l, k)
print(combs)
```
Output :
```
[[89, 32], [89, 6], [89, 7], [32, 6], [32, 7], [6, 7]]
```

## With strings
```python
from combs import combinations

l = ["github", "gitlab", "azuredevops", "svn"]
k = 3
combs = combinations.find_combinations(l, k)
print(combs)
```

Output :
```
[['github', 'gitlab', 'azuredevops'], ['github', 'gitlab', 'svn'], ['github', 'azuredevops', 'svn'], ['gitlab', 'azuredevops', 'svn']]
```
PyCombs-YM 1.0.0
A package that generates all possible combinations in a given set as a list
Requires Python: >=3.0

# The package
combinations is a package used to generate all possible combinations of a given length `k` 
on a given set. The set is given as a list, and `k` must be equal to 0 or positive. 

# Usage examples 
```python
from combinations import combinations

l = [89,32,6,7]
k = 2
combs = combinations.find_combinations(l, k)
print(combs)
```
Output :
```
[[89, 32], [89, 6], [89, 7], [32, 6], [32, 7], [6, 7]]
```