# packages

pkgId: 1ac22bf47c798ff17cfc3e7729929a79ef2ed831b3576d7368f7b0f7a2e4894c
name: python-asposecellscloud
arch: src
version: 24.10
epoch: 0
release: 1
url: https://github.com/aspose-cells-cloud/aspose-cells-cloud-python
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asposecellscloud-24.10-1.src.rpm
checksum_type: sha256
summary:
  Python Cloud SDK wraps Aspose.Cells REST API so you could seamlessly integrate Microsoft Excel® spreadsheet generation, manipulation, conversion & inspection features into your own Python applications.

description:
  ![](https://img.shields.io/badge/REST%20API-v3.0-lightgrey) ![PyPI](https://img.shields.io/pypi/v/asposecellscloud) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/asposecellscloud) ![PyPI - Downloads](https://img.shields.io/pypi/dm/asposecellscloud)  [![GitHub license](https://img.shields.io/github/license/aspose-cells-cloud/aspose-cells-cloud-python)](https://github.com/aspose-cells-cloud/aspose-cells-cloud-python/blob/master/LICENSE) ![GitHub commits since latest release (by date)](https://img.shields.io/github/commits-since/aspose-cells-cloud/aspose-cells-cloud-python/24.10)

  Aspose.Cells Cloud for Python enables you to handle various aspects of Excel files, including cell data, styles, formulas, charts, pivot tables, data validation, comments, drawing objects, images, hyperlinks, and so on. Additionally, it supports operations such as splitting, merging, repairing, and converting to other compatible file formats.



  Enhance your Python applications with the [Aspose.Cells Cloud](https://products.aspose.cloud/cells/python) , enabling seamless integration with [Excel, ODS, CSV, Json and other spreadsheet document formats](https://docs.aspose.cloud/cells/supported-file-formats/). With its powerful APIs, developers can effortlessly read, convert, create, edit, and manipulate the contents of Excel documents without the need for any office software installed on the machine.



  - File Manipulation: Users can upload, download, delete, and manage Excel files stored in the cloud.
  - Formatting: Supports formatting of cells, fonts, colors, and alignment modes in Excel files to cater to users' specific requirements.
  - Data Processing: Powerful functions for data processing including reading, writing, modifying cell data, performing formula calculations, and formatting data.
  - Formula Calculation: Built-in formula engine handles complex formula calculations in Excel and returns accurate results.
  - Chart Manipulation: Users can create, edit, and delete charts from Excel files for data analysis and visualization needs.
  - Table Processing: Offers robust processing capabilities for various form operations such as creation, editing, formatting, and conversion, meeting diverse form processing needs.
  - Data Verification: Includes data verification function to set cell data type, range, uniqueness, ensuring data accuracy and integrity.
  - Batch Processing: Supports batch processing of multiple Excel documents, such as batch format conversion, data extraction, and style application..
  - Import/Export: Facilitates importing data from various sources into spreadsheets and exporting spreadsheet data to other formats.
  - Security Management: Offers a range of security features like data encryption, access control, and permission management to safeguard the security and integrity of spreadsheet data.



  Full list of issues covering all changes in this release:

  - Add the new feature about removing characters on TextProcessingController.



  |**Format**|**Description**|**Load**|**Save**|
  | :- | :- | :- | :- |
  |[XLS](https://docs.fileformat.com/spreadsheet/xls/)|Excel 95/5.0 - 2003 Workbook.|&radic;|&radic;|
  |[XLSX](https://docs.fileformat.com/spreadsheet/xlsx/)|Office Open XML SpreadsheetML Workbook or template file, with or without macros.|&radic;|&radic;|
  |[XLSB](https://docs.fileformat.com/spreadsheet/xlsb/)|Excel Binary Workbook.|&radic;|&radic;|
  |[XLSM](https://docs.fileformat.com/spreadsheet/xlsm/)|Excel Macro-Enabled Workbook.|&radic;|&radic;|
  |[XLT](https://docs.fileformat.com/spreadsheet/xlt/)|Excel 97 - Excel 2003 Template.|&radic;|&radic;|
  |[XLTX](https://docs.fileformat.com/spreadsheet/xltx/)|Excel Template.|&radic;|&radic;|
  |[XLTM](https://docs.fileformat.com/spreadsheet/xltm/)|Excel Macro-Enabled Template.|&radic;|&radic;|
  |[XLAM](https://docs.fileformat.com/spreadsheet/xlam/)|An Excel Macro-Enabled Add-In file that's used to add new functions to Excel.| |&radic;|
  |[CSV](https://docs.fileformat.com/spreadsheet/csv/)|CSV (Comma Separated Value) file.|&radic;|&radic;|
  |[TSV](https://docs.fileformat.com/spreadsheet/tsv/)|TSV (Tab-separated values) file.|&radic;|&radic;|
  |TabDelimited|Tab-delimited text file, same with TSV file.|&radic;|&radic;|
  |[TXT](https://docs.fileformat.com/word-processing/txt/)|Delimited plain text file.|&radic;|&radic;|
  |[HTML](https://docs.fileformat.com/web/html/)|HTML format.|&radic;|&radic;|
  |[MHTML](https://docs.fileformat.com/web/mhtml/)|MHTML file.|&radic;|&radic;|
  |[ODS](https://docs.fileformat.com/spreadsheet/ods/)|ODS (OpenDocument Spreadsheet).|&radic;|&radic;|
  |SpreadsheetML|Excel 2003 XML file.|&radic;|&radic;|
  |[Numbers](https://docs.fileformat.com/spreadsheet/numbers/)|The document is created by Apple's "Numbers" application which forms part of Apple's iWork office suite, a set of applications which run on the Mac OS X and iOS operating systems.|&radic;||
  |[JSON](https://docs.fileformat.com/web/json/)|JavaScript Object Notation|&radic;|&radic;|
  |[DIF](https://docs.fileformat.com/spreadsheet/dif/)|Data Interchange Format.| |&radic;|
  |[PDF](https://docs.fileformat.com/pdf/)|Adobe Portable Document Format.| |&radic;|
  |[XPS](https://docs.fileformat.com/page-description-language/xps/)|XML Paper Specification Format.| |&radic;|
  |[SVG](https://docs.fileformat.com/page-description-language/svg/)|Scalable Vector Graphics Format.| |&radic;|
  |[TIFF](https://docs.fileformat.com/image/tiff/)|Tagged Image File Format| |&radic;|
  |[PNG](https://docs.fileformat.com/image/png/)|Portable Network Graphics Format| |&radic;|
  |[BMP](https://docs.fileformat.com/image/bmp/)|Bitmap Image Format| |&radic;|
  |[EMF](https://docs.fileformat.com/image/emf/)|Enhanced metafile Format| |&radic;|
  |[JPEG](https://docs.fileformat.com/image/jpeg/)|JPEG is a type of image format that is saved using the method of lossy compression.| |&radic;|
  |[GIF](https://docs.fileformat.com/image/gif/)|Graphical Interchange Format| |&radic;|
  |[MARKDOWN](https://docs.fileformat.com/word-processing/md/)|Represents a markdown document.| |&radic;|
  |[SXC](https://docs.fileformat.com/spreadsheet/sxc/)|An XML based format used by OpenOffice and StarOffice|&radic;|&radic;|
  |[FODS](https://docs.fileformat.com/spreadsheet/fods/)|This is an Open Document format stored as flat XML.|&radic;|&radic;|
  |[DOCX](https://docs.fileformat.com/word-processing/docx/)|A well-known format for Microsoft Word documents that is a combination of XML and binary files.||&radic;|
  |[PPTX](https://docs.fileformat.com/presentation/pptx/)|The PPTX format is based on the Microsoft PowerPoint open XML presentation file format.||&radic;|




  To begin with Aspose.Cells Cloud, here's what you need to do:

  1. Sign up for an account at [Aspose for Cloud](https://dashboard.aspose.cloud/#/apps) to obtain your application details.
  2. Install the Aspose.Cells Cloud Python package from the [pypi](https://pypi.org/).

  ```bash
     pip install asposecellscloud
  ```

  3. Use the conversion code provided below as a reference to add or modify your application.



  ```python
  import os
  import sys
  from asposecellscloud.apis.cells_api import CellsApi
  from asposecellscloud.models import *
  from asposecellscloud.requests import *

  api  = CellsApi(os.getenv('CellsCloudClientId'),os.getenv('CellsCloudClientSecret'),"v3.0",os.getenv('CellsCloudApiBaseUrl'))
  remote_folder = 'TestData/In'

  local_name = 'Book1.xlsx'
  remote_name = 'Book1.xlsx'

  format = 'csv'

  mapFiles = {
      local_name: os.path.dirname(os.path.realpath(__file__)) + "/../TestData/" +local_name
  }
  mapFiles = {
      local_name:  local_name
  }
  request =  UploadFileRequest( mapFiles, remote_folder + '/' + remote_name,storage_name= '')
  api.upload_file(request)

  request =  PutConvertWorkbookRequest( mapFiles,format= format)
  api.put_convert_workbook(request)

  ```



  | .NET | Java | PHP | Ruby | Node.js | Android | Swift | Perl | GO |
  |---|---|---|---|---|---|---|---|---|
  | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-dotnet) | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-java) | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-php) | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-ruby)  | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-node) | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-android)  | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-swift) | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-perl) | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-go) |
  | [NuGet](https://www.nuget.org/packages/Aspose.Cells-Cloud/) | [Maven](https://repository.aspose.cloud/webapp/#/artifacts/browse/tree/General/repo/com/aspose/aspose-cells-cloud) | [Composer](https://packagist.org/packages/aspose/cells-sdk-php) | [GEM](https://rubygems.org/gems/aspose_cells_cloud)  | [NPM](https://www.npmjs.com/package/asposecellscloud) | [Maven](https://repository.aspose.cloud/webapp/#/artifacts/browse/tree/General/repo/com/aspose/aspose-cells-cloud-android) | [POD](https://cocoapods.org/pods/AsposeCellsCloud) |  [CPAN](https://metacpan.org/release/AsposeCellsCloud-CellsApi) | [GO](https://pkg.go.dev/github.com/aspose-cells-cloud/aspose-cells-cloud-go/v20?tab=overview) |


  [Product Page](https://products.aspose.cloud/cells/python) | [Documentation](https://docs.aspose.cloud/cells/) | [Live Demo](https://products.aspose.app/cells/family) | [API Reference](https://apireference.aspose.cloud/cells/) | [Code Samples](https://github.com/aspose-cells-cloud/aspose-cells-cloud-python/tree/master/test) | [Blog](https://blog.aspose.cloud/category/cells/) | [Free Support](https://forum.aspose.cloud/c/cells) | [Free Trial](https://dashboard.aspose.cloud/#/apps)





  - Add word case function for TextProcessingController.
  - Support to export Worksheet to HTML with cell address or id.

  - Add the text trim feature on Cells Cloud Services.



  - Add a new feature about adding text content.
  - Add get access token by client id and client secret.



  - Optimize load data function of data transformation.
  - Optimize the data conversion applied steps.



  - Add merge queries method for loading data of data transformation.
  - Optimize chart data model.



  - Support data transformation.



  - Support data deduplication.
  - Support data filling.
  - Support to delete incomplete rows.
  - Support data cleansing.



  - Support data deduplication.



  - Fixed spelling mistakes for several functions.
  - Add the PostFitTallToPages method for page setup controller.
  - Add the PostFitWideToPages method for page setup controller.
  - Optimize save options about paginated.



  - Conversion APIs add region parameter.
  - Protection APIs add region parameter.
  - Assemble data API adds region parameter.
  - Merge files API adds region parameter.
  - Split files API adds region parameter.
  - Import data API adds region parameter.
  - Watermark API adds region parameter.
  - Clear object API adds region parameter.
  - Reverse data API adds region parameter.
  - Rotate data API adds region parameter.



  - Optimize import xml data into Excel file.
  - Optimize import json data into Excel file.
  - Remove deprecated functions, class and test case.



  - Fix protect workbook request.
  - Fix range copy API.
  - Optimize workbook protect API.



  - Support to data sorting on range controller.
  - Support to remove duplicate data on list object.
  - Support to insert slicer for list object.
  - Optimize list object and related objects.



  - Support to lock API.
  - Optimize protect API.



  - Support to repair API.
  - Remove GetExtractBarcodes API.



  - Support to batch lock multi-files.
  - Support to batch unlock multi-files.
  - Support to protect lock multi-files.
  - Support to split lock multi-files.
  - Fix put document property api.



  - Fix few method names for spelling error.



  -Add import xml data api.
  -Add export xml data api.



  - Adopt the new model.



  - Support chart axis operations.



  - Add api for converting workbook to json.
  - Add api for converting workbook to sql.
  - Add api for converting workbook to csv.



  - Add api for converting workbook to pptx.
  - Add api for converting workbook to html.
  - Add api for converting workbook to markdown.



  - Add api for converting workbook to png.
  - Add api for converting workbook to pdf.
  - Add api for converting workbook to docx



  - Support transposing Excel Rows to Columns.



  - Add 4 kinds of Save Option.
  - Add the checkExcelRestriction parameter for multiple APIs.



  - Add a new API for getting barcode description.



  - Export API adds extended query parameters.
  - Convert API adds extended query parameters.
  - SaveAs API adds extended query parameters.
  - Get Workbook API adds extended query parameters.



  -Add new API about adding digital signature for cloud file.



  - Update return value for the DeleteUnprotectWorksheet API on Aspose.Cells Cloud.
  - Update return value for the PutProtectWorksheet API on Aspose.Cells Cloud.
  - Update return value for the PostSetCellHtmlString API on Aspose.Cells Cloud.
  - Update return value for the PostUpdateWorksheetProperty API on Aspose.Cells Cloud.



  - SaveAs API add the parameter of target storage name.
  - Workbok merged API add the parameter of merged file storage name.
  - Workbok split API add the parameter of target storage name
  - Workbok smart marker API add the parameter of output storage name.
  - Batch convert API add the parameters of intput and output storage name.
  - Remove AutoshapesController from Aspose.Cells Cloud.
  - Rename LiteCellsApi to LightCellsApi.



  - Improvement for conversion API.
  - Improvement for batch data import to support to set cell formula.
  - Improvement for setting row height and column wight to support to set multi-rows and multi-columns.
  - Support to set cell formula in batch data import.
  - Add a new API for updating the list column.
  - Add a new API for reversing columns and rows.
  - Add new APIs for grouping and ungrouping shapes.



  - Add new API for workbook get page count on Aspose.Cells Cloud.
  - Add new API for worksheet get page count on Aspose.Cells Cloud.
  - Add new API for compress excel file on Aspose.Cells Cloud.
  - Add new feature for replace API.



  - Add new API for support delete multiple worksheets in a single call.
  - Add new API for supports batch convert excel files.



  - Correct the return type of the following REST APIs.



  - Improvement for getting list object Api.
  - Add import Api.



  - Fix search API.
  - Fix split API.



  - Improvement document properties.
  - Update the return value of put/post/delete.
  - Improvement export API.
  - Improve split API.
  - Improve merge API.
  - Improve unlock API.
  - Improve protected API.
  - Improve watermark API.



  - Support autofit columns for workbook and worksheet.
  - Improve add and post row/column APIs.
  - Improve Task APIs.



  - Support to convert worksheet on task API
  - Support to add and delete cell or range in worksheet.



  - Support Aspose.Cells Cloud for Docker.



  - Support to upload large file.



  - Support sparkline groups.
  - Add API about updating pivot field.



  - Aspose.Cells Cloud API calls are not working with explicit storage name but only default storage.
  - Get output file size without downloading during conversion.
  - Enhancement for CellsShapesPutWorksheetShape API.


pkgId: 9a60f6c7400404393440c47fae7cb7eda52e16ede83e958d5823300c7d3c2b9b
name: python-asposecellscloud
arch: src
version: 24.11
epoch: 0
release: 1
url: https://github.com/aspose-cells-cloud/aspose-cells-cloud-python
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asposecellscloud-24.11-1.src.rpm
checksum_type: sha256
summary:
  Python Cloud SDK wraps Aspose.Cells REST API so you could seamlessly integrate Microsoft Excel® spreadsheet generation, manipulation, conversion & inspection features into your own Python applications.

description:
  ![](https://img.shields.io/badge/REST%20API-v3.0-lightgrey) ![PyPI](https://img.shields.io/pypi/v/asposecellscloud) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/asposecellscloud) ![PyPI - Downloads](https://img.shields.io/pypi/dm/asposecellscloud)  [![GitHub license](https://img.shields.io/github/license/aspose-cells-cloud/aspose-cells-cloud-python)](https://github.com/aspose-cells-cloud/aspose-cells-cloud-python/blob/master/LICENSE) ![GitHub commits since latest release (by date)](https://img.shields.io/github/commits-since/aspose-cells-cloud/aspose-cells-cloud-python/24.11)

  Aspose.Cells Cloud for Python enables you to handle various aspects of Excel files, including cell data, styles, formulas, charts, pivot tables, data validation, comments, drawing objects, images, hyperlinks, and so on. Additionally, it supports operations such as splitting, merging, repairing, and converting to other compatible file formats.



  Enhance your Python applications with the [Aspose.Cells Cloud](https://products.aspose.cloud/cells/python) , enabling seamless integration with [Excel, ODS, CSV, Json and other spreadsheet document formats](https://docs.aspose.cloud/cells/supported-file-formats/). With its powerful APIs, developers can effortlessly read, convert, create, edit, and manipulate the contents of Excel documents without the need for any office software installed on the machine.



  - File Manipulation: Users can upload, download, delete, and manage Excel files stored in the cloud.
  - Formatting: Supports formatting of cells, fonts, colors, and alignment modes in Excel files to cater to users' specific requirements.
  - Data Processing: Powerful functions for data processing including reading, writing, modifying cell data, performing formula calculations, and formatting data.
  - Formula Calculation: Built-in formula engine handles complex formula calculations in Excel and returns accurate results.
  - Chart Manipulation: Users can create, edit, and delete charts from Excel files for data analysis and visualization needs.
  - Table Processing: Offers robust processing capabilities for various form operations such as creation, editing, formatting, and conversion, meeting diverse form processing needs.
  - Data Verification: Includes data verification function to set cell data type, range, uniqueness, ensuring data accuracy and integrity.
  - Batch Processing: Supports batch processing of multiple Excel documents, such as batch format conversion, data extraction, and style application..
  - Import/Export: Facilitates importing data from various sources into spreadsheets and exporting spreadsheet data to other formats.
  - Security Management: Offers a range of security features like data encryption, access control, and permission management to safeguard the security and integrity of spreadsheet data.



  Full list of issues covering all changes in this release:

  - Add convert text feature on TextProcessingController.



  |**Format**|**Description**|**Load**|**Save**|
  | :- | :- | :- | :- |
  |[XLS](https://docs.fileformat.com/spreadsheet/xls/)|Excel 95/5.0 - 2003 Workbook.|&radic;|&radic;|
  |[XLSX](https://docs.fileformat.com/spreadsheet/xlsx/)|Office Open XML SpreadsheetML Workbook or template file, with or without macros.|&radic;|&radic;|
  |[XLSB](https://docs.fileformat.com/spreadsheet/xlsb/)|Excel Binary Workbook.|&radic;|&radic;|
  |[XLSM](https://docs.fileformat.com/spreadsheet/xlsm/)|Excel Macro-Enabled Workbook.|&radic;|&radic;|
  |[XLT](https://docs.fileformat.com/spreadsheet/xlt/)|Excel 97 - Excel 2003 Template.|&radic;|&radic;|
  |[XLTX](https://docs.fileformat.com/spreadsheet/xltx/)|Excel Template.|&radic;|&radic;|
  |[XLTM](https://docs.fileformat.com/spreadsheet/xltm/)|Excel Macro-Enabled Template.|&radic;|&radic;|
  |[XLAM](https://docs.fileformat.com/spreadsheet/xlam/)|An Excel Macro-Enabled Add-In file that's used to add new functions to Excel.| |&radic;|
  |[CSV](https://docs.fileformat.com/spreadsheet/csv/)|CSV (Comma Separated Value) file.|&radic;|&radic;|
  |[TSV](https://docs.fileformat.com/spreadsheet/tsv/)|TSV (Tab-separated values) file.|&radic;|&radic;|
  |TabDelimited|Tab-delimited text file, same with TSV file.|&radic;|&radic;|
  |[TXT](https://docs.fileformat.com/word-processing/txt/)|Delimited plain text file.|&radic;|&radic;|
  |[HTML](https://docs.fileformat.com/web/html/)|HTML format.|&radic;|&radic;|
  |[MHTML](https://docs.fileformat.com/web/mhtml/)|MHTML file.|&radic;|&radic;|
  |[ODS](https://docs.fileformat.com/spreadsheet/ods/)|ODS (OpenDocument Spreadsheet).|&radic;|&radic;|
  |SpreadsheetML|Excel 2003 XML file.|&radic;|&radic;|
  |[Numbers](https://docs.fileformat.com/spreadsheet/numbers/)|The document is created by Apple's "Numbers" application which forms part of Apple's iWork office suite, a set of applications which run on the Mac OS X and iOS operating systems.|&radic;||
  |[JSON](https://docs.fileformat.com/web/json/)|JavaScript Object Notation|&radic;|&radic;|
  |[DIF](https://docs.fileformat.com/spreadsheet/dif/)|Data Interchange Format.| |&radic;|
  |[PDF](https://docs.fileformat.com/pdf/)|Adobe Portable Document Format.| |&radic;|
  |[XPS](https://docs.fileformat.com/page-description-language/xps/)|XML Paper Specification Format.| |&radic;|
  |[SVG](https://docs.fileformat.com/page-description-language/svg/)|Scalable Vector Graphics Format.| |&radic;|
  |[TIFF](https://docs.fileformat.com/image/tiff/)|Tagged Image File Format| |&radic;|
  |[PNG](https://docs.fileformat.com/image/png/)|Portable Network Graphics Format| |&radic;|
  |[BMP](https://docs.fileformat.com/image/bmp/)|Bitmap Image Format| |&radic;|
  |[EMF](https://docs.fileformat.com/image/emf/)|Enhanced metafile Format| |&radic;|
  |[JPEG](https://docs.fileformat.com/image/jpeg/)|JPEG is a type of image format that is saved using the method of lossy compression.| |&radic;|
  |[GIF](https://docs.fileformat.com/image/gif/)|Graphical Interchange Format| |&radic;|
  |[MARKDOWN](https://docs.fileformat.com/word-processing/md/)|Represents a markdown document.| |&radic;|
  |[SXC](https://docs.fileformat.com/spreadsheet/sxc/)|An XML based format used by OpenOffice and StarOffice|&radic;|&radic;|
  |[FODS](https://docs.fileformat.com/spreadsheet/fods/)|This is an Open Document format stored as flat XML.|&radic;|&radic;|
  |[DOCX](https://docs.fileformat.com/word-processing/docx/)|A well-known format for Microsoft Word documents that is a combination of XML and binary files.||&radic;|
  |[PPTX](https://docs.fileformat.com/presentation/pptx/)|The PPTX format is based on the Microsoft PowerPoint open XML presentation file format.||&radic;|



  To begin with Aspose.Cells Cloud, here's what you need to do:

  1. Sign up for an account at [Aspose for Cloud](https://dashboard.aspose.cloud/#/apps) to obtain your application details.
  2. Install the Aspose.Cells Cloud Python package from the [pypi](https://pypi.org/).

  ```bash
     pip install asposecellscloud
  ```

  3. Use the conversion code provided below as a reference to add or modify your application.



  ```python
  import os
  import sys
  from asposecellscloud.apis.cells_api import CellsApi
  from asposecellscloud.models import *
  from asposecellscloud.requests import *

  api  = CellsApi(os.getenv('CellsCloudClientId'),os.getenv('CellsCloudClientSecret'),"v3.0",os.getenv('CellsCloudApiBaseUrl'))
  remote_folder = 'TestData/In'

  local_name = 'Book1.xlsx'
  remote_name = 'Book1.xlsx'

  format = 'csv'

  mapFiles = {
      local_name: os.path.dirname(os.path.realpath(__file__)) + "/../TestData/" +local_name
  }
  mapFiles = {
      local_name:  local_name
  }
  request =  UploadFileRequest( mapFiles, remote_folder + '/' + remote_name,storage_name= '')
  api.upload_file(request)

  request =  PutConvertWorkbookRequest( mapFiles,format= format)
  api.put_convert_workbook(request)

  ```



  | .NET | Java | PHP | Ruby | Node.js | Android | Swift | Perl | GO |
  |---|---|---|---|---|---|---|---|---|
  | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-dotnet) | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-java) | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-php) | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-ruby)  | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-node) | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-android)  | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-swift) | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-perl) | [GitHub](https://github.com/aspose-cells-cloud/aspose-cells-cloud-go) |
  | [NuGet](https://www.nuget.org/packages/Aspose.Cells-Cloud/) | [Maven](https://repository.aspose.cloud/webapp/#/artifacts/browse/tree/General/repo/com/aspose/aspose-cells-cloud) | [Composer](https://packagist.org/packages/aspose/cells-sdk-php) | [GEM](https://rubygems.org/gems/aspose_cells_cloud)  | [NPM](https://www.npmjs.com/package/asposecellscloud) | [Maven](https://repository.aspose.cloud/webapp/#/artifacts/browse/tree/General/repo/com/aspose/aspose-cells-cloud-android) | [POD](https://cocoapods.org/pods/AsposeCellsCloud) |  [CPAN](https://metacpan.org/release/AsposeCellsCloud-CellsApi) | [GO](https://pkg.go.dev/github.com/aspose-cells-cloud/aspose-cells-cloud-go/v20?tab=overview) |

  [Product Page](https://products.aspose.cloud/cells/python) | [Documentation](https://docs.aspose.cloud/cells/) | [Live Demo](https://products.aspose.app/cells/family) | [API Reference](https://apireference.aspose.cloud/cells/) | [Code Samples](https://github.com/aspose-cells-cloud/aspose-cells-cloud-python/tree/master/test) | [Blog](https://blog.aspose.cloud/category/cells/) | [Free Support](https://forum.aspose.cloud/c/cells) | [Free Trial](https://dashboard.aspose.cloud/#/apps)





  - Add the new feature about removing characters on TextProcessingController.



  - Add word case function for TextProcessingController.
  - Support to export Worksheet to HTML with cell address or id.

  - Add the text trim feature on Cells Cloud Services.



  - Add a new feature about adding text content.
  - Add get access token by client id and client secret.



  - Optimize load data function of data transformation.
  - Optimize the data conversion applied steps.



  - Add merge queries method for loading data of data transformation.
  - Optimize chart data model.



  - Support data transformation.



  - Support data deduplication.
  - Support data filling.
  - Support to delete incomplete rows.
  - Support data cleansing.



  - Support data deduplication.



  - Fixed spelling mistakes for several functions.
  - Add the PostFitTallToPages method for page setup controller.
  - Add the PostFitWideToPages method for page setup controller.
  - Optimize save options about paginated.



  - Conversion APIs add region parameter.
  - Protection APIs add region parameter.
  - Assemble data API adds region parameter.
  - Merge files API adds region parameter.
  - Split files API adds region parameter.
  - Import data API adds region parameter.
  - Watermark API adds region parameter.
  - Clear object API adds region parameter.
  - Reverse data API adds region parameter.
  - Rotate data API adds region parameter.



  - Optimize import xml data into Excel file.
  - Optimize import json data into Excel file.
  - Remove deprecated functions, class and test case.



  - Fix protect workbook request.
  - Fix range copy API.
  - Optimize workbook protect API.



  - Support to data sorting on range controller.
  - Support to remove duplicate data on list object.
  - Support to insert slicer for list object.
  - Optimize list object and related objects.



  - Support to lock API.
  - Optimize protect API.



  - Support to repair API.
  - Remove GetExtractBarcodes API.



  - Support to batch lock multi-files.
  - Support to batch unlock multi-files.
  - Support to protect lock multi-files.
  - Support to split lock multi-files.
  - Fix put document property api.



  - Fix few method names for spelling error.



  -Add import xml data api.
  -Add export xml data api.



  - Adopt the new model.



  - Support chart axis operations.



  - Add api for converting workbook to json.
  - Add api for converting workbook to sql.
  - Add api for converting workbook to csv.



  - Add api for converting workbook to pptx.
  - Add api for converting workbook to html.
  - Add api for converting workbook to markdown.



  - Add api for converting workbook to png.
  - Add api for converting workbook to pdf.
  - Add api for converting workbook to docx



  - Support transposing Excel Rows to Columns.



  - Add 4 kinds of Save Option.
  - Add the checkExcelRestriction parameter for multiple APIs.



  - Add a new API for getting barcode description.



  - Export API adds extended query parameters.
  - Convert API adds extended query parameters.
  - SaveAs API adds extended query parameters.
  - Get Workbook API adds extended query parameters.



  -Add new API about adding digital signature for cloud file.



  - Update return value for the DeleteUnprotectWorksheet API on Aspose.Cells Cloud.
  - Update return value for the PutProtectWorksheet API on Aspose.Cells Cloud.
  - Update return value for the PostSetCellHtmlString API on Aspose.Cells Cloud.
  - Update return value for the PostUpdateWorksheetProperty API on Aspose.Cells Cloud.



  - SaveAs API add the parameter of target storage name.
  - Workbok merged API add the parameter of merged file storage name.
  - Workbok split API add the parameter of target storage name
  - Workbok smart marker API add the parameter of output storage name.
  - Batch convert API add the parameters of intput and output storage name.
  - Remove AutoshapesController from Aspose.Cells Cloud.
  - Rename LiteCellsApi to LightCellsApi.



  - Improvement for conversion API.
  - Improvement for batch data import to support to set cell formula.
  - Improvement for setting row height and column wight to support to set multi-rows and multi-columns.
  - Support to set cell formula in batch data import.
  - Add a new API for updating the list column.
  - Add a new API for reversing columns and rows.
  - Add new APIs for grouping and ungrouping shapes.



  - Add new API for workbook get page count on Aspose.Cells Cloud.
  - Add new API for worksheet get page count on Aspose.Cells Cloud.
  - Add new API for compress excel file on Aspose.Cells Cloud.
  - Add new feature for replace API.



  - Add new API for support delete multiple worksheets in a single call.
  - Add new API for supports batch convert excel files.



  - Correct the return type of the following REST APIs.



  - Improvement for getting list object Api.
  - Add import Api.



  - Fix search API.
  - Fix split API.



  - Improvement document properties.
  - Update the return value of put/post/delete.
  - Improvement export API.
  - Improve split API.
  - Improve merge API.
  - Improve unlock API.
  - Improve protected API.
  - Improve watermark API.



  - Support autofit columns for workbook and worksheet.
  - Improve add and post row/column APIs.
  - Improve Task APIs.



  - Support to convert worksheet on task API
  - Support to add and delete cell or range in worksheet.



  - Support Aspose.Cells Cloud for Docker.



  - Support to upload large file.



  - Support sparkline groups.
  - Add API about updating pivot field.



  - Aspose.Cells Cloud API calls are not working with explicit storage name but only default storage.
  - Get output file size without downloading during conversion.
  - Enhancement for CellsShapesPutWorksheetShape API.


pkgId: b6b9ceb69ff4283bc466e318d2438eaec786e619e86841c225cf4da38ce7e990
name: python-asposeslidescloud
arch: src
version: 24.9.0
epoch: 0
release: 1
summary: Aspose.Slides Cloud SDK for Python
url: https://pypi.org/project/asposeslidescloud/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asposeslidescloud-24.9.0-1.src.rpm
checksum_type: sha256
description:
  ![](https://img.shields.io/badge/api-v3.0-lightgrey) ![PyPI](https://img.shields.io/pypi/v/asposeslidescloud) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/asposeslidescloud) ![PyPI - Implementation](https://img.shields.io/pypi/implementation/asposeslidescloud) ![PyPI - Wheel](https://img.shields.io/pypi/wheel/asposeslidescloud) [![GitHub license](https://img.shields.io/github/license/aspose-slides-cloud/aspose-slides-cloud-python)](https://github.com/aspose-slides-cloud/aspose-slides-cloud-python/blob/master/LICENSE)


  This repository contains Aspose.Slides Cloud SDK for Python source code. This SDK allows you to [process & manipulate PPT, PPTX, ODP, OTP](https://products.aspose.cloud/slides/python) using Aspose.slides Cloud REST APIs in your Python applications.

  You may want to check out Aspose free [Powerpoint to PDF](https://products.aspose.app/slides/conversion), [Powerpoint to Word](https://products.aspose.app/slides/conversion/ppt-to-word), [Powerpoint to JPG](https://products.aspose.app/slides/conversion/ppt-to-jpg), [Powerpoint to PNG](https://products.aspose.app/slides/conversion/ppt-to-png), [PDF to Powerpoint](https://products.aspose.app/slides/import/pdf-to-powerpoint), [JPG to Powerpoint](https://products.aspose.app/slides/import/jpg-to-ppt), and [PNG to Powerpoint](https://products.aspose.app/slides/import/png-to-ppt) converters because they are live implementations of popular conversion processes.



  - Fetch presentation images in any of the supported file formats.
  - Copy the layout side or clone the master slide from the source presentation.
  - Process slides shapes, slides notes, placeholders, colors & font theme info.
  - Programmatically create a presentation from HTML & export it to various formats.
  - Merge multiple presentations or split the single presentation into multiple ones.
  - Extract and replace text from a specific slide or an entire presentation.



  **Microsoft PowerPoint:** PPT, PPTX, PPS, PPSX, PPTM, PPSM, POTX, POTM
  **OpenOffice:** ODP, OTP, FODP
  **Other**: PDF, PDF/A



  **Fixed Layout:** XPS
  **Images:** JPEG, PNG, BMP, TIFF, GIF, SVG
  **Web:** HTML/HTML5
  **Other:** MPEG4, SWF (export whole presentations)



  * Added **Upload** and **Download** methods to async API. They are identical to **UploadFile** and **DownloadFile** methods of the regular API, but file size is not restricted for them.



  * Added **StartSplit** and **StartUploadAndSplit** methods to async API.
  * Added **ReplacePresentationRegex** and **ReplacePresentationRegexOnline** methods.
  * Added **HighlightPresentationText** and **HighlightPresentationRegex** methods.
  * Added **OperationError** class; changed **Operation**.**Error** property type from string to **OperationError**.
  * Removed **wholeWordsOnly** parameter from **ReplaceShapeRegex** method.



  * Added **TemplatesPath** property to **Html5ExportOptions** class. It enables using custom templates in conversion to Html5 format.
  * Added **GetHtml5Templates** method to retrieve the list of default Html5 templates.
  * Added **Xml** to the list of available export formats.
  * Added **wholeWordsOnly** parameter to **ReplacePresentationText** and  **ReplacePresentationTextOnline** methods.
  * Added **GradientStyle** property to **ExportOptions** class.
  * Added **ResterizeUnsupportedFontStyles** property to **PdfExportOptions** class.
  * Added **Zip64Mode** property to **PptxExportOptions** class.
  * Added **Transparency** property to **Table** and **TableCell** class.
  * Removed obsolete **DownloadPortionsAsMathML**, **SavePortionsAsMathML** methods. Use **DownloadMathPortion** and **SaveMathPortion** methods to convert portions to math formats.



  * Added **HideInk** and **InterpretMaskOpAsOpacity** properties to **PdfExportOptions** class.
  * Removed **Enqueued** from the list of allowed values for **Operation.Status** property.



  * Added **options** parameter to **ImportFromPdf** method. You can specify **options.DetectTables** property to control import behavior.
  * Added **Title** property to **Axis** class for charts.
  * Added **X**, **Y**, **Width**, **Height**, **Overlay**, **FillFormat**, **EffectFormat** and **LineFormat** properties to **ChartTitle** class.
  * Added **HasTitle** property to **Chart** class; removed **HasTitle** property from **ChartTitle** class.



  * Added **DownloadMathPortion** and **SaveMathPortion** methods to convert math portions to math markup formats (MathML or LaTeX). See [documentation](https://docs.aspose.cloud/slides/export-a-math-formula/) for more info. **DownloadPortionAsMathML** and **SavePortionAsMathML** methods are deprecated and will be removed after 24.6.
  * Added **Marker** property to **DataPoint** class.



  * Added Markdown (**Md**) to the list of allowed export formats.
  * Added **DeletePictureCroppedAreas** method to delete cropped areas of pictures.
  * Added **SlidesLayoutOptions** property to **PdfExportOptions**, **HtmlExportOptions**, **TiffExportOptions** and **ImageExportOptions** classes. You can use it to specify handout or notes/comments layouting options.
  * Added **AnimateTextType** enum property to **Effect** class.
  * Added **NotesCommentsLayouting** property to **Html5ExportOptions** class.
  * Added **BwConversionMode** property to **TiffExportOptions** class.
  * Added **EmbedImages** boolean property to **Html5ExportOptions** class.
  * Added **ShowMediaControls** boolean property to **SlideShowProperties** class.
  * Added **IsDecorative** boolean property to **ShapeBase** class.




  * Added **GetCommentAuthors** method to get list of comment authors.



  * Added **GetAvailableFonts** method to get list of installed system & custom fonts.


  All Aspose.Slides Cloud SDKs are licensed under MIT License.


  The complete source code is available in this repository folder. You can either directly use it in your project via source code or get [PuPi module](https://pypi.org/project/asposeslidescloud) (recommended).


  To use Aspose Slides Cloud SDK for Python you need to register an account with [Aspose Cloud](https://www.aspose.cloud/) and lookup/create App Key and SID at [Cloud Dashboard](https://dashboard.aspose.cloud/#/apps). There is free quota available. For more details, see [Aspose Cloud Pricing](https://purchase.aspose.cloud/pricing).



  ```sh
  python -m pip install asposeslidescloud
  ```



  The example code below converts a PowerPoint document to PDF format using asposeslidescloud library:
  ```python
  	import asposeslidescloud

  	from asposeslidescloud.configuration import Configuration
  	from asposeslidescloud.apis.slides_api import SlidesApi
  	from asposeslidescloud.models.export_format import ExportFormat

  	configuration = Configuration()
  	configuration.app_sid = 'MyClientId'
  	configuration.app_key = 'MyClientSecret'
  	api = SlidesApi(configuration)

  	with open("MyPresentation.pptx", 'rb') as f:
  		document = f.read()

  	response = api.convert(document, ExportFormat.PDF)
  	print('My PDF was saved to ' + response)
  ```

  You can check more [Examples](Examples) of using the SDK.



  | .NET | Java | PHP | Python | Ruby | Node.js | Android | Swift|Perl|Go|
  |---|---|---|---|---|---|---|--|--|--|
  | [GitHub](https://github.com/aspose-slides-cloud/aspose-slides-cloud-dotnet) | [GitHub](https://github.com/aspose-slides-cloud/aspose-slides-cloud-java) | [GitHub](https://github.com/aspose-slides-cloud/aspose-slides-cloud-php) | [GitHub](https://github.com/aspose-slides-cloud/aspose-slides-cloud-python) | [GitHub](https://github.com/aspose-slides-cloud/aspose-slides-cloud-ruby)  | [GitHub](https://github.com/aspose-slides-cloud/aspose-slides-cloud-nodejs) | [GitHub](https://github.com/aspose-slides-cloud/aspose-slides-cloud-android) | [GitHub](https://github.com/aspose-slides-cloud/aspose-slides-cloud-swift)|[GitHub](https://github.com/aspose-slides-cloud/aspose-slides-cloud-perl) |[GitHub](https://github.com/aspose-slides-cloud/aspose-slides-cloud-go) |
  | [NuGet](https://www.nuget.org/packages/Aspose.slides-Cloud/) | [Maven](https://repository.aspose.cloud/webapp/#/artifacts/browse/tree/General/repo/com/aspose/aspose-slides-cloud) | [Composer](https://packagist.org/packages/aspose/slides-sdk-php) | [PIP](https://pypi.org/project/asposeslidescloud/) | [GEM](https://rubygems.org/gems/aspose_slides_cloud)  | [NPM](https://www.npmjs.com/package/asposeslidescloud) | [Maven](https://repository.aspose.cloud/webapp/#/artifacts/browse/tree/General/repo/com/aspose/aspose-slides-cloud) | [Cocoapods](https://cocoapods.org/pods/AsposeslidesCloud)|[Meta Cpan](https://metacpan.org/release/AsposeSlidesCloud-SlidesApi) | [Go.Dev](https://pkg.go.dev/github.com/aspose-slides-cloud/aspose-slides-cloud-go/) |

  [Product Page](https://products.aspose.cloud/slides/python) | [Documentation](https://docs.aspose.cloud/display/slidescloud/Home) | [API Reference](https://apireference.aspose.cloud/slides/) | [Code Samples](https://github.com/aspose-slides-cloud/aspose-slides-cloud-python) | [Blog](https://blog.aspose.cloud/category/slides/) | [Free Support](https://forum.aspose.cloud/c/slides) | [Free Trial](https://dashboard.aspose.cloud/#/apps)


pkgId: 1f2986100a517fe24c2bdf63ebc20455895cc65850f410a45e890e71b39d0e5f
name: python-aspsim
arch: src
version: 0.0.1
epoch: 0
release: 1
summary: please add a summary manually as the author left a blank one
url: https://pypi.org/project/aspsim/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-aspsim-0.0.1-1.src.rpm
checksum_type: sha256
description:
  The package simulates sound in a reverberant space. The simulator supports moving microphones and moving sources. The simulator supports adaptive processing, where the sound of the sources are determined by the sound in the room. This is useful for instance for active noise control and similar adaptive processing tasks.

  The package currently uses the image-source method implementation of [Pyroomacoustics](https://github.com/LCAV/pyroomacoustics) to generate the room impulse responses.

  **[More info and complete API documentation](https://sounds-research.github.io/aspsim/)**



  The package can be installed with pip as
  ```
  pip install aspsim
  ```

  Alternatively, clone the repository and install the package direct from the source code as
  ```
  pip install path/to/aspsim
  ```


  The software is distributed under the MIT license. See the LICENSE file for more information.



  A number of examples with varying complexity can be found in the examples folder.


pkgId: 7a9e12408c6c9ac79d45dde2d1dff19f5f695a4d8774928744b68a468ce13560
name: python-aspxstats
arch: src
version: 0.4.0
epoch: 0
release: 1
summary: Python library for retrieving stats of Battlefield 2 and Battlefield 2142 players
url: https://github.com/cetteup/aspxstats
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-aspxstats-0.4.0-1.src.rpm
checksum_type: sha256
description:
  Python 🐍 library for retrieving stats of Battlefield 2 and Battlefield 2142 players

  [![ci](https://img.shields.io/github/actions/workflow/status/cetteup/aspxstats/ci.yml?label=ci)](https://github.com/cetteup/aspxstats/actions?query=workflow%3Aci)
  [![License](https://img.shields.io/github/license/cetteup/aspxstats)](/LICENSE)
  [![Last commit](https://img.shields.io/github/last-commit/cetteup/aspxstats)](https://github.com/cetteup/aspxstats/commits/main)


pkgId: b9a4f62e623bf54675e4b64533f701a0020700d24671e13217db21aa601b9884
name: python-aspy.refactor-imports
arch: src
version: 3.0.2
epoch: 0
release: 1
summary: Utilities for refactoring imports in python-like syntax.
url: https://github.com/asottile/aspy.refactor_imports
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-aspy.refactor-imports-3.0.2-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://asottile.visualstudio.com/asottile/_apis/build/status/asottile.aspy.refactor_imports?branchName=main)](https://asottile.visualstudio.com/asottile/_build/latest?definitionId=5&branchName=main)
  [![Azure DevOps coverage](https://img.shields.io/azure-devops/coverage/asottile/asottile/5/main.svg)](https://dev.azure.com/asottile/asottile/_build/latest?definitionId=5&branchName=main)
  [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/asottile/aspy.refactor_imports/main.svg)](https://results.pre-commit.ci/latest/github/asottile/aspy.refactor_imports/main)


pkgId: a59c5d3ca2c673502bcb9b0223449d7da3f195c5568d9235354730a031cb7a25
name: python-aspy.yaml
arch: src
version: 1.3.0
epoch: 0
release: 1
summary: A few extensions to pyyaml.
url: https://github.com/asottile/aspy.yaml
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-aspy.yaml-1.3.0-1.src.rpm
checksum_type: sha256
description:
  Some extensions to pyyaml.

  `pip install aspy.yaml`

  yaml.load which respects order for dictionaries in the yaml file.
  ```python
  >>> from aspy.yaml import ordered_load
  >>> ordered_load(
          'foo: bar\n'
          'bar: baz\n'
          'herp: derp\n'
      )
  OrderedDict([('foo', 'bar'), ('bar', 'baz'), ('herp', 'derp')])
  ```

  yaml.dump which respects order for dictionaries in the yaml file.
  ```python
  >>> from aspy.yaml import ordered_dump
  >>> print(ordered_dump(
          OrderedDict((('a', '1'), ('b', '2'), ('c', '3'), ('d', '4'))),
          default_flow_style=False,
      ))
  a: '1'
  b: '2'
  c: '3'
  d: '4'
  ```


pkgId: 9d511792bac4ac02396b6e97cf081730eb2c39847b8631a232f415b8ec5a3eb7
name: python-asq
arch: src
version: 2.0.0
epoch: 0
release: 1
summary: LINQ-for-objects style queries for Python iterables.
url: https://github.com/sixty-north/asq
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asq-2.0.0-1.src.rpm
checksum_type: sha256
description:
  ``asq`` is a package implementing queries over iterables of Python
  objects.  `asq` provides a fluent interface making extensive use of method
  chaining to create complex queries without compromising readability.  For
  example, to take the first five uppercased results from a list of words sorted
  by length and then alphabetically, try::
    >>> from asq import query
    >>> words = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"]
    >>> query(words).order_by(len).then_by().take(5).select(str.upper).to_list()
    ['ONE', 'SIX', 'TEN', 'TWO', 'FIVE']
  Over 40 standard query operators are provided together with various utilities
  to make the API even more convenient to use in Python.


pkgId: 7f82d6093667991a047c12eae4760230d9a04bab20c36379edc41614fa52f45b
name: python-asr-business
arch: src
version: 0.2.1
epoch: 0
release: 1
summary: please add a summary manually as the author left a blank one
url: https://github.com/Tonywu2018/asr_business
rpm_license: MIT Licence
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asr-business-0.2.1-1.src.rpm
checksum_type: sha256
description:
  用于识别业务音频的python工具包，目前支持多种功能，包括：语音识别(ASR，该工具包的主要功能)、语音端点检测(VAD)、标点恢复。

  除此之外，目前还支持两种语音预处理方法：语音增强及语音降噪

  由于业务数据的特殊性，需要支持声纹识别，即对无文本的呻吟、娇喘声也要做出识别（该部分待开发）


pkgId: 1153bc809ee319c27b93bd4da019dc3ee3dd272f2464a886c7b23ae62faebee0
name: python-asr_evaluation
arch: src
version: 2.0.4
epoch: 0
release: 1
summary: Evaluating ASR (automatic speech recognition) hypotheses, i.e. computing word error rate.
url: https://pypi.org/project/asr_evaluation/
rpm_license: LICENSE.txt
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asr_evaluation-2.0.4-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://travis-ci.org/belambert/asr-evaluation.svg?branch=master)](https://travis-ci.org/belambert/asr-evaluation)
  [![PyPI version](https://badge.fury.io/py/asr_evaluation.svg)](https://badge.fury.io/py/asr_evaluation)
  [![codecov](https://codecov.io/gh/belambert/asr-evaluation/branch/master/graph/badge.svg)](https://codecov.io/gh/belambert/asr-evaluation)
  Python module for evaluting ASR hypotheses (i.e. word error rate and word
  recognition rate).
  This module depends on the [editdistance](https://github.com/belambert/edit-distance)
  project, for computing edit distances between arbitrary sequences.
  The formatting of the output of this program is very loosely based around the
  same idea as the align.c program commonly used within the Sphinx ASR community.
  This may run a bit faster if neither instances nor confusions are printed.
  Please let me know if you have any comments, questions, or problems.


pkgId: a5d0637aeb330e2cffe87485099212eb8ea35a365bb193d0d5c8b6d1f583586c
name: python-asreview
arch: src
version: 1.6.3
epoch: 0
release: 1
summary: ASReview LAB - A tool for AI-assisted systematic reviews
url: https://github.com/asreview/asreview
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asreview-1.6.3-1.src.rpm
checksum_type: sha256
description:
  <p align="center">
    <a href="https://github.com/asreview/asreview">
      <img width="60%" height="60%" src="https://raw.githubusercontent.com/asreview/asreview-artwork/master/LogoASReview/SVG/GitHub_Repo_Card_Transparent.svg">
    </a>
  </p>



  [![PyPI version](https://badge.fury.io/py/asreview.svg)](https://badge.fury.io/py/asreview) [![Documentation Status](https://readthedocs.org/projects/asreview/badge/?version=latest)](https://asreview.readthedocs.io/en/latest/?badge=latest) [![DOI](https://zenodo.org/badge/164874894.svg)](https://zenodo.org/badge/latestdoi/164874894)
   [![Downloads](https://static.pepy.tech/badge/asreview)](https://github.com/asreview/asreview#installation) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/4755/badge)](https://bestpractices.coreinfrastructure.org/projects/4755)

  Systematically screening large amounts of textual data is time-consuming and
  often tiresome. The rapidly evolving field of Artificial Intelligence (AI) has
  allowed the development of AI-aided pipelines that assist in finding relevant
  texts for search tasks. A well-established approach to increasing efficiency
  is screening prioritization via [Active
  Learning](https://asreview.readthedocs.io/en/latest/guides/activelearning.html).

  The Active learning for Systematic Reviews (ASReview) project, published in
  [*Nature Machine Intelligence*](https://doi.org/10.1038/s42256-020-00287-7)
  implements different machine learning algorithms that interactively query the
  researcher. ASReview LAB  is designed to accelerate the step of screening
  textual data with a minimum of records to be read by a human with no or very
  few false negatives. ASReview LAB will save time, increase the quality of
  output and strengthen the transparency of work when screening large amounts of
  textual data to retrieve relevant information. Active Learning will support
  decision-making in any discipline or industry.

  ASReview software implements three different modes:

  - **Oracle**  Screen textual data in
    interaction with the active learning model. The reviewer is the 'oracle',
    making the labeling decisions.
  - **Exploration**  Explore or
    demonstrate ASReview LAB with a completely labeled dataset. This mode is
    suitable for teaching purposes.
  - **Simulation**  Evaluate
    the performance of active learning models on fully labeled data. Simulations
    can be run in ASReview LAB or via the command line interface with more
    advanced options.




  The ASReview software requires Python 3.8 or later. Detailed step-by-step
  instructions to install Python and ASReview are available for
  [Windows](https://asreview.ai/installation-guide-windows/) and
  [macOS](https://asreview.ai/installation-guide-macos/) users.

  ```bash
  pip install asreview
  ```

  Upgrade ASReview with the following command:

  ```bash
  pip install --upgrade asreview
  ```

  To install ASReview LAB with Docker, see [Install with Docker](https://asreview.readthedocs.io/en/latest/installation.html).



  [![ASReview LAB explained - animation](https://img.youtube.com/vi/k-a2SCq-LtA/0.jpg)](https://www.youtube.com/watch?v=k-a2SCq-LtA)




  [Getting Started with ASReview
  LAB](https://asreview.readthedocs.io/en/latest/about.html).

  [![ASReview LAB](https://github.com/asreview/asreview/blob/master/images/ASReviewWebApp.png?raw=true)](https://asreview.readthedocs.io/en/latest/lab/overview_lab.html "ASReview LAB")



  If you wish to cite the underlying methodology of the ASReview software,
  please use the following publication in Nature Machine Intelligence:

  > van de Schoot, R., de Bruin, J., Schram, R. et al. An open source machine
    learning framework for efficient and transparent systematic reviews.
    Nat Mach Intell 3, 125–133 (2021). https://doi.org/10.1038/s42256-020-00287-7

  For citing the software, please refer to the specific release of
  the ASReview software on Zenodo https://doi.org/10.5281/zenodo.3345592. The menu on the
  right can be used to find the citation format of prevalence.

  For more scientific publications on the ASReview software, go to
  [asreview.ai/papers](https://asreview.ai/papers/).



  For an overview of the team working on ASReview, see [ASReview Research Team](https://asreview.ai/about).
  ASReview LAB is maintained by
  [Jonathan de Bruin](https://github.com/J535D165) and [Yongchao Terry Ma](https://github.com/terrymyc).

  The best resources to find an answer to your question or ways to get in
  contact with the team are:

  - Documentation - [asreview.readthedocs.io](https://asreview.readthedocs.io/)
  - Newsletter - [asreview.ai/newsletter/subscribe](https://asreview.ai/newsletter/subscribe)
  - Quick tour - [ASReview LAB quick tour](https://asreview.readthedocs.io/en/latest/lab/overview_lab.html)
  - Issues or feature requests - [ASReview issue tracker](https://github.com/asreview/asreview/issues)
  - FAQ - [ASReview Discussions](https://github.com/asreview/asreview/discussions?discussions_q=sort%3Atop)
  - Donation - [asreview.ai/donate](https://asreview.ai/donate)
  - Contact - [asreview@uu.nl](mailto:asreview@uu.nl)



  The ASReview software has an Apache 2.0 [LICENSE](LICENSE). The ASReview team
  accepts no responsibility or liability for the use of the ASReview tool or any
  direct or indirect damages arising out of the application of the tool.


pkgId: 8425c9b0c2747f1cb12517e598463eddbbe04c3a83f4cb655b789bd42138a891
name: python-asreview-covid19
arch: src
version: 0.9.4
epoch: 0
release: 1
summary: Covid-19 related datasets for ASReview
url: https://github.com/asreview/asreview-covid19
rpm_license: Apache Software License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asreview-covid19-0.9.4-1.src.rpm
checksum_type: sha256
description:
  ![ASReview for COVID19](https://github.com/asreview/asreview/blob/master/images/intro-covid19-small.png?raw=true)

  Extension to add publications on COVID-19 to [ASReview](https://github.com/asreview/asreview).





  [![Downloads](https://pepy.tech/badge/asreview-covid19)](https://pepy.tech/project/asreview-covid19) [![PyPI version](https://badge.fury.io/py/asreview-covid19.svg)](https://badge.fury.io/py/asreview-covid19) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3764749.svg)](https://doi.org/10.5281/zenodo.3764749) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

  The Active learning for Systematic Reviews software [ASReview](https://github.com/asreview/asreview) implements learning algorithms that interactively query the researcher during the title and abstract reading phase of a systematic search. This way of interactive training is known as active learning. ASReview offers support for classical learning algorithms and state-of-the-art learning algorithms like neural networks. The software can be used for traditional systematic reviews for which the user uploads a dataset of papers, or one can make use of the built-in datasets.

  To help combat the COVID-19 crisis, the ASReview team released an extension that integrates the latest scientific datasets on COVID-19 in the ASReview software. Experts can **start reviewing the latest scientific literature on COVID-19 immediately!** See [datasets](#datasets) for an overview of the datasets (daily updates).




  The COVID-19 plug-in requires ASReview 0.9.4 or higher. Install ASReview by following the instructions in [Installation of ASReview](https://asreview.readthedocs.io/en/latest/installation.html).

  Install the extension with pip:

  ```bash
  pip install asreview-covid19
  ```

  The datasets are immediately available after starting ASReview (`asreview oracle`). The datasets are selectable in Step 2 of the project initialization. For more information on the usage of ASReview, please have a look at the [Quick Tour](https://asreview.readthedocs.io/en/latest/quicktour.html).

  Older versions of the plugin are no longer supported by ASReview>=0.9.4. Please update the plugin with:

  ```bash
  pip install --upgrade asreview-covid19
  ```




  The following datasets are available:

  - [CORD-19 dataset](#cord-19-dataset)
  - [COVID19 preprints dataset](#covid19-preprints-dataset)

   The datasets are checked for updates every couple of hours such that the latest collections are available in the ASReview COVID19 plugin and ASReview software.

  [![ASReview CORD19 datasets](https://github.com/asreview/asreview/blob/master/docs/images/asreview-covid19-screenshot.png?raw=true)](https://github.com/asreview/asreview-covid19)


  The [CORD-19 dataset](https://pages.semanticscholar.org/coronavirus-research) is a dataset with scientific publications on COVID-19 and coronavirus-related research (e.g. SARS, MERS, etc.) from PubMed Central, the WHO COVID-19 database of publications, the preprint servers bioRxiv, medRxiv and arXiv, and papers contributed by specific publishers (currently Elsevier). The dataset is compiled and maintained by a collaboration of the Allen Institute for AI, the Chan Zuckerberg Initiative, Georgetown University’s Center for Security and Emerging Technology, Microsoft Research, and the National Library of Medicine of the National Institutes of Health. The full dataset contains metadata of more than **100K publications** on COVID-19 and coronavirus-related research. **The CORD-19 dataset receives daily updates and is directly available in the ASReview software.** The most recent versions of the dataset can be found here: https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html


  The [COVID19 preprints dataset](https://github.com/nicholasmfraser/covid19_preprints) is created by [Nicholas Fraser](https://github.com/nicholasmfraser) and [Bianca Kramer](https://github.com/bmkramer), by collecting metadata of COVID19-related preprints from over 15 preprint servers with DOIs registered with Crossref or DataCite, and from arXiv. The dataset contains metadata of >10K preprints on COVID-19 and coronavirus-related research. All versions are archived on [Figshare](https://doi.org/10.6084/m9.figshare.12033672). The COVID19 preprints dataset receives weekly updates.

  The most recent version of the dataset can be found here:[https://github.com/nicholasmfraser/covid19_preprints/blob/master/data/covid19_preprints.csv](https://github.com/nicholasmfraser/covid19_preprints/blob/master/data/covid19_preprints.csv).



  The ASReview software and the plugin have an Apache 2.0 LICENSE. For the datasets, please see the license of the CORD-19 dataset https://pages.semanticscholar.org/coronavirus-research. The COVID19 preprints dataset has a [CC0 license](https://creativecommons.org/publicdomain/zero/1.0/).

  Visit https://doi.org/10.5281/zenodo.3764749 to get the citation style of your preference.

  This project is coordinated by by Rens van de Schoot (@Rensvandeschoot) and Daniel Oberski (@daob) and is part of the research work conducted by the Department of Methodology & Statistics, Faculty of Social and Behavioral Sciences, Utrecht University, The Netherlands. Maintainers are Jonathan de Bruin (@J535D165) and Raoul Schram (@qubixes).

  Got ideas for improvement? For any questions or remarks, please send an email to asreview@uu.nl.


pkgId: ef166fd0b41c719cf0aba8e24ae09d556d7d2b32af15cda216a5c1f89f7cc562
name: python-asreview-datatools
arch: src
version: 1.3.2
epoch: 0
release: 1
summary: Powerful command line tools for data handling in ASReview
url: https://pypi.org/project/asreview-datatools/
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asreview-datatools-1.3.2-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://badge.fury.io/py/asreview-datatools.svg)](https://badge.fury.io/py/asreview-datatools) [![Downloads](https://pepy.tech/badge/asreview-datatools)](https://pepy.tech/project/asreview-datatools) [![DOI](https://zenodo.org/badge/239740436.svg)](https://zenodo.org/badge/latestdoi/239740436)

  ASReview Datatools is an extension to [ASReview
  LAB](https://github.com/asreview/asreview) that can be used to:
  - [**Describe**](#data-describe) basic properties of a dataset
  - [**Convert**](#data-convert) file formats
  - [**Deduplicate**](#data-dedup) data
  - [**Stack**](#data-vstack-experimental) multiple datasets
  - [**Compose**](#data-compose-experimental) a single (labeled, partly labeled, or unlabeled) dataset from multiple datasets
  - [**Snowball**](#snowball) a dataset to find incoming or outgoing citations
  - [**Sample**](#sample) old, random, and new papers in order to check if the terminology has changed over time.

  Several [tutorials](Tutorials.md) are available that show how
  `ASReview-Datatools` can be used in different scenarios.

  ASReview datatools is available for ASReview LAB version 1 or later.
  If you are using ASReview LAB version 0.x, use [ASReview-statistics](https://pypi.org/project/asreview-statistics/) instead of ASReview datatools.


  ASReview Datatools requires Python 3.7+ and [ASReview LAB](https://github.com/asreview/asreview) version 1.1 or later.

  The easiest way to install the extension is to install it from PyPI:

  ``` bash
  pip install asreview-datatools
  ```

  After installation of the datatools extension, `asreview` should automatically
  detect it. Test this with the following command:

  ```bash
  asreview --help
  ```

  The extension is successfully installed if it lists `asreview data`.

  To make sure that you are working with the latest version of datatools you can use:

  ```bash
  pip install asreview-datatools --upgrade
  ```



  ASReview Datatools is a command line tool that extends ASReview LAB. Each
  subsection below describes one of the tools. The structure is

  ```bash
  asreview data NAME_OF_TOOL
  ```

  where `NAME_OF_TOOL` is the name of one of the tools below (`describe`, `convert`, `dedup`, `vstack`, or `compose`)
  followed by positional arguments and optional arguments.

  Each tool has its own help description which is available with

  ```bash
  asreview data NAME_OF_TOOL -h
  ```




  Describe the content of a dataset

  ```bash
  asreview data describe MY_DATASET.csv
  ```

  Export the results to a file (`output.json`)

  ```bash
  asreview data describe MY_DATASET.csv -o output.json
  ```

  Describe the `van_de_schoot_2018` dataset from the [benchmark
  platform](https://github.com/asreview/systematic-review-datasets).

  ```bash
  asreview data describe synergy:van_de_schoot_2018 -o output.json
  ```
  ```
  {
    "asreviewVersion": "1.1",
    "apiVersion": "1.1.1",
    "data": {
      "items": [
        {
          "id": "n_records",
          "title": "Number of records",
          "description": "The number of records in the dataset.",
          "value": 6189
        },
        {
          "id": "n_relevant",
          "title": "Number of relevant records",
          "description": "The number of relevant records in the dataset.",
          "value": 43
        },
        {
          "id": "n_irrelevant",
          "title": "Number of irrelevant records",
          "description": "The number of irrelevant records in the dataset.",
          "value": 6146
        },
        {
          "id": "n_unlabeled",
          "title": "Number of unlabeled records",
          "description": "The number of unlabeled records in the dataset.",
          "value": 0
        },
        {
          "id": "n_missing_title",
          "title": "Number of records with missing title",
          "description": "The number of records in the dataset with missing title.",
          "value": 5
        },
        {
          "id": "n_missing_abstract",
          "title": "Number of records with missing abstract",
          "description": "The number of records in the dataset with missing abstract.",
          "value": 764
        },
        {
          "id": "n_duplicates",
          "title": "Number of duplicate records (basic algorithm)",
          "description": "The number of duplicate records in the dataset based on similar text.",
          "value": 104
        }
      ]
    }
  }
  ```



  Convert the format of a dataset. For example, convert a RIS dataset into a
  CSV, Excel, or TAB dataset.

  ```
  asreview data convert MY_DATASET.ris MY_OUTPUT.csv
  ```



  Remove duplicate records with a simple and straightforward deduplication
  [algorithm](https://asreview.readthedocs.io/en/latest/generated/asreview.ASReviewData.duplicated.html#asreview.ASReviewData.duplicated). The algorithm first removes all duplicates based on a persistent
  identifier (PID). Then it concatenates the title and abstract, whereafter it
  removes all non-alphanumeric tokens. Then the duplicates are removed.

  ```
  asreview data dedup MY_DATASET.ris
  ```

  Export the deduplicated dataset to a file (`output.csv`)

  ```
  asreview data dedup MY_DATASET.ris -o output.csv
  ```

  By default, the PID is set to 'doi'. The `dedup` function offers the option to
  use a different PID. Consider a dataset with PubMed identifiers (`PMID`), the
  identifier can be used for deduplication.

  ```
  asreview data dedup MY_DATASET.csv -o output.csv --pid PMID
  ```

  Using the `van_de_schoot_2018` dataset from the [benchmark
  platform](https://github.com/asreview/systematic-review-datasets).

  ```bash
  asreview data dedup synergy:van_de_schoot_2018 -o van_de_schoot_2018_dedup.csv
  ```
  ```
  Removed 104 records from dataset with 6189 records.
  ```




  Vertical stacking: combine as many datasets in the same file format as you want into a single dataset.

  ❗ Vstack is an experimental feature. We would love to hear your feedback.
  Please keep in mind that this feature can change in the future.

  Stack several datasets on top of each other:
  ```
  asreview data vstack output.csv MY_DATASET_1.csv MY_DATASET_2.csv MY_DATASET_3.csv
  ```
  Here, three datasets are exported into a single dataset `output.csv`.
  The output path can be followed by any number of datasets to be stacked.

   This is an example using the [demo datasets](https://github.com/asreview/asreview-datatools/tree/master/tests/demo_data):

  ```bash
  asreview data vstack output.ris dataset_1.ris dataset_2.ris
  ```




  Compose is where datasets containing records with different labels (or no
  labels) can be assembled into a single dataset.

  ❗ Compose is an experimental feature. We would love to hear your feedback.
  Please keep in mind that this feature can change in the future.

  Overview of possible input files and corresponding properties, use at least
  one of the following arguments:

  | Arguments            | Action                                     |
  |----------------------|--------------------------------------------|
  | `--relevant`, `-r`   | Label all records from this dataset as `relevant` in the composed dataset.   |
  | `--irrelevant`, `-i` | Label all records from this dataset as `irrelevant` in the composed dataset. |
  | `--labeled`, `-l`    | Use existing labels from this dataset in the composed dataset.           |
  | `--unlabeled`, `-u`  | Remove all labels from this dataset in the composed dataset.              |

  The output path should always be specified.

  Duplicate checking is based on title/abstract and a persistent identifier
  (PID) like the digital object identifier (DOI). By default, `doi` is used as
  PID. It is possible to use the flag `--pid`  to specify a persistent
  identifier other than `doi`. In case duplicate records are detected, the user
  is warned, and the conflicting records are shown. To specify what happens in
  case of conflicts, use the `--conflict_resolve`/`-c` flag. This is set to
  `keep_one` by default, options are:

  | Resolve method | Action in case of conflict                                                              |
  |----------------|-----------------------------------------------------------------------------------------|
  | `keep_one`     | Keep one label, using `--hierarchy` to determine which label to keep                    |
  | `keep_all`     | Keep conflicting records as duplicates in the composed dataset (ignoring `--hierarchy`) |
  | `abort`        | Abort                                                                                   |


  In case of an ambiguously labeled record (e.g., one record with two different
  labels), use `--hierarchy` to specify a hierarchy of labels. Pass the letters
  `r` (relevant), `i` (irrelevant), and `u` (unlabeled) in any order to set
  label hierarchy. By default, the order is `riu`  meaning that relevant labels
  are prioritized over irrelevant and unlabeled, and irrelevant labels are
  prioritized over unlabeled ones.


  Asume you have records in `MY_DATASET_1.ris` from which you want to keep all
  existing labels and records in `MY_DATASET_2.ris` which you want to keep
  unlabeled. Both datasets can be composed into a single dataset using:

  ```bash
  asreview data compose composed_output.ris -l DATASET_1.ris -u DATASET_2.ris --hierarchy uir -c abort
  ```
  Because of the flag `-c abort` in case of conflicting/contradictory labels,
  the user is warned, records with inconsistent labels are shown, and the script
  is aborted. The flag `--hierarchy uir` results in the following hierarch if any
  duplicate ambiguously labeled records exist: unlabeled is prioritized over
  irrelevant and relevant labels, and irrelevant labels are prioritized over
  relevant labels.



  ASReview Datatools supports snowballing via the `asreview data snowball` subcommand.
  It can perform both backwards (outgoing citations) and forwards (incoming citations)
  snowballing. The tool works by searching the [OpenAlex](https://openalex.org/) database
  for citation data. An example usage would be:

  ```bash
  asreview data snowball input_dataset.csv output_dataset.csv --forward
  ```

  This performs forwards snowballing on `input_dataset.csv` and writes the results to
  `output_dataset.csv`. For this to work it is necessary that the input dataset contains
  a column with DOI's or a column called `openalex_id` containing OpenAlex work
  identifiers. The output dataset will contain the columns `id`, `doi`, `title`, `abstract`, `referenced_works` and `publication_date`. In the case of forward snowballing it will
  contain all works in OpenAlex that have a reference to one of the included works in the
  input dataset. In the case of backward snowballing it will contain all works in OpenAlex
  with referenced by one of the included works of the input dataset.

  If you want to find references for all records in your dataset, instead of just the included works, you can include the flag `--all`, so for example:

  ```bash
  asreview data snowball input_dataset.csv output_dataset.csv --backward --all
  ```

  One thing to note is that OpenAlex will handle data requests faster if the sender sends along their email with the request (see [OpenAlex Polite Pool](https://docs.openalex.org/how-to-use-the-api/rate-limits-and-authentication#the-polite-pool
  )), you can to this using the `--email` argument. An example would be:

  ```bash
  asreview data snowball input_dataset.csv output_dataset.csv --backward --email my_email@provider.com
  ```



  This datatool is used to sample old, random and new records from your dataset by using the `asreview data sample` command. The sampled records are then stored in an output file. This can be useful for detecting concept drift, meaning that the words used for certain concepts change over time. This script assumes that the dataset includes a column named `publication_year`. An example would be:

  ```bash
  asreview data sample input_dataset.xlsx output_dataset.xslx 50
  ```
  This samples the `50` oldest and `50` newest records from `input_dataset.xlsx` and samples `50` records randomly (without overlap from the old and new partitions!). The resulting 150 records are written to `output_dataset.xlsx`.



  This extension is published under the [MIT license](/LICENSE).



  This extension is part of the ASReview project ([asreview.ai](https://asreview.ai)). It is maintained by the
  maintainers of ASReview LAB. See [ASReview
  LAB](https://github.com/asreview/asreview) for contact information and more
  resources.


pkgId: e07238b331b851505d39f7a83af4d1bb4095d43690ddf6cd3df244cc85fa540b
name: python-asreview-makita
arch: src
version: 0.10
epoch: 0
release: 1
summary: Makita workflow tool for the ASReview project
url: https://pypi.org/project/asreview-makita/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asreview-makita-0.10-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://badge.fury.io/py/asreview-makita.svg)](https://badge.fury.io/py/asreview-makita) [![Downloads](https://pepy.tech/badge/asreview-makita)](https://pepy.tech/project/asreview-makita) ![PyPI - License](https://img.shields.io/pypi/l/asreview-makita) [![DOI](https://zenodo.org/badge/530642619.svg)](https://zenodo.org/badge/latestdoi/530642619)

  [ASReviews](https://github.com/asreview/asreview)' Makita (**MAK**e **IT** **A**utomatic) is a workflow generator for simulation studies using the command line interface of [ASReview
  LAB](https://asreview.readthedocs.io/en/latest/simulation_cli.html). Makita can be used to effortlessly generate the framework and code for your simulation study.

  A simulation involves mimicking the screening process for a systematic review of a human in interaction with an Active learning model (i.e., a combination of a feature extractor, classifier,
  balancing method, and a query strategy). The simulation reenacts the screening process as if a researcher were using active learning. The performance of one or multiple model(s) can then be
  measured by performance metrics, such as the Work Saved over Sampling, recall at a given point in the screening process, or the average time to discover a relevant record.

  Using Makita templates, different study structures can be generated to fit the needs of your very own study. If your study requires a unique template, you can create a new one and use it
  instead.

  With [ASReview LAB](https://github.com/asreview/asreview), you can [simulate](https://asreview.readthedocs.io/en/latest/simulation_overview.html#overview) with the [web
  interface](https://asreview.readthedocs.io/en/latest/simulation_overview.html#simulating-with-asreview-lab), the [Python API](https://asreview.readthedocs.io/en/latest/simulation_api_example.html), or
  the [Command Line Interface (CLI)](https://asreview.readthedocs.io/en/latest/simulation_cli.html). Makita makes use of the CLI.

  What Makita does:

  - Setting up a workflow for running a large-scale simulation study
  - Preparing a Github repository
  - Automating the many lines of code needed
  - Creating a batch script for running the simulation study with just one line of code
  - Making your research fully reproducible
  - Allowing you to add templates to accommodate your own specific research question

  What Makita does not do:

  - Executing jobs or tasks itself
  - Being a black-box
  - Writing your paper

  For a tutorial on using Makita we refer to the [Exercise on Using the ASReview Simulation Mode](https://asreview.github.io/asreview-academy/simulation.html).





  ```
  Requires Python 3.8 or higher.
  ```



  ```bash
  pip install asreview-makita
  ```



  ```bash
  pip install --upgrade asreview-makita
  ```

  After installing the extension, ASReview should automatically detect Makita. If installed correctly, `asreview --help` should list Makita as an option.



  You can create the framework and code for your own simulation study in 4 steps.

  1. Create an project folder on your computer.
  2. Create a subfolder named `data` and fill it using one or more datasets.
  3. Using your preferred command line tool, `cd` into the project folder.
  4. Create a simulation study from a template found in the [list of templates](#templates) via

  ```console
  asreview makita template NAME_OF_TEMPLATE
  ```

  where `NAME_OF_TEMPLATE` is one of the templates (e.g. `asreview makita template arfi`).

  Your simulation study is now properly set up and ready for use. To start the simulations, execute the following shell script in the project folder:

  ```console
  sh jobs.sh
  ```

  Or on Windows:

  ```console
  jobs.bat
  ```

  The `jobs` script runs all jobs in the project folder.



  By default, ASReview Makita renders job files for the platform of rendering. It is possible to render jobs for other platforms as well. Use the argument `--platform` with values "Windows", "Linux", or "Darwin" (MacOS) to change the output.

  ```console
  asreview makita template basic --platform Windows
  ```

  By default, the job file depends on the platform. Windows users will see a `jobs.bat` file, while other users will see `jobs.sh`. You can overwrite this with

  ```console
  asreview makita template basic --job_file my_jobs_file.my_ext
  ```



  The following table gives an overview of the available templates.
  See [Getting started](#getting-started) for instructions on usage.

  > Note: If no seed is set with the template command, the default seed is used.
  > While this is important for the reproducibility of the results, it may lead to
  > long-term bias. To avoid seed-related bias across different simulation
  > studies, a seed should be for the prior records and models.



  command: `basic`

  The basic template prepares a script for conducting a simulation study with one run using the default model settings, and two randomly chosen priors (one relevant and one irrelevant record).

  optional arguments:

  ```console
    -h, --help                                show this help message and exit
    --job_file JOB_FILE, -f JOB_FILE          The name of the file with jobs.                 Default jobs.bat for Windows, otherwise jobs.sh.
    -s DATA_FOLDER                            Dataset folder
    -o OUTPUT_FOLDER                          Output folder
    --init_seed INIT_SEED                     Seed of the priors.                             Seed is set to 535 by default.
    --model_seed MODEL_SEED                   Seed of the models.                             Seed is set to 165 by default.
    --template TEMPLATE                       Overwrite template with template file path.
    --platform PLATFORM                       Platform to run jobs: Windows, Darwin, Linux.   Default: the system of rendering templates.
    --n_runs N_RUNS                           Number of runs.                                 Default: 1.
    --skip_wordclouds                         Disables the generation of wordclouds.
    --overwrite                               Automatically accepts all overwrite requests.
    --classifier CLASSIFIER                   Classifier to use.                              Default: nb.
    --feature_extractor FEATURE_EXTRACTOR     Feature_extractor to use.                       Default: tfidf.
    --query_strategy QUERY_STRATEGY           Query strategy to use.                          Default: max.
    --balance_strategy BALANCE_STRATEGY       Balance strategy to use.                        Default: double.
    --instances_per_query INSTANCES_PER_QUERY Number of instances per query.                  Default: 1.
    --stop_if STOP_IF                         The number of label actions to simulate.        Default 'min' will stop simulating when all relevant records are found.
  ```



  command: `arfi`

  The ARFI template (All relevant, fixed irrelevant) prepares a script for running a simulation study in such a way that for every relevant record 1 run will be executed with 10 randomly chosen irrelevant records which are kept constant over runs. When multiple datasets are available the template orders the tasks in the job file per dataset.

  optional arguments:

  ```console
    -h, --help                                show this help message and exit
    --job_file JOB_FILE, -f JOB_FILE          The name of the file with jobs.                 Default jobs.bat for Windows, otherwise jobs.sh.
    -s DATA_FOLDER                            Dataset folder
    -o OUTPUT_FOLDER                          Output folder
    --init_seed INIT_SEED                     Seed of the priors.                             Seed is set to 535 by default.
    --model_seed MODEL_SEED                   Seed of the models.                             Seed is set to 165 by default.
    --template TEMPLATE                       Overwrite template with template file path.
    --platform PLATFORM                       Platform to run jobs: Windows, Darwin, Linux.   Default: the system of rendering templates.
    --n_priors N_PRIORS                       Number of priors.                               Default: 10.
    --skip_wordclouds                         Disables the generation of wordclouds.
    --overwrite                               Automatically accepts all overwrite requests.
    --classifier CLASSIFIER                   Classifier to use.                              Default: nb.
    --feature_extractor FEATURE_EXTRACTOR     Feature_extractor to use.                       Default: tfidf.
    --query_strategy QUERY_STRATEGY           Query strategy to use.                          Default: max.
    --balance_strategy BALANCE_STRATEGY       Balance strategy to use.                        Default: double.
    --instances_per_query INSTANCES_PER_QUERY Number of instances per query.                  Default: 1.
    --stop_if STOP_IF                         The number of label actions to simulate.        Default 'min' will stop simulating when all relevant records are found.
  ```



  command: `multimodel`

  The multiple model template prepares a script for running a simulation study comparing multiple models for one dataset and a fixed set of priors (one relevant and one irrelevant record; identical across models).

  optional arguments:

  ```console
    -h, --help                                show this help message and exit
    --job_file JOB_FILE, -f JOB_FILE          The name of the file with jobs.                 Default jobs.bat for Windows, otherwise jobs.sh.
    -s DATA_FOLDER                            Dataset folder
    -o OUTPUT_FOLDER                          Output folder
    --init_seed INIT_SEED                     Seed of the priors.                             Seed is set to 535 by default.
    --model_seed MODEL_SEED                   Seed of the models.                             Seed is set to 165 by default.
    --template TEMPLATE                       Overwrite template with template file path.
    --platform PLATFORM                       Platform to run jobs: Windows, Darwin, Linux.   Default: the system of rendering templates.
    --n_runs N_RUNS                           Number of runs.                                 Default: 1.
    --skip_wordclouds                         Disables the generation of wordclouds.
    --overwrite                               Automatically accepts all overwrite requests.
    --instances_per_query INSTANCES_PER_QUERY Number of instances per query.                  Default: 1.
    --stop_if STOP_IF                         The number of label actions to simulate.        Default 'min' will stop simulating when all relevant records are found.
    --classifiers CLASSIFIERS                 Classifiers to use                              Default: ['logistic', 'nb', 'rf', 'svm']
    --feature_extractors FEATURE_EXTRACTOR    Feature extractors to use                       Default: ['doc2vec', 'sbert', 'tfidf']
    --query_strategies QUERY_STRATEGY         Query strategies to use                         Default: ['max']
    --balance_strategies BALANCE_STRATEGY     Balance strategies to use                       Default: ['double']
    --impossible_models IMPOSSIBLE_MODELS     Model combinations to exclude                   Default: ['nb,doc2vec', 'nb,sbert']
  ```



  If you want to specify certain combinations of classifiers and feature
  extractors that should and should not be used, you can use the `--classifiers`,
  `--feature_extractors`, `--query_strategies`, `--balance_strategies` and `--impossible_models` option. For instance, if you
  want to exclude the combinations of `nb` with `doc2vec` and `logistic` with
  `tfidf`, use the following command:

  ```console
  asreview makita template multimodel --classifiers logistic nb --feature_extractors tfidf doc2vec --query_strategies max max_random max_uncertainty cluster --impossible_models nb,doc2vec logistic,tfidf
  ```



  command: `prior`

  The prior template evaluates how large amounts of prior knowledge might affect simulation performance. It processes two types of data in the data folder: labeled dataset(s) to be simulated and labeled dataset(s) to be used as prior knowledge. The filename(s) of the dataset(s) containing the prior knowledge should use the naming prefix `prior_[dataset_name]`.

  The template runs two simulations: the first simulation uses all records from the `prior_` dataset(s) as prior knowledge, and the second uses a 1+1 randomly chosen set of prior knowledge from the non-prior knowledge dataset. Both runs simulate performance on the combined non-prior dataset(s).

  Running this template creates a `generated_data` folder. This folder contains two datasets; `dataset_with_priors.csv` and `dataset_without_priors.csv`. The simulations specified in the generated jobs file will use these datasets for their simulations.

  optional arguments:

  ```console
    -h, --help                                show this help message and exit
    --job_file JOB_FILE, -f JOB_FILE          The name of the file with jobs.                 Default jobs.bat for Windows, otherwise jobs.sh.
    -s DATA_FOLDER                            Dataset folder
    -o OUTPUT_FOLDER                          Output folder
    --init_seed INIT_SEED                     Seed of the priors.                             Seed is set to 535 by default.
    --model_seed MODEL_SEED                   Seed of the models.                             Seed is set to 165 by default.
    --template TEMPLATE                       Overwrite template with template file path.
    --platform PLATFORM                       Platform to run jobs: Windows, Darwin, Linux.   Default: the system of rendering templates.
    --n_runs N_RUNS                           Number of runs.                                 Default: 1.
    --skip_wordclouds                         Disables the generation of wordclouds.
    --overwrite                               Automatically accepts all overwrite requests.
    --classifier CLASSIFIER                   Classifier to use.                              Default: nb.
    --feature_extractor FEATURE_EXTRACTOR     Feature_extractor to use.                       Default: tfidf.
    --query_strategy QUERY_STRATEGY           Query strategy to use.                          Default: max.
    --balance_strategy BALANCE_STRATEGY       Balance strategy to use.                        Default: double.
    --instances_per_query INSTANCES_PER_QUERY Number of instances per query.                  Default: 1.
    --stop_if STOP_IF                         The number of label actions to simulate.        Default 'min' will stop simulating when all relevant records are found.
  ```



  Put at least 2 datasets in the data folder. One starting with the `prior_` prefix, and one without this prefix.

  > note: `priors_` will also work.

  ```console
  asreview makita template prior --classifier logistic --feature_extractor tfidf
  ```





  It is possible to overwrite the internal templates. This can be useful for simulation studies with different needs.

  1. Select an existing template that looks similar to your needs. For example, you want to run ARFI with a different model, then you pick the [ARFI template](#arfi-template).
  2. Download the template you selected in step 1 from the [Github repository](https://github.com/asreview/asreview-makita/tree/main/asreviewcontrib/makita/templates). Template files have the following
     structure `template_*.txt.template`. For the ARFI example, the template is
     [template_arfi.txt.template](https://github.com/asreview/asreview-makita/blob/main/asreviewcontrib/makita/templates/template_arfi.txt.template).
  3. Save the downloaded template somewhere on your computer. The template is a so-called "Jinja" template. The template consists of [ASReview command line
     commands](https://asreview.readthedocs.io/en/latest/API/cli.html) combined with jinja syntax. The Jinja syntax is very intuitive. See this
     [Cheatsheet](https://cheatography.com/skalavala/cheat-sheets/jinja/).
  4. Edit the Jinja template to your needs.
  5. Run the custom template with the command line option `--template PATH_TO_MY_TEMPLATE.txt.template`. For the ARFI example, this would be `asreview makita template arfi --template
  PATH_TO_MY_TEMPLATE.txt.template`. Please keep in mind that you follow the usual steps for running a template.
  6. A `jobs.sh` file should be in the your folder.

  Please contribute your templates back to the project by making a Pull Request. Then, we can integrate it in the core of the makita package.



  Makita can add scripts to your repository. The scripts are mainly pre- and postprocessing scripts. These scripts are not (yet) available in any existing ASReview software. Therefore, they can be added manually
  with `asreview makita add-script NAME_OF_SCRIPT`.

  For example, the results from _ASReview datatools_ are merged via the script `merge_descriptives.py` (or `merge_metrics.py` for _ASReview insights_), using:

  1. Collect statistics (with template)
  2. Run `asreview makita add-script merge_descriptives.py`
  3. Run `python scripts/merge_descriptives.py`

  Use `-s` (source) and `-o` (output) to tweak paths.

  Some scripts are added automatically to the folder, as they are part of the
  template. For example, the `get_plot.py` script is added to the generated folder
  when using any template, as it is used to generate the plots.

  Still, `get_plot.py` can be used on its own, as it is a standalone script. To use it,
  use `-s` (source) and `-o` (output) to tweak paths.

  Adding a legend to the plot can be done with the `-l` or `--show_legend` flag,
  with the labels clustered on any of the following: `'filename', 'model', 'query_strategy', 'balance_strategy', 'feature_extraction', 'n_instances', 'stop_if', 'n_prior_included', 'n_prior_excluded', 'model_param', 'query_param', 'feature_param', 'balance_param'`



  The following scripts are available:

  - get_plot.py
  - get_settings_from_state.py
  - merge_descriptives.py
  - merge_metrics.py
  - merge_tds.py
  - split_data_with_multiple_labels.py [DEPRECATED]



  The 'merge_tds.py' script creates a table of the time to discovery (TD) values for each dataset, with each row corresponding to each record ID of the relevant records in a dataset, and the columns correspond to each simulation run (e.g, for the Multimodel template each column corresponds to a simualtion run with each active learning model). Additionally, the tables includes the average-record-TD values (the average of the TD values for a record across multiple simulation runs), and the average-simulation-TD values (the average of the TD values across all records for a single simulation run).



  To run Makita template with Docker use the following command:

  ```docker
  docker run -v $PWD:/app ghcr.io/asreview/asreview makita <YOUR COMMAND>
  ```



  This extension is published under the [MIT license](/LICENSE).



  This extension is part of the ASReview project ([asreview.ai](https://asreview.ai)). It is maintained by the maintainers of ASReview LAB. See [ASReview LAB](https://github.com/asreview/asreview) for
  contact information and more resources.


pkgId: 95a2913b788115acdf123ddd6cadc1a23640a2a799b0b1cd067b6272495ccdac
name: python-asreview-makita
arch: src
version: 0.10.1
epoch: 0
release: 1
summary: Makita workflow tool for the ASReview project
url: https://pypi.org/project/asreview-makita/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asreview-makita-0.10.1-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://badge.fury.io/py/asreview-makita.svg)](https://badge.fury.io/py/asreview-makita) [![Downloads](https://pepy.tech/badge/asreview-makita)](https://pepy.tech/project/asreview-makita) ![PyPI - License](https://img.shields.io/pypi/l/asreview-makita) [![DOI](https://zenodo.org/badge/530642619.svg)](https://zenodo.org/badge/latestdoi/530642619)

  [ASReviews](https://github.com/asreview/asreview)' Makita (**MAK**e **IT** **A**utomatic) is a workflow generator for simulation studies using the command line interface of [ASReview
  LAB](https://asreview.readthedocs.io/en/latest/simulation_cli.html). Makita can be used to effortlessly generate the framework and code for your simulation study.

  A simulation involves mimicking the screening process for a systematic review of a human in interaction with an Active learning model (i.e., a combination of a feature extractor, classifier,
  balancing method, and a query strategy). The simulation reenacts the screening process as if a researcher were using active learning. The performance of one or multiple model(s) can then be
  measured by performance metrics, such as the Work Saved over Sampling, recall at a given point in the screening process, or the average time to discover a relevant record.

  Using Makita templates, different study structures can be generated to fit the needs of your very own study. If your study requires a unique template, you can create a new one and use it
  instead.

  With [ASReview LAB](https://github.com/asreview/asreview), you can [simulate](https://asreview.readthedocs.io/en/latest/simulation_overview.html#overview) with the [web
  interface](https://asreview.readthedocs.io/en/latest/simulation_overview.html#simulating-with-asreview-lab), the [Python API](https://asreview.readthedocs.io/en/latest/simulation_api_example.html), or
  the [Command Line Interface (CLI)](https://asreview.readthedocs.io/en/latest/simulation_cli.html). Makita makes use of the CLI.

  What Makita does:

  - Setting up a workflow for running a large-scale simulation study
  - Preparing a Github repository
  - Automating the many lines of code needed
  - Creating a batch script for running the simulation study with just one line of code
  - Making your research fully reproducible
  - Allowing you to add templates to accommodate your own specific research question

  What Makita does not do:

  - Executing jobs or tasks itself
  - Being a black-box
  - Writing your paper

  For a tutorial on using Makita we refer to the [Exercise on Using the ASReview Simulation Mode](https://asreview.github.io/asreview-academy/simulation.html).





  ```
  Requires Python 3.8 or higher.
  ```



  ```bash
  pip install asreview-makita
  ```



  ```bash
  pip install --upgrade asreview-makita
  ```

  After installing the extension, ASReview should automatically detect Makita. If installed correctly, `asreview --help` should list Makita as an option.



  You can create the framework and code for your own simulation study in 4 steps.

  1. Create an project folder on your computer.
  2. Create a subfolder named `data` and fill it using one or more datasets.
  3. Using your preferred command line tool, `cd` into the project folder.
  4. Create a simulation study from a template found in the [list of templates](#templates) via

  ```console
  asreview makita template NAME_OF_TEMPLATE
  ```

  where `NAME_OF_TEMPLATE` is one of the templates (e.g. `asreview makita template arfi`).

  Your simulation study is now properly set up and ready for use. To start the simulations, execute the following shell script in the project folder:

  ```console
  sh jobs.sh
  ```

  Or on Windows:

  ```console
  jobs.bat
  ```

  The `jobs` script runs all jobs in the project folder.



  By default, ASReview Makita renders job files for the platform of rendering. It is possible to render jobs for other platforms as well. Use the argument `--platform` with values "Windows", "Linux", or "Darwin" (MacOS) to change the output.

  ```console
  asreview makita template basic --platform Windows
  ```

  By default, the job file depends on the platform. Windows users will see a `jobs.bat` file, while other users will see `jobs.sh`. You can overwrite this with

  ```console
  asreview makita template basic --job_file my_jobs_file.my_ext
  ```



  The following table gives an overview of the available templates.
  See [Getting started](#getting-started) for instructions on usage.

  > Note: If no seed is set with the template command, the default seed is used.
  > While this is important for the reproducibility of the results, it may lead to
  > long-term bias. To avoid seed-related bias across different simulation
  > studies, a seed should be for the prior records and models.



  command: `basic`

  The basic template prepares a script for conducting a simulation study with one run using the default model settings, and two randomly chosen priors (one relevant and one irrelevant record).

  optional arguments:

  ```console
    -h, --help                                show this help message and exit
    --job_file JOB_FILE, -f JOB_FILE          The name of the file with jobs.                 Default jobs.bat for Windows, otherwise jobs.sh.
    -s DATA_FOLDER                            Dataset folder
    -o OUTPUT_FOLDER                          Output folder
    --init_seed INIT_SEED                     Seed of the priors.                             Seed is set to 535 by default.
    --model_seed MODEL_SEED                   Seed of the models.                             Seed is set to 165 by default.
    --template TEMPLATE                       Overwrite template with template file path.
    --platform PLATFORM                       Platform to run jobs: Windows, Darwin, Linux.   Default: the system of rendering templates.
    --n_runs N_RUNS                           Number of runs.                                 Default: 1.
    --skip_wordclouds                         Disables the generation of wordclouds.
    --overwrite                               Automatically accepts all overwrite requests.
    --classifier CLASSIFIER                   Classifier to use.                              Default: nb.
    --feature_extractor FEATURE_EXTRACTOR     Feature_extractor to use.                       Default: tfidf.
    --query_strategy QUERY_STRATEGY           Query strategy to use.                          Default: max.
    --balance_strategy BALANCE_STRATEGY       Balance strategy to use.                        Default: double.
    --instances_per_query INSTANCES_PER_QUERY Number of instances per query.                  Default: 1.
    --stop_if STOP_IF                         The number of label actions to simulate.        Default 'min' will stop simulating when all relevant records are found.
  ```



  command: `arfi`

  The ARFI template (All relevant, fixed irrelevant) prepares a script for running a simulation study in such a way that for every relevant record 1 run will be executed with 10 randomly chosen irrelevant records which are kept constant over runs. When multiple datasets are available the template orders the tasks in the job file per dataset.

  optional arguments:

  ```console
    -h, --help                                show this help message and exit
    --job_file JOB_FILE, -f JOB_FILE          The name of the file with jobs.                 Default jobs.bat for Windows, otherwise jobs.sh.
    -s DATA_FOLDER                            Dataset folder
    -o OUTPUT_FOLDER                          Output folder
    --init_seed INIT_SEED                     Seed of the priors.                             Seed is set to 535 by default.
    --model_seed MODEL_SEED                   Seed of the models.                             Seed is set to 165 by default.
    --template TEMPLATE                       Overwrite template with template file path.
    --platform PLATFORM                       Platform to run jobs: Windows, Darwin, Linux.   Default: the system of rendering templates.
    --n_priors N_PRIORS                       Number of priors.                               Default: 10.
    --skip_wordclouds                         Disables the generation of wordclouds.
    --overwrite                               Automatically accepts all overwrite requests.
    --classifier CLASSIFIER                   Classifier to use.                              Default: nb.
    --feature_extractor FEATURE_EXTRACTOR     Feature_extractor to use.                       Default: tfidf.
    --query_strategy QUERY_STRATEGY           Query strategy to use.                          Default: max.
    --balance_strategy BALANCE_STRATEGY       Balance strategy to use.                        Default: double.
    --instances_per_query INSTANCES_PER_QUERY Number of instances per query.                  Default: 1.
    --stop_if STOP_IF                         The number of label actions to simulate.        Default 'min' will stop simulating when all relevant records are found.
  ```



  command: `multimodel`

  The multiple model template prepares a script for running a simulation study comparing multiple models for one dataset and a fixed set of priors (one relevant and one irrelevant record; identical across models).

  optional arguments:

  ```console
    -h, --help                                show this help message and exit
    --job_file JOB_FILE, -f JOB_FILE          The name of the file with jobs.                 Default jobs.bat for Windows, otherwise jobs.sh.
    -s DATA_FOLDER                            Dataset folder
    -o OUTPUT_FOLDER                          Output folder
    --init_seed INIT_SEED                     Seed of the priors.                             Seed is set to 535 by default.
    --model_seed MODEL_SEED                   Seed of the models.                             Seed is set to 165 by default.
    --template TEMPLATE                       Overwrite template with template file path.
    --platform PLATFORM                       Platform to run jobs: Windows, Darwin, Linux.   Default: the system of rendering templates.
    --n_runs N_RUNS                           Number of runs.                                 Default: 1.
    --skip_wordclouds                         Disables the generation of wordclouds.
    --overwrite                               Automatically accepts all overwrite requests.
    --instances_per_query INSTANCES_PER_QUERY Number of instances per query.                  Default: 1.
    --stop_if STOP_IF                         The number of label actions to simulate.        Default 'min' will stop simulating when all relevant records are found.
    --classifiers CLASSIFIERS                 Classifiers to use                              Default: ['logistic', 'nb', 'rf', 'svm']
    --feature_extractors FEATURE_EXTRACTOR    Feature extractors to use                       Default: ['doc2vec', 'sbert', 'tfidf']
    --query_strategies QUERY_STRATEGY         Query strategies to use                         Default: ['max']
    --balance_strategies BALANCE_STRATEGY     Balance strategies to use                       Default: ['double']
    --impossible_models IMPOSSIBLE_MODELS     Model combinations to exclude                   Default: ['nb,doc2vec', 'nb,sbert']
  ```



  If you want to specify certain combinations of classifiers and feature
  extractors that should and should not be used, you can use the `--classifiers`,
  `--feature_extractors`, `--query_strategies`, `--balance_strategies` and `--impossible_models` option. For instance, if you
  want to exclude the combinations of `nb` with `doc2vec` and `logistic` with
  `tfidf`, use the following command:

  ```console
  asreview makita template multimodel --classifiers logistic nb --feature_extractors tfidf doc2vec --query_strategies max max_random max_uncertainty cluster --impossible_models nb,doc2vec logistic,tfidf
  ```



  command: `prior`

  The prior template evaluates how a set of custom prior knowledge might affect simulation performance. It processes two types of data in the data folder: labeled dataset(s) to be simulated and labeled dataset(s) to be used as prior knowledge. The filename(s) of the dataset(s) containing the custom prior knowledge should use the naming prefix `prior_[dataset_name]`.

  The template runs two simulations: the first simulation uses all records from the `prior_` dataset(s) as prior knowledge, and the second uses a 1+1 randomly chosen set of prior knowledge from the non-prior knowledge dataset as a minimal training set. Both runs simulate performance on the combined non-prior dataset(s).

  Running this template creates a `generated_data` folder. This folder contains two datasets; `dataset_with_priors.csv` and `dataset_without_priors.csv`. The simulations specified in the generated jobs file will use these datasets for their simulations.

  optional arguments:

  ```console
    -h, --help                                show this help message and exit
    --job_file JOB_FILE, -f JOB_FILE          The name of the file with jobs.                 Default jobs.bat for Windows, otherwise jobs.sh.
    -s DATA_FOLDER                            Dataset folder
    -o OUTPUT_FOLDER                          Output folder
    --init_seed INIT_SEED                     Seed of the priors.                             Seed is set to 535 by default.
    --model_seed MODEL_SEED                   Seed of the models.                             Seed is set to 165 by default.
    --template TEMPLATE                       Overwrite template with template file path.
    --platform PLATFORM                       Platform to run jobs: Windows, Darwin, Linux.   Default: the system of rendering templates.
    --n_runs N_RUNS                           Number of runs.                                 Default: 1.
    --skip_wordclouds                         Disables the generation of wordclouds.
    --overwrite                               Automatically accepts all overwrite requests.
    --classifier CLASSIFIER                   Classifier to use.                              Default: nb.
    --feature_extractor FEATURE_EXTRACTOR     Feature_extractor to use.                       Default: tfidf.
    --query_strategy QUERY_STRATEGY           Query strategy to use.                          Default: max.
    --balance_strategy BALANCE_STRATEGY       Balance strategy to use.                        Default: double.
    --instances_per_query INSTANCES_PER_QUERY Number of instances per query.                  Default: 1.
    --stop_if STOP_IF                         The number of label actions to simulate.        Default 'min' will stop simulating when all relevant records are found.
  ```



  Put at least 2 datasets in the data folder. One starting with the `prior_` prefix, and one without this prefix.

  > note: `priors_` will also work.

  ```console
  asreview makita template prior --classifier logistic --feature_extractor tfidf
  ```





  It is possible to overwrite the internal templates. This can be useful for simulation studies with different needs.

  1. Select an existing template that looks similar to your needs. For example, you want to run ARFI with a different model, then you pick the [ARFI template](#arfi-template).
  2. Download the template you selected in step 1 from the [Github repository](https://github.com/asreview/asreview-makita/tree/main/asreviewcontrib/makita/templates). Template files have the following
     structure `template_*.txt.template`. For the ARFI example, the template is
     [template_arfi.txt.template](https://github.com/asreview/asreview-makita/blob/main/asreviewcontrib/makita/templates/template_arfi.txt.template).
  3. Save the downloaded template somewhere on your computer. The template is a so-called "Jinja" template. The template consists of [ASReview command line
     commands](https://asreview.readthedocs.io/en/latest/API/cli.html) combined with jinja syntax. The Jinja syntax is very intuitive. See this
     [Cheatsheet](https://cheatography.com/skalavala/cheat-sheets/jinja/).
  4. Edit the Jinja template to your needs.
  5. Run the custom template with the command line option `--template PATH_TO_MY_TEMPLATE.txt.template`. For the ARFI example, this would be `asreview makita template arfi --template
  PATH_TO_MY_TEMPLATE.txt.template`. Please keep in mind that you follow the usual steps for running a template.
  6. A `jobs.sh` file should be in the your folder.

  Please contribute your templates back to the project by making a Pull Request. Then, we can integrate it in the core of the makita package.



  Makita can add scripts to your repository. The scripts are mainly pre- and postprocessing scripts. These scripts are not (yet) available in any existing ASReview software. Therefore, they can be added manually
  with `asreview makita add-script NAME_OF_SCRIPT`.

  For example, the results from _ASReview datatools_ are merged via the script `merge_descriptives.py` (or `merge_metrics.py` for _ASReview insights_), using:

  1. Collect statistics (with template)
  2. Run `asreview makita add-script merge_descriptives.py`
  3. Run `python scripts/merge_descriptives.py`

  Use `-s` (source) and `-o` (output) to tweak paths.

  Some scripts are added automatically to the folder, as they are part of the
  template. For example, the `get_plot.py` script is added to the generated folder
  when using any template, as it is used to generate the plots.

  Still, `get_plot.py` can be used on its own, as it is a standalone script. To use it,
  use `-s` (source) and `-o` (output) to tweak paths.

  Adding a legend to the plot can be done with the `-l` or `--show_legend` flag,
  with the labels clustered on any of the following: `'filename', 'model', 'query_strategy', 'balance_strategy', 'feature_extraction', 'n_instances', 'stop_if', 'n_prior_included', 'n_prior_excluded', 'model_param', 'query_param', 'feature_param', 'balance_param'`



  The following scripts are available:

  - get_plot.py
  - get_settings_from_state.py
  - merge_descriptives.py
  - merge_metrics.py
  - merge_tds.py
  - split_data_with_multiple_labels.py [DEPRECATED]



  The 'merge_tds.py' script creates a table of the time to discovery (TD) values for each dataset, with each row corresponding to each record ID of the relevant records in a dataset, and the columns correspond to each simulation run (e.g, for the Multimodel template each column corresponds to a simualtion run with each active learning model). Additionally, the tables includes the average-record-TD values (the average of the TD values for a record across multiple simulation runs), and the average-simulation-TD values (the average of the TD values across all records for a single simulation run).



  To run Makita template with Docker use the following command:

  ```docker
  docker run -v $PWD:/app ghcr.io/asreview/asreview makita <YOUR COMMAND>
  ```



  This extension is published under the [MIT license](/LICENSE).



  This extension is part of the ASReview project ([asreview.ai](https://asreview.ai)). It is maintained by the maintainers of ASReview LAB. See [ASReview LAB](https://github.com/asreview/asreview) for
  contact information and more resources.


pkgId: 1883ec97bac07fc94892d310cbb16b5702e1bb7b0783d8d3dcde77ffe97783f8
name: python-asreview-wordcloud
arch: src
version: 1.0.1
epoch: 0
release: 1
summary: Wordcloud tools for the ASReview project
url: https://github.com/asreview/asreview-wordcloud
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asreview-wordcloud-1.0.1-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://badge.fury.io/py/asreview-wordcloud.svg)](https://badge.fury.io/py/asreview-wordcloud) [![Downloads](https://pepy.tech/badge/asreview-wordcloud)](https://pepy.tech/project/asreview-wordcloud) ![Deploy and release](https://github.com/asreview/asreview-wordcloud/workflows/Deploy%20and%20release/badge.svg) ![Build status](https://github.com/asreview/asreview-wordcloud/workflows/test-suite/badge.svg) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.4672242.svg)](https://doi.org/10.5281/zenodo.4672242)


  ASReview-wordcloud is an extension for the [ASReview
  LAB](https://github.com/asreview/asreview) software. It offers an easy way to
  create a visual impression of the contents of datasets.



  The easiest way to install the wordcloud extension is to install from PyPI:

  ``` bash
  pip install asreview-wordcloud
  ```

  After installation of the wordcloud extension, `asreview` should automatically
  detect it. Test this by:

  ```bash
  asreview --help
  ```

  It should list the `wordcloud` subcommand.



  The dataset should contain a column containing titles and/or abstracts.
  For specific requirements check the [ASReview documentation](https://asreview.readthedocs.io/en/latest/intro/datasets.html).
  To use your data use:

  ```
  asreview wordcloud MY_DATA.csv
  ```

  The following shows the [Schoot et al. (2017) dataset:](https://asreview.readthedocs.io/en/latest/intro/datasets.html#benchmark-datasets)

  ![All texts](https://github.com/asreview/asreview-wordcloud/blob/main/figures/ptsd_all.png?raw=true)

  To make a wordcloud on titles only, use the `title` flag.

  ```
  asreview wordcloud MY_DATA.csv --title
  ```

  ![Titles only](https://github.com/asreview/asreview-wordcloud/blob/main/figures/ptsd_title.png?raw=true)

  To make a wordcloud on abstracts only, use the `abstract` flag.

  ```
  asreview wordcloud MY_DATA.csv --abstract
  ```

  ![Abstracts only](https://github.com/asreview/asreview-wordcloud/blob/main/figures/ptsd_abstract.png?raw=true)

  To make a wordcloud on relevant (inclusions) only, use the `relevant` flag.

  ```
  asreview wordcloud MY_DATA.csv --relevant
  ```



  Save the wordcloud to a file with the `-o`  flag.

  ```
  asreview wordcloud MY_DATA.csv -o MY_DATA_WORDCLOUD.png
  ```



  This extension is published under the [MIT license](/LICENSE).



  This extension is part of the ASReview project ([asreview.ai](https://asreview.ai)). It is maintained by the
  maintainers of ASReview LAB. See [ASReview
  LAB](https://github.com/asreview/asreview) for contact information and more
  resources.


pkgId: 216e546bb1683b747da7db41d931236f7e61065aa2b70d93caa0f690cc37e234
name: python-asrl-pyboreas
arch: src
version: 1.0.5
epoch: 0
release: 1
summary: A toolkit for working with the Boreas dataset in Python
url: https://github.com/utiasASRL/boreas-devkit
rpm_license: BSD
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asrl-pyboreas-1.0.5-1.src.rpm
checksum_type: sha256
description:
  ![Boreas](https://github.com/utiasASRL/pyboreas/blob/master/pyboreas/figs/pyboreas.png)

  This devkit provides tools for working with the Boreas Dataset, an all-weather autonomous driving dataset which includes a 128-beam Velodyne Alpha-Prime lidar, a 5MP Blackfly camera, a 360 degree Navtech radar, and post-processed Applanix POS LV GNSS data. Our dataset currently suports benchmarking odometry, localization, and 3D object detection.

  Our leaderboard is now live! Baseline implementations for each leaderboard are coming soon.

  If you find our dataset useful in your research, please cite our dataset paper:

  [Boreas: A Multi-Season Autonomous Driving Dataset](https://arxiv.org/abs/2203.10168)

  ```
  @article{burnett_ijrr23,
  author = {Keenan Burnett and David J Yoon and Yuchen Wu and Andrew Z Li and Haowei Zhang and Shichen Lu and Jingxing Qian and Wei-Kang Tseng and Andrew Lambert and Keith YK Leung and Angela P Schoellig and Timothy D Barfoot},
  title ={Boreas: A multi-season autonomous driving dataset},
  journal = {The International Journal of Robotics Research},
  volume = {42},
  number = {1-2},
  pages = {33-42},
  year = {2023},
  doi = {10.1177/02783649231160195},
  }

  ```





  ```
  pip install asrl-pyboreas
  ```



  ```
  git clone https://github.com/utiasASRL/pyboreas.git
  pip install -e pyboreas
  ```



  1. [Create an AWS account (OPTIONAL)](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/)
  2. [Install the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)
  3. Create a `root` folder to store the dataset, example: `/path/to/data/boreas/` Each sequence will then be a folder under `root`.
  4. Use the AWS CLI to download either the entire dataset or only the desired sequences and sensors.

  **Don't have an AWS Account?** Add `--no-sign-request` after each AWS CLI command.

  The following command will download the entire Boreas dataset:

  ```text
  root=/path/to/data/boreas/
  aws s3 sync s3://boreas $root
  ```

  The following command will list all the top-level prefixes (sequences):

  ```text
  root=/path/to/data/boreas/
  aws s3 ls s3://boreas
  ```

  Alternatively, [boreas.utias.utoronto.ca (Work In Progress)](https://www.boreas.utias.utoronto.ca/#/download) can be used to browse through sequences so as to pick and choose what data to download. The website will then generate a list of AWS CLI commands that can be run as a bash script. These commands will look something like:

  ```text
  root=/path/to/data/boreas/
  cd $root
  aws s3 sync s3://boreas/boreas-2020-11-26-13-58 boreas-2020-11-26-13-58 --exclude "*" \
      --include "lidar/*" --include "radar/*" \
      --include "applanix/*" --include "calib/*"
  ```



  ```Python
  import numpy as np
  from pyboreas import BoreasDataset

  root = '/path/to/data/boreas/'
  bd = BoreasDataset(root)







  for seq in bd.sequences:
      
      for camera_frame in seq.camera:
          img = camera_frame.img  # np.ndarray
          
          camera_frame.unload_data() # Memory reqs will keep increasing without this
      for lidar_frame in seq.lidar:
          pts = lidar_frame.points  # np.ndarray (x,y,z,i,r,t)
          
          lidar_frame.unload_data() # Memory reqs will keep increasing without this
      
      N = len(seq.radar_frames)
      for i in range(N):
          radar_frame = seq.get_radar(i)
          
          radar_frame.unload_data() # Memory reqs will keep increasing without this


  cam_iter = bd.sequences[0].get_camera_iter()
  cam0 = next(cam_iter)  # First camera frame
  cam1 = next(cam_iter)  # Second camera frame


  N = len(bd.lidar_frames)
  indices = np.random.permutation(N)
  for idx in indices:
      lidar_frame = bd.get_lidar(idx)
      
      lidar_frame.unload_data() # Memory reqs will keep increasing without this


  calib = bd.sequences[0].calib
  point_lidar = np.array([1, 0, 0, 1]).reshape(4, 1)
  point_camera = np.matmul(calib.T_camera_lidar, point_lidar)






  lidar_frame = bd.get_lidar(0)
  t = lidar_frame.timestamp  # timestamp in seconds
  T_enu_lidar = lidar_frame.pose  # 4x4 homogenous transform [R t; 0 0 0 1]
  vbar = lidar_frame.velocity  # 6x1 vel in ENU frame [v_se_in_e; w_se_in_e]
  varpi = lidar_frame.body_rate  # 6x1 vel in sensor frame [v_se_in_s; w_se_in_s]
  ```



  Note that we provide a few simple tutorials for getting started with the Boreas dataset. Also note that we provide instructions for using this dataset using an AWS SageMaker instance, instructions at: pyboreas/tutorials/aws/README.md.

  **NOTE:** ground truth poses have dtype=np.float64, but PyTorch defaults to float32. Avoid using implicit type conversion as this will result in significant quantization error. Implicit conversion is only safe when the translation values are small, such as a pose with respect to a sensor frame or with respect to a starting position, but NOT with respect to ENU (very large).

  TODO:

  - Pointcloud voxelization


pkgId: 02d15e1cfba7760e4fc76f1c52dbc55060cf720c5c6984478bb599deea182e77
name: python-asrp
arch: src
version: 0.0.75
epoch: 0
release: 1
summary: please add a summary manually as the author left a blank one
url: https://github.com/voidful/asrp
rpm_license: Apache
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asrp-0.0.75-1.src.rpm
checksum_type: sha256
description:
  ASRP is a python package that offers a set of tools to preprocess and evaluate ASR (Automatic Speech Recognition) text.
  The package also provides a speech-to-text transcription tool and a text-to-speech conversion tool. The code is
  open-source and can be installed using pip.

  Key Features

  - [Preprocess ASR text with ease](#preprocess)
  - [Evaluate ASR output quality](#Evaluation)
  - [Transcribe speech to Hubert code](#speech-to-discrete-unit)
  - [Convert unit code to speech](#discrete-unit-to-speech)
  - [Enhance speech quality with a noise reduction tool](#speech-enhancement)
  - [LiveASR tool for real-time speech recognition](#liveasr---huggingfaces-model)
  - [Speaker Embedding Extraction (x-vector/d-vector)](#speaker-embedding-extraction---x-vector)



  `pip install asrp`



  ASRP offers an easy-to-use set of functions to preprocess ASR text data.
  The input data is a dictionary with the key 'sentence', and the output is the preprocessed text.
  You can either use the fun_en function or use dynamic loading. Here's how to use it:

  ```python
  import asrp

  batch_data = {
      'sentence': "I'm fine, thanks."
  }
  asrp.fun_en(batch_data)
  ```

  dynamic loading

  ```python
  import asrp

  batch_data = {
      'sentence': "I'm fine, thanks."
  }
  preprocessor = getattr(asrp, 'fun_en')
  preprocessor(batch_data)
  ```



  ASRP provides functions to evaluate the output quality of ASR systems using
  the Word Error Rate (WER) and Character Error Rate (CER) metrics.
  Here's how to use it:

  ```python
  import asrp

  targets = ['HuggingFace is great!', 'Love Transformers!', 'Let\'s wav2vec!']
  preds = ['HuggingFace is awesome!', 'Transformers is powerful.', 'Let\'s finetune wav2vec!']
  print("chunk size WER: {:2f}".format(100 * asrp.chunked_wer(targets, preds, chunk_size=None)))
  print("chunk size CER: {:2f}".format(100 * asrp.chunked_cer(targets, preds, chunk_size=None)))
  ```



  ```python
  import asrp
  import nlp2



  nlp2.download_file(
      'https://huggingface.co/voidful/mhubert-base/resolve/main/mhubert_base_vp_en_es_fr_it3_L11_km1000.bin', './')
  hc = asrp.HubertCode("voidful/mhubert-base", './mhubert_base_vp_en_es_fr_it3_L11_km1000.bin', 11,
                       chunk_sec=30,
                       worker=20)
  hc('voice file path')
  ```



  ```python
  import asrp

  code = []  # discrete unit


  cs = asrp.Code2Speech(tts_checkpoint='./tts_checkpoint_best.pt', waveglow_checkpint='waveglow_256channels_new.pt')
  cs(code)


  import IPython.display as ipd

  ipd.Audio(data=cs(code), autoplay=False, rate=cs.sample_rate)
  ```

  mhubert English hifigan vocoder example

  ```python
  import asrp
  import nlp2
  import IPython.display as ipd
  from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
  nlp2.download_file(
      'https://dl.fbaipublicfiles.com/fairseq/speech_to_speech/vocoder/code_hifigan/mhubert_vp_en_es_fr_it3_400k_layer11_km1000_lj/g_00500000',
      './')


  tokenizer = AutoTokenizer.from_pretrained("voidful/mhubert-unit-tts")
  model = AutoModelForSeq2SeqLM.from_pretrained("voidful/mhubert-unit-tts")
  model.eval()
  cs = asrp.Code2Speech(tts_checkpoint='./g_00500000', vocoder='hifigan')

  inputs = tokenizer(["The quick brown fox jumps over the lazy dog."], return_tensors="pt")
  code = tokenizer.batch_decode(model.generate(**inputs,max_length=1024))[0]
  code = [int(i) for i in code.replace("</s>","").replace("<s>","").split("v_tok_")[1:]]
  print(code)
  ipd.Audio(data=cs(code), autoplay=False, rate=cs.sample_rate)

  ```



  ASRP also provides a tool to enhance speech quality with a noise reduction tool.
  from https://github.com/facebookresearch/fairseq/tree/main/examples/speech_synthesis/preprocessing/denoiser

  ```python
  from asrp import SpeechEnhancer

  ase = SpeechEnhancer()
  print(ase('./test/xxx.wav'))
  ```



  * modify from https://github.com/oliverguhr/wav2vec2-live

  ```python
  from asrp.live import LiveSpeech

  english_model = "voidful/wav2vec2-xlsr-multilingual-56"
  asr = LiveSpeech(english_model, device_name="default")
  asr.start()

  try:
      while True:
          text, sample_length, inference_time = asr.get_last_text()
          print(f"{sample_length:.3f}s"
                + f"\t{inference_time:.3f}s"
                + f"\t{text}")

  except KeyboardInterrupt:
      asr.stop()
  ```



  ```python
  from asrp.live import LiveSpeech

  whisper_model = "tiny"
  asr = LiveSpeech(whisper_model, vad_mode=2, language='zh')
  asr.start()
  last_text = ""
  while True:
      asr_text = ""
      try:
          asr_text, sample_length, inference_time = asr.get_last_text()
          if len(asr_text) > 0:
              print(asr_text, sample_length, inference_time)
      except KeyboardInterrupt:
          asr.stop()
          break

  ```



  from https://speechbrain.readthedocs.io/en/latest/API/speechbrain.lobes.models.Xvector.html

  ```python
  from asrp.speaker_embedding import extract_x_vector

  extract_x_vector('./test/xxx.wav')
  ```



  from https://github.com/yistLin/dvector

  ```python
  from asrp.speaker_embedding import extract_d_vector

  extract_d_vector('./test/xxx.wav')
  ```


pkgId: a21c989d3eacbbf6945518f330bb74ce29263c702b8cbf2627499004a0960ad9
name: python-asrtoolkit
arch: src
version: 0.2.4
epoch: 0
release: 1
url: http://github.com/finos-voice/greenkey-asrtoolkit
rpm_license: Apache v2
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asrtoolkit-0.2.4-1.src.rpm
checksum_type: sha256
summary:
  The GreenKey ASRToolkit provides tools for automatic speech recognition (ASR) file conversion and corpora organization.

description:
  File formats have format-specific handlers in asrtoolkit/data_handlers. The scripts `convert_transcript` and `wer` support [`stm`](http://www1.icsi.berkeley.edu/Speech/docs/sctk-1.2/infmts.htm), [`srt`](http://zuggy.wz.cz/), [`vtt`](https://w3c.github.io/webvtt/), `txt`, and [GreenKey `json`](https://transcription.greenkeytech.com/) formatted transcripts. A custom `html` format is also available, though this should not be considered a stable format for long term storage as it is subject to change without notice.

  ```text
  usage: convert_transcript [-h] input_file output_file
  convert a single transcript from one text file format to another
  positional arguments:
    input_file   input file
    output_file  output file
  optional arguments:
    -h, --help   show this help message and exit
  ```
  This tool allows for easy conversion among file formats listed above.
  Note: Attributes of a segment object not present in a parsed file retain their default values
  - For example, a `segment` object is created for each line of an STM line
  - each is initialized with the following default values which are not encoded in STM files: `formatted_text=''`;  `confidence=1.0`

  ```text
  usage: wer [-h] [--char-level] [--ignore-nsns]
             reference_file transcript_file
  Compares a reference and transcript file and calculates word error rate (WER)
  between these two files
  positional arguments:
    reference_file   reference "truth" file
    transcript_file  transcript possibly containing errors
  optional arguments:
    -h, --help       show this help message and exit
    --char-level     calculate character error rate instead of word error rate
    --ignore-nsns    ignore non silence noises like um, uh, etc.
  This tool allows for easy comparison of reference and hypothesis transcripts in any format listed above.
  ```

  ```text
  usage: clean_formatting.py [-h] files [files ...]
  cleans input *.txt files and outputs *_cleaned.txt
  positional arguments:
    files       list of input files
  optional arguments:
    -h, --help  show this help message and exit
  ```
  This script standardizes how abbreviations, numbers, and other formatted text is expressed so that ASR engines can easily use these files as training or testing data. Standardizing the formatting of output is essential for reproducible measurements of ASR accuracy.

  ```text
  usage: split_audio_file [-h] [--target-dir TARGET_DIR] audio_file transcript
  Split an audio file using valid segments from a transcript file. For this
  utility, transcript files must contain start/stop times.
  positional arguments:
    audio_file            input audio file
    transcript            transcript
  optional arguments:
    -h, --help            show this help message and exit
    --target-dir TARGET_DIR
                          Path to target directory
  ```

  ```text
  usage: prepare_audio_corpora [-h] [--target-dir TARGET_DIR]
                               corpora [corpora ...]
  Copy and organize specified corpora into a target directory. Training,
  testing, and development sets will be created automatically if not already
  defined.
  positional arguments:
    corpora               Name of one or more directories in directory this
                          script is run
  optional arguments:
    -h, --help            show this help message and exit
    --target-dir TARGET_DIR
                          Path to target directory
  ```
  This script scrapes a list of directories for paired STM and SPH files. If `train`, `test`, and `dev` folders are present, these labels are used for the output folder. By default, a target directory of 'input-data' will be created. Note that filenames with hyphens will be sanitized to underscores and that audio files will be forced to single channel, 16 kHz, signed PCM format. If two channels are present, only the first will be used.

  ```text
  usage: degrade_audio_file input_file1.wav input_file2.wav
  Degrade audio files to 8 kHz format similar to G711 codec
  ```
  This script reduces audio quality of input audio files so that acoustic models can learn features from telephony with the G711 codec.

  Note that the use of this function requires the separate installation of `pandas`. This can be done via `pip install pandas`.
  ```text
  usage: extract_excel_spreadsheets.py [-h] [--input-folder INPUT_FOLDER]
                                       [--output-corpus OUTPUT_CORPUS]
  convert a folder of excel spreadsheets to a corpus of text files
  optional arguments:
    -h, --help            show this help message and exit
    --input-folder INPUT_FOLDER
                          input folder of excel spreadsheets ending in .xls or
                          .xlsx
    --output-corpus OUTPUT_CORPUS
                          output folder for storing text corpus
  ```

  This aligns a gk hypothesis `json` file with a reference text file for creating forced alignment `STM` files for training new ASR models.
  Note that this function requires the installation a few extra packages
  ```shell
  python3 -m pip install spacy textacy https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.0/en_core_web_sm-2.2.0.tar.gz#egg=en_core_web_sm
  ```
  ```text
  usage: align_json.py [-h] input_json ref output_filename
  align a gk json file against a reference text file
  positional arguments:
    input_json       input gk json file
    ref              reference text file
    output_filename  output_filename
  optional arguments:
    -h, --help       show this help message and exit
  ```

  - Python >= 3.6.1 with `pip`


  Please make sure you read and observe our [Code of Conduct](https://raw.githubusercontent.com/finos/greenkey-asrtoolkit/master/CODE_OF_CONDUCT.md).

  1. Fork it
  2. Create your feature branch (`git checkout -b feature/fooBar`)
  3. Commit your changes (`git commit -am 'Add some fooBar'`)
  4. Push to the branch (`git push origin feature/fooBar`)
  5. Create a new Pull Request
  _NOTE:_ Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool. Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.
  *Need an ICLA? Unsure if you are covered under an existing CCLA? Email [help@finos.org](mailto:help@finos.org)*

  - [Matthew Goldey](https://github.com/mgoldey)
  - [Tejas Shastry](https://github.com/tshastry)
  - [Amy Geojo](https://github.com/ageojo)
  - [Svyat Vergun](https://github.com/sv-github)
  - [Ashley Shultz](https://github.com/AGiantSquid)
  - [Colin Brochtrup](https://github.com/cbrochtrup)

  The code in this repository is distributed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).
  Copyright 2020 GreenKey Technologies
  <!-- Markdown link & img defs -->
  [FINOS]: https://www.finos.org
  [Code of Conduct]: https://www.finos.org/code-of-conduct
  [Voice Program]: https://finosfoundation.atlassian.net/wiki/spaces/VOICE/overview
  [SemVer]: http://semver.org
  [list of contributors]: https://github.com/finos/greenkey-asrtoolkit/graphs/contributors
  [tags on this repository]: https://github.com/finos/greenkey-asrtoolkit/tags


pkgId: d0807563404cfee5aaf96a13bd186f3f3285c6e4d473cf599ced6857357a2e25
name: python-ass-tag-analyzer
arch: src
version: 0.0.4
epoch: 0
release: 1
summary: Parse .ass tags.
url: https://pypi.org/project/ass-tag-analyzer/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ass-tag-analyzer-0.0.4-1.src.rpm
checksum_type: sha256
description:
  Tag analyzer for Advanced SubStation Alpha file.
  This tool allows to parse .ass tag and manipulate them.


  ```
  pip install ass-tag-analyzer
  ```


  ```py
  from ass_tag_analyzer import parse_line, ass_item_to_text, Format, AssTagFontName, AssValidTagFontName, AssInvalidTagFontName


  line = parse_line(r"{\an7\pos(158,501)\fnArial\bord0.155884}Example")
  print(line)


  print(ass_item_to_text(line))


  Format.format_float = lambda number: round(number)


  print(ass_item_to_text(line))


  for ass_item in line:
      if isinstance(ass_item, AssTagFontName):
          if isinstance(ass_item, AssValidTagFontName):
              print(f'An \\fn tag has been found and the value is "{ass_item.name}"')

          elif isinstance(ass_item, AssInvalidTagFontName):
              
              pass
  ```



  ```py console
  [
      AssTagListOpening(),
      AssValidTagAlignment(is_legacy_tag=False, _AssValidTagAlignment__alignment=<Alignment.TOP_LEFT: 7>),
      AssValidTagPosition(x=158.0, y=501.0),
      AssValidTagFontName(_AssValidTagFontName__name='Arial'),
      AssValidTagBorder(_AssValidTagBorder__size=0.155884),
      AssTagListEnding(),
      AssText(text='Example')
  ]
  {\an7\pos(158,501)\fnArial\bord0.156}Example
  {\an7\pos(158,501)\fnArial\bord0}Example
  An \fn tag has been found and the value is "Arial"
  ```


  -  [Python 3.8 or more](https://www.python.org/downloads/)



   - [ass_tag_parser](https://github.com/bubblesub/ass_tag_parser) I used his library to create mine. I got a lot of inspiration from his work.


pkgId: 3c50dd043d1f655a39933fc174b0e81aea5aad3b21c4f09865b273151b9ae457
name: python-assayo
arch: src
version: 0.0.15
epoch: 0
release: 1
summary: Visualization and analysis of git commit statistics. Team Lead performance tool.
url: https://github.com/bakhirev/assayo-npx
rpm_license: GPL-3.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assayo-0.0.15-1.src.rpm
checksum_type: sha256
description:
  > __[English](https://github.com/bakhirev/assayo-npx)__ | [Русский](https://github.com/bakhirev/assayo-npx/blob/main/documents/RU.md)

  Visualization and analysis of git commit statistics. Performance tool for Team Lead and IT-audit

  **Links:** [demo](https://assayo.online/demo/?ref=github&lang=en&dump=./test.txt), [online version](https://assayo.online/demo/?ref=github), [docker](https://hub.docker.com/r/bakhirev/assayo), [reddit](https://www.reddit.com/r/ITManagers/comments/1e5k291/the_visualization_and_analysis_of_git_commit/), [habr](https://habr.com/ru/articles/763342/), [video](https://www.youtube.com/watch?v=mqfu-ea3jao).

  **Core application:** [github](https://github.com/bakhirev/assayo), [website](https://assayo.online/)

  <a href="http://www.facebook.com/sharer.php?u=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/facebook.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://reddit.com/submit?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&title=Visualization%20and%20analysis%20of%20git%20repository" target="_blank"><img src="https://assayo.online/assets/seo/social/reddit.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&text=Visualization%20and%20analysis%20of%20git%20repository%20%3A%20Check%20your%20git%20stats%21&via=&hashtags=IT%2Cgit%2Cstatistics%2Caudit%2Cdata-visualization%2Creport" target="_blank"><img src="https://assayo.online/assets/seo/social/twitter.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/linkedin.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://www.tumblr.com/widgets/share/tool?canonicalUrl=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&title=Visualization%20and%20analysis%20of%20git%20repository&caption=Check%20your%20git%20stats%21&tags=IT%2Cgit%2Cstatistics%2Caudit%2Cdata-visualization%2Creport" target="_blank"><img src="https://assayo.online/assets/seo/social/tumblr.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://www.blogger.com/blog-this.g?u=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&n=Visualization%20and%20analysis%20of%20git%20repository&t=Check%20your%20git%20stats%21" target="_blank"><img src="https://assayo.online/assets/seo/social/blogger.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://www.evernote.com/clip.action?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&title=Visualization%20and%20analysis%20of%20git%20repository%20%3A%20Check%20your%20git%20stats%21" target="_blank"><img src="https://assayo.online/assets/seo/social/evernote.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="http://www.addthis.com/bookmark.php?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/add.this.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://getpocket.com/edit?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/getpocket.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&t=Visualization%20and%20analysis%20of%20git%20repository" target="_blank"><img src="https://assayo.online/assets/seo/social/hacker.news.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://buffer.com/add?text=Visualization%20and%20analysis%20of%20git%20repository%20%3A%20Check%20your%20git%20stats%21&url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/buffer.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://share.flipboard.com/bookmarklet/popout?v=2&title=Visualization%20and%20analysis%20of%20git%20repository%20%3A%20Check%20your%20git%20stats%21&url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/flipboard.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="http://www.instapaper.com/edit?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&title=Visualization%20and%20analysis%20of%20git%20repository&description=Check%20your%20git%20stats%21" target="_blank"><img src="https://assayo.online/assets/seo/social/instapaper.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://share.diasporafoundation.org/?title=Visualization%20and%20analysis%20of%20git%20repository&url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/diaspora.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/qzone.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="http://vk.com/share.php?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&title=Visualization%20and%20analysis%20of%20git%20repository&comment=Check%20your%20git%20stats%21" target="_blank"><img src="https://assayo.online/assets/seo/social/vk.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="http://service.weibo.com/share/share.php?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&appkey=&title=Visualization%20and%20analysis%20of%20git%20repository&pic=&ralateUid=" target="_blank"><img src="https://assayo.online/assets/seo/social/weibo.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://connect.ok.ru/dk?st.cmd=WidgetSharePreview&st.shareUrl=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/ok.ru.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="http://www.douban.com/recommend/?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&title=Visualization%20and%20analysis%20of%20git%20repository%20%3A%20Check%20your%20git%20stats%21" target="_blank"><img src="https://assayo.online/assets/seo/social/douban.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://www.xing.com/spi/shares/new?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/xing.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="http://widget.renren.com/dialog/share?resourceUrl=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&srcUrl=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&title=Visualization%20and%20analysis%20of%20git%20repository%20%3A%20Check%20your%20git%20stats%21&description=Check%20your%20git%20stats%21" target="_blank"><img src="https://assayo.online/assets/seo/social/renren.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="threema://compose?text=Visualization%20and%20analysis%20of%20git%20repository%20%3A%20Check%20your%20git%20stats%21&id=" target="_blank"><img src="https://assayo.online/assets/seo/social/threema.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://lineit.line.me/share/ui?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&text=Visualization%20and%20analysis%20of%20git%20repository%20%3A%20Check%20your%20git%20stats%21" target="_blank"><img src="https://assayo.online/assets/seo/social/line.me.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a>
  <a href="https://assayo.online/demo/?dump=./test.txt" target="_blank"><img src="https://assayo.online/assets/images/index.gif" width="100%" /></a>


  NodeJS:
  ```
  npx assayo
  ```
  PHP:
  ```
  composer require bakhirev/assayo
  vendor/bin/assayo
  ```
  Python:
  ```
  pipx install assayo
  assayo
  ```
  Ruby:
  ```
  gem install assayo
  assayo
  ```



  |             | Description                                      |
  |-------------|--------------------------------------------------|
  | `--no-file` | do not save information about working with files |
  | `--debug`   | show information about work                      |


  The script will create a folder ```./assayo``` with a HTML-report about repository:

  ```
  ./assayo/index.html - report
  ./assayo/log.txt    - information from git log
  ```


pkgId: 2df3b8f7db6f59ba066b6146e329066cd18e7c8435117a15d666ac5ac987e98f
name: python-assayo
arch: src
version: 0.0.17
epoch: 0
release: 1
summary: Git log visualization and analysis. Simple commits statistics report.
url: https://github.com/bakhirev/assayo-npx
rpm_license: GPL-3.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assayo-0.0.17-1.src.rpm
checksum_type: sha256
description:
  > __[English](https://github.com/bakhirev/assayo-npx)__ | [Русский](https://github.com/bakhirev/assayo-npx/blob/main/documents/RU.md)

  Git log visualization and analysis. Simple commits statistics report.

  **Links:** [demo](https://bakhirev.github.io/demo/?ref=npx&dump=./test.txt), [online version](https://bakhirev.github.io/demo/?ref=npx), [docker](https://hub.docker.com/r/bakhirev/assayo), [reddit](https://www.reddit.com/r/ITManagers/comments/1e5k291/the_visualization_and_analysis_of_git_commit/), [habr](https://habr.com/ru/articles/852782/).

  **Video:** [english](https://www.youtube.com/watch?v=uMbhrrd25t4), [español](https://www.youtube.com/watch?v=skmctb_2rZ0), [русский](https://www.youtube.com/watch?v=jwCp_-bhrCQ).

  **Core application:** [github](https://github.com/bakhirev/assayo), [website](https://bakhirev.github.io/?ref=npx)

  <a href="http://www.facebook.com/sharer.php?u=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/facebook.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://reddit.com/submit?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&title=Visualization%20and%20analysis%20of%20git%20repository" target="_blank"><img src="https://assayo.online/assets/seo/social/reddit.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&text=Visualization%20and%20analysis%20of%20git%20repository%20%3A%20Check%20your%20git%20stats%21&via=&hashtags=IT%2Cgit%2Cstatistics%2Caudit%2Cdata-visualization%2Creport" target="_blank"><img src="https://assayo.online/assets/seo/social/twitter.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/linkedin.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://www.tumblr.com/widgets/share/tool?canonicalUrl=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&title=Visualization%20and%20analysis%20of%20git%20repository&caption=Check%20your%20git%20stats%21&tags=IT%2Cgit%2Cstatistics%2Caudit%2Cdata-visualization%2Creport" target="_blank"><img src="https://assayo.online/assets/seo/social/tumblr.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://www.blogger.com/blog-this.g?u=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&n=Visualization%20and%20analysis%20of%20git%20repository&t=Check%20your%20git%20stats%21" target="_blank"><img src="https://assayo.online/assets/seo/social/blogger.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://www.evernote.com/clip.action?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&title=Visualization%20and%20analysis%20of%20git%20repository%20%3A%20Check%20your%20git%20stats%21" target="_blank"><img src="https://assayo.online/assets/seo/social/evernote.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="http://www.addthis.com/bookmark.php?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/add.this.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://getpocket.com/edit?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/getpocket.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&t=Visualization%20and%20analysis%20of%20git%20repository" target="_blank"><img src="https://assayo.online/assets/seo/social/hacker.news.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://buffer.com/add?text=Visualization%20and%20analysis%20of%20git%20repository%20%3A%20Check%20your%20git%20stats%21&url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/buffer.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://share.flipboard.com/bookmarklet/popout?v=2&title=Visualization%20and%20analysis%20of%20git%20repository%20%3A%20Check%20your%20git%20stats%21&url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/flipboard.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="http://www.instapaper.com/edit?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&title=Visualization%20and%20analysis%20of%20git%20repository&description=Check%20your%20git%20stats%21" target="_blank"><img src="https://assayo.online/assets/seo/social/instapaper.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://share.diasporafoundation.org/?title=Visualization%20and%20analysis%20of%20git%20repository&url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/diaspora.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/qzone.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="http://vk.com/share.php?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&title=Visualization%20and%20analysis%20of%20git%20repository&comment=Check%20your%20git%20stats%21" target="_blank"><img src="https://assayo.online/assets/seo/social/vk.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="http://service.weibo.com/share/share.php?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&appkey=&title=Visualization%20and%20analysis%20of%20git%20repository&pic=&ralateUid=" target="_blank"><img src="https://assayo.online/assets/seo/social/weibo.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://connect.ok.ru/dk?st.cmd=WidgetSharePreview&st.shareUrl=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/ok.ru.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="http://www.douban.com/recommend/?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&title=Visualization%20and%20analysis%20of%20git%20repository%20%3A%20Check%20your%20git%20stats%21" target="_blank"><img src="https://assayo.online/assets/seo/social/douban.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://www.xing.com/spi/shares/new?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo" target="_blank"><img src="https://assayo.online/assets/seo/social/xing.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="http://widget.renren.com/dialog/share?resourceUrl=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&srcUrl=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&title=Visualization%20and%20analysis%20of%20git%20repository%20%3A%20Check%20your%20git%20stats%21&description=Check%20your%20git%20stats%21" target="_blank"><img src="https://assayo.online/assets/seo/social/renren.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="threema://compose?text=Visualization%20and%20analysis%20of%20git%20repository%20%3A%20Check%20your%20git%20stats%21&id=" target="_blank"><img src="https://assayo.online/assets/seo/social/threema.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a><a href="https://lineit.line.me/share/ui?url=https%3A%2F%2Fgithub.com%2Fbakhirev%2Fassayo&text=Visualization%20and%20analysis%20of%20git%20repository%20%3A%20Check%20your%20git%20stats%21" target="_blank"><img src="https://assayo.online/assets/seo/social/line.me.jpg" title="Visualization and analysis of git repository" width="24px" height="24px"/></a>
  <a href="https://assayo.online/demo/?dump=./test.txt" target="_blank"><img src="https://assayo.online/assets/images/index.gif" width="100%" /></a>


  NodeJS:
  ```
  npx assayo
  ```
  PHP:
  ```
  composer require bakhirev/assayo
  vendor/bin/assayo
  ```
  Python:
  ```
  pipx install assayo
  assayo
  ```
  Ruby:
  ```
  gem install assayo
  assayo
  ```



  |             | Description                                      |
  |-------------|--------------------------------------------------|
  | `--no-file` | do not save information about working with files |
  | `--debug`   | show information about work                      |


  The script will create a folder ```./assayo``` with a HTML-report about repository:

  ```
  ./assayo/index.html - report
  ./assayo/log.txt    - information from git log
  ```


pkgId: 28b1fe7918ba7afb9773f728405fbdc30170e9975226e79e936715aedac06340
name: python-assembly-ai-plus
arch: src
version: 0.0.11
epoch: 0
release: 1
summary: Transcribe and understand your audio/video files super fast.
url: https://github.com/afizs/assembly-ai-plus
rpm_license: Apache Software License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assembly-ai-plus-0.0.11-1.src.rpm
checksum_type: sha256
description:
  <!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
  > Simple Library for transcribing and understanding audio and video
  > files using AssemblyAI.
  Read more about AssemblyAI 👉 [Docs](https://www.assemblyai.com/docs)

  ``` sh
  pip install assembly-ai-plus
  ```

  ``` mermaid
  sequenceDiagram
    participant User
    User-&gt;&gt;submit_audio_for_transcription: Audio URL or Local file path and include other intelligence features
    submit_audio_for_transcription--&gt;&gt;User: transcription_id
    User-&gt;&gt;get_transcription_results: transcription_id, all_details=True/False
    get_transcription_results--&gt;&gt;User: Full Transcription Results
  ```

  This Library provides a
  [`AssemblyAI`](https://afizs.github.io/assembly-ai-plus/assemblyai.html#assemblyai)
  class using which you can submit audio files for transcribing and
  understanding.
  ``` python
  from assembly_ai_plus.assemblyai import AssemblyAI
  ```
  First create the assembly_ai instance by providing the AssemblyAI API
  KEY, which you can get it for free from
  [here](https://app.assemblyai.com/)
  ``` python
  assembly_ai = AssemblyAI(api_key='YOURKEY')
  ```

  ``` python
  res = assembly_ai.submit_audio_for_transcription(audio_url="https://bit.ly/3yxKEIY")
  ```
  ``` python
  res.get('id') # This id is used to extract the actual text from the audio files.
  ```
      'rsh0hzmusy-024f-472e-937b-e86223eaf7c9'

  ``` python
  res = assembly_ai.submit_audio_for_transcription(local_audio_file_path='your_file_path')
  ```
  ``` python
  res.get('id')
  ```
      'rsh0n4g7nv-f022-409b-b97b-9a138261a0d7'

  ``` python
  full_details = assembly_ai.get_transcription_results('rs3c8julbq-177d-4071-ab6f-d7c7a9bb6dbb')
  ```
  ``` python
  print(full_details['text'])
  ```
      You know, demons on TV like that. And and for people to expose themselves to being rejected on TV or, you know, humili humiliated by Fear Factor or, you know.
  We can check out other details like sentiment analysis from
  `full_details`


pkgId: c32566616874150126efd62a0d1836d2c8cf03285bad4763a6280ef6aabe1888
name: python-assemblyai
arch: src
version: 0.33.0
epoch: 0
release: 1
summary: AssemblyAI Python SDK
url: https://github.com/AssemblyAI/assemblyai-python-sdk
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assemblyai-0.33.0-1.src.rpm
checksum_type: sha256
description:
  [![CI Passing](https://github.com/AssemblyAI/assemblyai-python-sdk/actions/workflows/test.yml/badge.svg)](https://github.com/AssemblyAI/assemblyai-python-sdk/actions/workflows/test.yml)
  [![GitHub License](https://img.shields.io/github/license/AssemblyAI/assemblyai-python-sdk)](https://github.com/AssemblyAI/assemblyai-python-sdk/blob/master/LICENSE)
  [![PyPI version](https://badge.fury.io/py/assemblyai.svg)](https://badge.fury.io/py/assemblyai)
  [![PyPI Python Versions](https://img.shields.io/pypi/pyversions/assemblyai)](https://pypi.python.org/pypi/assemblyai/)
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/assemblyai)
  [![AssemblyAI Twitter](https://img.shields.io/twitter/follow/AssemblyAI?label=%40AssemblyAI&style=social)](https://twitter.com/AssemblyAI)
  [![AssemblyAI YouTube](https://img.shields.io/youtube/channel/subscribers/UCtatfZMf-8EkIwASXM4ts0A)](https://www.youtube.com/@AssemblyAI)
  [![Discord](https://img.shields.io/discord/875120158014853141?logo=discord&label=Discord&link=https%3A%2F%2Fdiscord.com%2Fchannels%2F875120158014853141&style=social)
  ](https://assemblyai.com/discord)

  > _Build with AI models that can transcribe and understand audio_
  With a single API call, get access to AI models built on the latest AI breakthroughs to transcribe and understand audio and speech data securely at large scale.

  - [AssemblyAI's Python SDK](#assemblyais-python-sdk)
  - [Overview](#overview)
  - [Documentation](#documentation)
  - [Quick Start](#quick-start)
    - [Installation](#installation)
    - [Examples](#examples)
      - [**Core Examples**](#core-examples)
      - [**LeMUR Examples**](#lemur-examples)
      - [**Audio Intelligence Examples**](#audio-intelligence-examples)
      - [**Real-Time Examples**](#real-time-examples)
    - [Playgrounds](#playgrounds)
  - [Advanced](#advanced)
    - [How the SDK handles Default Configurations](#how-the-sdk-handles-default-configurations)
      - [Defining Defaults](#defining-defaults)
      - [Overriding Defaults](#overriding-defaults)
    - [Synchronous vs Asynchronous](#synchronous-vs-asynchronous)
    - [Polling Intervals](#polling-intervals)
    - [Retrieving Existing Transcripts](#retrieving-existing-transcripts)
      - [Retrieving a Single Transcript](#retrieving-a-single-transcript)
      - [Retrieving Multiple Transcripts as a Group](#retrieving-multiple-transcripts-as-a-group)
      - [Retrieving Transcripts Asynchronously](#retrieving-transcripts-asynchronously)

  Visit our [AssemblyAI API Documentation](https://www.assemblyai.com/docs) to get an overview of our models!


  ```bash
  pip install -U assemblyai
  ```

  Before starting, you need to set the API key. If you don't have one yet, [**sign up for one**](https://www.assemblyai.com/dashboard/signup)!
  ```python
  import assemblyai as aai

  aai.settings.api_key = f"{ASSEMBLYAI_API_KEY}"


pkgId: f6de6639f72fb38e7f8cc11f3c3fe3ae69a0d9de147d9e5bc33ed6930d817e6f
name: python-assemblyline-core
arch: src
version: 4.5.0.57
epoch: 0
release: 1
summary: Assemblyline 4 - Core components
url: https://github.com/CybercentreCanada/assemblyline-core/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assemblyline-core-4.5.0.57-1.src.rpm
checksum_type: sha256
description:
  This repository provides cores services for Assemblyline 4.





  Create alerts for the different submissions in the system.



  Route the files in the system while a submission is tacking place. Make sure all files during a submission are completed by all required services.



  Delete submissions and their results when their TTL expires.



  Move ingested files from the priority queues to the processing queues.



  Generates metrics of the different components in the system.



  Spin up and down services in the system depending on the load.



  Make sure the different services get their latest update files.



  Run the different workflows in the system and apply their labels, priority and status.


pkgId: d433ab88fe5df5629b602d050ec8496ee4c61eeb1c4444cd967330b349e10d77
name: python-assert-llm-tools
arch: src
version: 0.0.7.3
epoch: 0
release: 1
summary: Automated Summary Scoring & Evaluation of Retained Text
url: https://github.com/charliedouglas/assert
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assert-llm-tools-0.0.7.3-1.src.rpm
checksum_type: sha256
description:
  Automated Summary Scoring & Evaluation of Retained Text

  This repository contains tools for evaluating the quality of summaries generated by LLMs.



  View a live demo of the library [here](https://www.getassert.io/demo)




  Documentation is available [here](https://docs.getassert.io/)









  - **ROUGE Score**: Measures overlap of n-grams between the reference text and generated summary
  - **BLEU Score**: Evaluates translation quality by comparing n-gram matches, with custom weights emphasizing unigrams and bigrams
  - **BERT Score**: Leverages contextual embeddings to better capture semantic similarity
  - **BART Score**: Uses BART's sequence-to-sequence model to evaluate semantic similarity and generation quality



  - **Faithfulness**: Measures factual consistency between summary and source text (requires an LLM provider)
  - **Topic Preservation**: Will verify that the most important topics from the source are retained in the summary (requires an LLM provider)
  - **Redundancy Detection**: Will identify and flag repeated information within summaries (requires an LLM provider)
  - **Conciseness Assessment**: Will evaluate if the summary effectively condenses information without unnecessary verbosity (requires an LLM provider)





  - **Answer Attribution**: Evaluates if the answer's claims are properly supported by the provided context
  - **Answer Relevance**: Measures how well the answer addresses the specific query intent
  - **Completeness**: Evaluates whether the answer addresses all aspects of the query comprehensively
  - **Context Relevance**: Assesses how well the retrieved context aligns with and is applicable to the query
  - **Faithfulness**: Measures how accurately the answer reflects the information contained in the context without introducing external or contradictory information





  - **Coherence Evaluation**: Will assess the logical flow and readability of the generated summary
  - **Style Consistency**: Will evaluate if the summary maintains a consistent writing style and tone
  - **Information Density**: Will measure the ratio of meaningful content to length in summaries





  - **Remove Common Stopwords**: Allows for adding custom stopwords to the evaluation process
    - This is useful for removing common words that are often included in summaries but do not contribute to the overall meaning
    - evaluate_summary(full_text, summary, remove_stopwords=True)
  - **Custom Stopwords**: Allows for adding custom stopwords to the evaluation process
    - Usage: from assert_llm_tools.utils import add_custom_stopwords
    - Example: add_custom_stopwords(["your", "custom", "stopwords", "here"])
    - remove_stopwords=True must be enabled
  - **Select Summary Metrics**: Allows for selecting which summary evaluation metrics to calculate
    - Usage: evaluate_summary(full_text, summary, metrics=["rouge", "bleu"])
    - Defaults to all metrics if not included
    - Available metrics: ["rouge", "bleu", "bert_score", "bart_score", "faithfulness", "topic_preservation", "redundancy", "conciseness"]
    - Faithfulness, topic preservation, redundancy, and conciseness require an LLM provider via llm_config parameter
  - **Select RAG Metrics**: Allows for selecting which RAG evaluation metrics to calculate
    - Usage: evaluate_rag(query, context, answer, metrics=["context_relevance", "answer_accuracy"])
    - Defaults to all metrics if not included
    - Available metrics: ["context_relevance", "answer_accuracy", "context_utilization", "completeness", "faithfulness"]
    - All metrics require an LLM provider via llm_config parameter
  - **LLM Provider**: Allows for specifying the LLM provider and model to use for the faithfulness metric
    - Usage: evaluate_summary(full_text, summary, llm_config=LLMConfig(provider="bedrock", model_id="anthropic.claude-v2", region="us-east-1", api_key="your-api-key", api_secret="your-api-secret"))
    - Available providers: ["bedrock", "openai"]
  - **Show Progress**: Allows for showing a progress bar during metric calculation
    - Usage: evaluate_summary(full_text, summary, show_progress=True)
    - Defaults to showing progress bar if not included.





  All metrics are normalized to return scores between 0 and 1, where higher scores indicate better performance:

  - ROUGE Score: Higher means better overlap with reference
  - BLEU Score: Higher means better translation quality
  - BERT Score: Higher means better semantic similarity
    - Note that running BERT score for the first time will require a download of the model weights, which may take a while.
    - Use the `bert_model` parameter to specify the model to use for BERTScore calculation.
    - Default model is "microsoft/deberta-base-mnli". (~500mb download on first use.)
    - Other options is "microsoft/deberta-xlarge-mnli". (~3gb download on first use.)
  - BART Score: Higher means better semantic similarity and generation quality
    - Returns log-likelihood scores normalized to be interpretable, therefore results are likely to be negative. Closer to 0 is better.
    - Calculates bidirectional scores (reference→summary and summary→reference)
    - Uses the BART-large-CNN model by default (~1.6GB download on first use)
  - Faithfulness: Higher means better factual consistency
  - Topic Preservation: Higher means better retention of key topics
  - Redundancy: Higher means less redundant content (1.0 = no redundancy)
  - Conciseness: Higher means less verbose content (1.0 = optimal conciseness)



  All RAG metrics return scores between 0 and 1:

  - Answer Attribution: Higher means better support from context for answer claims
  - Answer Relevance: Higher means better alignment with query intent
  - Completeness: Higher means the answer addresses all aspects of the query comprehensively
  - Context Relevance: Higher means better match between query and retrieved context
  - Faithfulness: Higher means better alignment between the answer and the provided context



  Basic installation:
  ```bash
  pip install assert_llm_tools
  ```

  Optional Dependencies:

  - For Amazon Bedrock support:
    ```bash
    pip install "assert_llm_tools[bedrock]"
    ```

  - For OpenAI support:
    ```bash
    pip install "assert_llm_tools[openai]"
    ```

  - To install all optional dependencies:
    ```bash
    pip install "assert_llm_tools[all]"
    ```



  ```python
  from assert_llm_tools.core import evaluate_summary, evaluate_rag
  from assert_llm_tools.utils import add_custom_stopwords
  from assert_llm_tools.llm.config import LLMConfig


  add_custom_stopwords(["this", "artificial", "intelligence"])



  full_text = """
  Artificial intelligence is rapidly transforming the world economy. Companies
  are investing billions in AI research and development, leading to breakthroughs
  in automation, data analysis, and decision-making processes. While this
  technology offers immense benefits, it also raises concerns about job
  displacement and ethical considerations.
  """


  summary = """
  AI is transforming the economy through major investments, bringing advances in
  automation and analytics while raising job and ethical concerns.
  """


  config = LLMConfig(
      provider="openai",
      model_id="gpt-4",
      api_key="your-api-key"
  )


  metrics = evaluate_summary(full_text, summary,
                           remove_stopwords=True,
                           metrics=["rouge", "bleu", "bert_score", "bart_score", "faithfulness", "topic_preservation", "redundancy", "conciseness"],
                           llm_config=config)


  rag_metrics = evaluate_rag(query="What is the capital of France?",
                            context="Paris is the capital and largest city of France.",
                            answer="The capital of France is Paris.",
                            metrics=["context_relevance", "answer_accuracy", "completeness", "faithfulness","answer_attribution"],
                            llm_config=config)


  print(metrics)
  print(rag_metrics)


  ```



  MIT License

  Copyright (c) 2024

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  SOFTWARE.



  - [ROUGE](https://github.com/google-research/google-research/tree/master/rouge)
  - [NLTK](https://www.nltk.org/)


pkgId: 1c9bc17acbb3d09c2e7e3388fdcfe8d0d3e20b080c1528e8a94a832e5ecb45bb
name: python-assertical
arch: src
version: 0.2.0
epoch: 0
release: 1
url: https://github.com/bsgip/assertical
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assertical-0.2.0-1.src.rpm
checksum_type: sha256
summary:
  Assertical - a modular library for helping write (async) integration/unit tests for fastapi/sqlalchemy/postgres projects

description:
  Assertical is a library for helping write (async) integration/unit tests for fastapi/postgres/other projects. It has been developed by the Battery Storage and Grid Integration Program (BSGIP) at the Australian National University (https://bsgip.com/) for use with a variety of our internal libraries/packages.

  It's attempting to be lightweight and modular, if you're not using `pandas` then just don't import the pandas asserts.

  Contributions/PR's are welcome





  Say you have an SQLAlchemy model (the below also supports dataclasses, pydantic models and any type that expose its properties/types at runtime)
  ```
  class Student(DeclarativeBase):
      student_id: Mapped[int] = mapped_column(INTEGER, primary_key=True)
      date_of_birth: Mapped[datetime] = mapped_column(DateTime)
      name_full: Mapped[str] = mapped_column(VARCHAR(128))
      name_preferred: Mapped[Optional[str]] = mapped_column(VARCHAR(128), nullable=True)
      height: Mapped[Optional[Decimal]] = mapped_column(DECIMAL(7, 2), nullable=True)
      weight: Mapped[Optional[Decimal]] = mapped_column(DECIMAL(7, 2), nullable=True)
  ```
  Instead of writing the following boilerplate in your tests:

  ```
  def test_my_insert():
      
      s1 = Student(student_id=1, date_of_birth=datetime(2014, 1, 25), name_full="Bobby Tables", name_preferred="Bob", height=Decimal("185.5"), weight=Decimal("85.2"))
      s2 = Student(student_id=2, date_of_birth=datetime(2015, 9, 23), name_full="Carly Chairs", name_preferred="CC", height=Decimal("175.5"), weight=Decimal("65"))
      
  ```

  It can be simplified to:

  ```
  def test_my_insert():
      
      s1 = generate_class_instance(Student, seed=1)
      s2 = generate_class_instance(Student, seed=2)
      
  ```

  Which will generate two instances of Student with every property being set with appropriately typed values and unique values. Eg s1/s2 will be proper `Student` instances with values like:

  | field | s1 | s2 |
  | ----- | -- | -- |
  | student_id | 5 (int) | 6 (int) |
  | date_of_birth | '2010-01-02T00:00:01Z' (datetime) | '2010-01-03T00:00:02Z' (datetime) |
  | name_full | '3-str' (str) | '4-str' (str) |
  | name_preferred | '4-str' (Decimal) | '5-str' (Decimal) |
  | height | 2 (Decimal) | 3 (Decimal) |
  | weight | 6 (Decimal) | 7 (Decimal) |

  Passing property name/values via kwargs is also supported :

  `generate_class_instance(Student, seed=1, height=Decimal("12.34"))` will generate a `Student` instance similar to `s1` above but where `height` is `Decimal("12.34")`

  You can also control the behaviour of `Optional` properties - by default they will populate with the full type but using `generate_class_instance(Student, optional_is_none=True)` will generate a `Student` instance where `height`, `weight` and `name_preferred` are `None`.

  Finally, say we add the following "child" class `TestResult`:

  ```
  class TestResult(DeclarativeBase):
      test_result_id = mapped_column(INTEGER, primary_key=True)
      student_id: Mapped[int] = mapped_column(INTEGER)
      class: Mapped[str] = mapped_column(VARCHAR(128))
      grade: Mapped[str] = mapped_column(VARCHAR(8))
  ```

  And assuming `Student` has a property `all_results: Mapped[list[TestResult]]`. `generate_class_instance(Student)` will NOT supply a value for `all_results`. But by setting `generate_class_instance(Student, generate_relationships=True)` the generation will recurse into any generatable / list of generatable type instances.




  By default a number of common types / base classes will be registered but these can be extended with:

  `assertical.fake.generator.register_value_generator(t, gen)` allows you to register a function that can generate an instance of type t given an integer seed value. The following example registers `MyType` so that other classes can have a property `my_type: Optional[MyType]` and have the values generated according to the supplied generator function:

  ```
  class MyType:
      val: int
      def __init__(self, val):
          self.val = val

  register_value_generator(MyType, lambda seed: MyType(seed))
  ```

  `assertical.fake.generator.register_base_type(base_t, generate_instance, list_members)` allows you to register a base type so that instances of subclasses of this base type can be generated using `generate_class_instance`. For example, the following registers a more complex type:

  ```
  class MyBaseType:
      def __init__(self):
          pass

  class MyComplexType(MyBaseType):
      id: int
      name: str
      def __init__(self, id, name):
          super.__init__()
          self.id = id
          self.name = name


  register_base_type(MyBaseType, DEFAULT_CLASS_INSTANCE_GENERATOR, DEFAULT_MEMBER_FETCHER)
  ```

  **Note:** All registrations apply globally. If you plan on using tests that modify the registry in different ways, there is a fixture `assertical.fixtures.generator.generator_registry_snapshot` that provides a context manager that will preserve and reset the global registry between tests.

  eg:

  ```
  def test_function()
      with generator_registry_snapshot():
          register_value_generator(MyPrimitiveType, lambda seed: MyPrimitiveType(seed))
          register_base_type(
              MyBaseType,
              DEFAULT_CLASS_INSTANCE_GENERATOR,
              DEFAULT_MEMBER_FETCHER,
          )

          
  ```



  `MockedAsyncClient` is a duck typed equivalent to `from httpx import AsyncClient` that can be useful fo injecting into classes that depend on a AsyncClient implementation.

  Example usage that injects a MockedAsyncClient that will always return a `HTTPStatus.NO_CONTENT` for all requests:
  ```
  mock_async_client = MockedAsyncClient(Response(status_code=HTTPStatus.NO_CONTENT))
  with mock.patch("my_package.my_module.AsyncClient") as mock_client:
      
      assert mock_client.call_count_by_method[HTTPMethod.GET] > 0
  ```
  The constructor for `MockedAsyncClient` allows you to setup either constant or varying responses. Eg: by supplying a list of responses you can mock behaviour that changes over multiple requests.

  Eg: This instance will raise an Exception, then return a HTTP 500 then a HTTP 200
  ```
  MockedAsyncClient([
      Exception("My mocked error that will be raised"),
      Response(status_code=HTTPStatus.NO_CONTENT),
      Response(status_code=HTTPStatus.OK),
  ])
  ```
  Response behavior can also be also be specified per remote uri:

  ```
  MockedAsyncClient({
      "http://first.example.com/": [
          Exception("My mocked error that will be raised"),
          Response(status_code=HTTPStatus.NO_CONTENT),
          Response(status_code=HTTPStatus.OK),
      ],
      "http://second.example.com/": Response(status_code=HTTPStatus.NO_CONTENT),
  })
  ```



  If you have tests that depend on environment variables, the `assertical.fixtures.environment` module has utilities to aid in snapshotting/restoring the state of the operating system environment variables.

  Eg: This `environment_snapshot` context manager will snapshot the environment allowing a test to freely modify it and then reset everything to before the test run
  ```
  import os
  from assertical.fixtures.environment import environment_snapshot

  def test_my_custom_test():
      with environment_snapshot():
          os.environ["MY_ENV"] = new_value
          
  ```

  This can also be simplified by using a fixture:
  ```
  @pytest.fixture
  def preserved_environment():
      with environment_snapshot():
          yield

  def test_my_custom_test_2(preserved_environment):
      os.environ["MY_ENV"] = new_value
      
  ```



  FastAPI (or ASGI apps) can be loaded for integration testing in two ways with Assertical:
  1. Creating a lightweight httpx.AsyncClient wrapper around the app instance
  1. Running a full uvicorn instance



  `assertical.fixtures.fastapi.start_app_with_client` will act as an async context manager that can wrap an ASGI app instance and yield a  `httpx.AsyncClient` that will communicate directly with that app instance.

  Eg: This fixture will start an app instance and tests can depend on it to start up a fresh app instance for every test
  ```
  @pytest.fixture
  async def custom_test_client():
      app: FastApi = generate_app() # This is just a reference to a fully constructed instance of your FastApi app
      async with start_app_with_client(app) as c:
          yield c  # c is an instance of httpx.AsyncClient


  @pytest.mark.anyio
  async def test_thing(custom_test_client: AsyncClient):
      response = await custom_test_client.get("/my_endpoint")
      assert response.status == 200
  ```



  `assertical.fixtures.fastapi.start_uvicorn_server` will behave similar to the above `start_app_with_client` but it will start a full running instance of uvicorn that will tear down once the context manager is exited.

  This can be useful if you need to not just test the ASGI behavior of the app, but also how it interacts with a "real" uvicorn instance. Perhaps your app has middleware playing around with the underlying starlette functionality?

  Eg: This fixture will start an app instance (listening on a fixed address) and will return the base URI of that instance
  ```
  @pytest.fixture
  async def custom_test_uri():
      app: FastApi = generate_app() # This is just a reference to a fully constructed instance of your FastApi app
      async with start_uvicorn_server(app) as c:
          yield c  # c is uri like "http://127.0.0.1:12345"


  @pytest.mark.anyio
  async def test_thing(custom_test_uri: str):
      client = AsyncClient()
      response = await client.get(custom_test_uri + "/my_endpoint")
      assert response.status == 200
  ```






  This package isn't designed to be a collection of all possible asserts, other packages handle that. What is included are a few useful asserts around typing

  `assertical.asserts.generator.assert_class_instance_equality()` will allow the comparison of two objects, property by property using a class/type definition as the source of compared properties. Using the above earlier `Student` example:

  ```
  s1 = generate_class_instance(Student, seed=1)
  s1_dup = generate_class_instance(Student, seed=1)
  s2 = generate_class_instance(Student, seed=2)


  assert_class_instance_equality(Student, s1, s2)


  assert_class_instance_equality(Student, s1, s1_dup)



  assert_class_instance_equality(Student, s1, s1_dup, ignored_properties=set(['student_id]))
  ```



  contains some utilities for comparing times in different forms (eg timestamps, datetimes etc)

  For example, the following asserts that a timestamp or datetime is "roughly now"
  ```
  dt1 = datetime(2023, 11, 10, 1, 2, 0)
  ts2 = datetime(2023, 11, 10, 1, 2, 3).timestamp()  # 3 seconds difference
  ts2 = datetime(2023, 11, 10, 1, 2, 3).timestamp()  # 3 seconds difference
  assert_fuzzy_datetime_match(dt1, ts2, fuzziness_seconds=5)  # This will pass (difference is <5 seconds)
  assert_fuzzy_datetime_match(dt1, ts2, fuzziness_seconds=2)  # This will raise (difference is >2 seconds)
  ```



  `assertical.asserts.type` contains some utilities for asserting collections of types are properly formed.

  For example, the following asserts that an instance is a list type, that only contains Student elements and that there are 5 total items.
  ```
  my_custom_list = []
  assert_list_type(Student, my_custom_list, count=5)
  ```



  Contains a number of simple assertions for a dataframe for ensuring certain columns/rows exist



  `pip install assertical[all]`



  `pip install -e .[all]`



  | **module** | **requires** |
  | ---------- | ------------ |
  | `asserts/generator` | `None`+ |
  | `asserts/pandas` | `assertical[pandas]` |
  | `fake/generator` | `None`+ |
  | `fake/sqlalchemy` | `assertical[postgres]` |
  | `fixtures/fastapi` | `assertical[fastapi]` |
  | `fixtures/postgres` | `assertical[postgres]` |

  + No requirements are mandatory but additional types will be supported if `assertical[pydantic]`, `assertical[postgres]`, `assertical[xml]` are installed

  All other types just require just the base `pip install assertical`






  The file `vscode/settings.json` is an example configuration for vscode. To use these setting copy this file to `.vscode/settings,json`

  The main features of this settings file are:
      - Enabling flake8 and disabling pylint
      - Autoformat on save (using the black and isort formatters)

  Settings that you may want to change:
  - Set the python path to your python in your venv with `python.defaultInterpreterPath`.
  - Enable mypy by setting `python.linting.mypyEnabled` to true in settings.json.


pkgId: 8c37a672c2f2682584ef924f05a1265d76f6a17329aab421cf97e260fecf6dfa
name: python-assertio
arch: src
version: 1.5.11
epoch: 0
release: 1
summary: A pseudo-functional API Testing library.
url: https://github.com/aldorvv/assertio
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assertio-1.5.11-1.src.rpm
checksum_type: sha256
description:
  Pseudo-functional Python api testing framework.



  `pip install assertio`



  Assertio consists on create requests on a chain way, you can organize
  this requests within a Runner class in order to define test cases.

  You can find below an example using the [Pokemon API](https://pokeapi.co)

  ```python

  from assertio import Request, Runner


  class MyRunner(Runner):

      def test_get_pikachu(self):
          Request()\
              .to("/pokemon/pikachu")\
              .with_method("GET")\
              .perform()\
              .assert_http_ok()\
              .assert_response_field("name")\
              .equals("pikachu")

  MyRunner().start()

  ```

  This will run all the defined methods within `MyRunner` as long as they start
  with `test`.

  Wait, where should I add my API URL?
  Well you can export an enviromnent variable for that!

  ```bash
  $ export ASSERTIO_BASE_URL=https://pokeapi.co/api/v2
  ```

  Once this environment variable is setup let's start the test!

  ```bash
  $ python main.py
  ```

  Should do the trick!


  But that's not it!

  Assertio has many assertions defined and is flexible enough to let you define
  your custom assertions and preconditions.

  You can chain as many assertions and preconditions as you want, just remember
  to keep it simple, if your request chain is 15 lines long, maybe it's time
  to consider to split it in smaller tests.

  Anyway, let's take a look to a more complex example using a POST to a custom
  API.

  Remember to change the `ASSERTIO_BASE_URL` environment variable

  ```bash
  $ export ASSERTIO_BASE_URL=http://my-books-api-domain/api/v1
  ```

  And let's try to add a new resource.

  ```python


  from assertio import Request, Runner

  DEFAULT_HEADERS = {"Content-Type": "application/json"}
  BOOK_PAYLOAD = {
      "id": 144,
      "title": "The Divine Comedy",
      "author": {
          "id": 12,
          "name": "Dante Alighieri",
          "nationality": "Italian"
      },
      "year": 1472
  }

  class MyRunner(Runner):

      def test_create_book(self):
          Request()\
              .to("/books/")\
              .with_method("POST")\
              .with_headers(DEFAULT_HEADERS)\
              .with_body(BOOK_PAYLOAD)\
              .perform()\
              .assert_http_created()\
              .assert_response_field("author.nationality")\
              .equals("Italian")

  MyRunner().start()
  ```

  All the tests must start with `test`!
  Otherwise `start()` method will not run it


pkgId: 26b0f4076d5bc104a24a38b7ca507368bb3d67bdf1e78b3039159a8ab7d2b16a
name: python-assertpy
arch: src
version: 1.1
epoch: 0
release: 1
summary: Simple assertion library for unit testing in python with a fluent API
url: https://github.com/assertpy/assertpy
rpm_license: BSD
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assertpy-1.1-1.src.rpm
checksum_type: sha256
description:
  Simple assertions library for unit testing in Python with a nice fluent API. Supports both Python 2 and 3.


pkgId: d7ec77303ec9248eaa39e1b8dbf0a062a651cad03f69ba0fb281a022547fb544
name: python-asserts
arch: src
version: 0.13.1
epoch: 0
release: 1
summary: Stand-alone Assertions
url: https://github.com/srittau/python-asserts
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asserts-0.13.1-1.src.rpm
checksum_type: sha256
description:
  [![License](https://img.shields.io/pypi/l/asserts.svg)](https://pypi.python.org/pypi/asserts/)
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/asserts)](https://pypi.python.org/pypi/asserts/)
  [![GitHub](https://img.shields.io/github/release/srittau/python-asserts/all.svg)](https://github.com/srittau/python-asserts/releases/)
  [![pypi](https://img.shields.io/pypi/v/asserts.svg)](https://pypi.python.org/pypi/asserts/)
  [![GitHub Actions](https://img.shields.io/github/workflow/status/srittau/python-asserts/Test%20and%20lint)](https://github.com/srittau/python-asserts/actions/workflows/test-and-lint.yml)

  Stand-alone Assertions for Python

  This package provides a few advantages over the assertions provided by
  unittest.TestCase:

  - Can be used stand-alone, for example:
    - In test cases, not derived from TestCase.
    - In fake and mock classes.
    - In implementations as rich alternative to the assert statement.
  - PEP 8 compliance.
  - Custom stand-alone assertions can be written easily.
  - Arguably a better separation of concerns, since TestCase is responsible
    for test running only, if assertion functions are used exclusively.

  There are a few regressions compared to assertions from TestCase:

  - The default assertion class (`AssertionError`) can not be overwritten. This
    is rarely a problem in practice.
  - asserts does not support the `addTypeEqualityFunc()` functionality.

  Usage:

  ```python
  >>> from asserts import assert_true, assert_equal, assert_raises
  >>> my_var = 13
  >>> assert_equal(13, my_var)
  >>> assert_true(True, msg="custom failure message")
  >>> with assert_raises(KeyError):
  ...     raise KeyError()
  ```

  Failure messages can be customized:

  ```python
  >>> assert_equal(13, 14, msg_fmt="{got} is wrong, expected {expected}")
  Traceback (most recent call last):
    ...
  AssertionError: 14 is wrong, expected 13
  ```


pkgId: 984be01c20f025df80df15916bef45668387c15d75745fc560f9a23941edd95a
name: python-asserty
arch: src
version: 3.0.0
epoch: 0
release: 1
summary: A utility package for making better test assertions
url: https://github.com/lunjon/asserty
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asserty-3.0.0-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://travis-ci.com/lunjon/asserty.svg?branch=master)](https://travis-ci.com/lunjon/asserty)



  _Asserty_ is a utility package that provides methods for better assertion in testing.




  The package can be installed using `pip`:

  ```bash
  $ pip install asserty
  ```



  You make assertions by importing the `assert_that` function from the `asserty` package:

  ```python
  from asserty import assert_that

  assert_that("str").not_equals("string")
  assert_that(5).is_in(range(10))

  def myfunc(arg):
      if not isinstance(arg, str):
          raise TypeError()
      return arg+"yay"

  assert_that(myfunc).if_called_with(1).raises(TypeError)
  assert_that(myfunc).if_called_with("Hey-").returns("Hey-yay")
  ```

  Outside a test context that does not handle `AssertionError` you can import the equivalent function called `that`:

  ```python
  from asserty import that

  assert that("str").not_equals("string")
  assert that(5).is_in(range(10))
  ```


pkgId: 5193ae84703a0d7285b07b529523db55997adad7a68785d7c39f50c6995222cd
name: python-assesspy
arch: src
version: 2.0.0
epoch: 0
release: 1
summary: Python package for measuring assessment performance
url: https://pypi.org/project/assesspy/
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assesspy-2.0.0-1.src.rpm
checksum_type: sha256
description:
  [![package-build](https://github.com/ccao-data/assesspy/actions/workflows/python-package.yaml/badge.svg)](https://github.com/ccao-data/assesspy/actions/workflows/python-package.yaml)
  [![test-coverage](https://github.com/ccao-data/assesspy/actions/workflows/test-coverage.yaml/badge.svg)](https://github.com/ccao-data/assesspy/actions/workflows/test-coverage.yaml)
  [![pre-commit](https://github.com/ccao-data/assesspy/actions/workflows/pre-commit.yaml/badge.svg)](https://github.com/ccao-data/assesspy/actions/workflows/pre-commit.yaml)

  AssessPy is a software package for Python developed by the Cook County Assessor’s (CCAO)
  Data Department. It contains many of the functions necessary to perform a standard
  [sales ratio study](https://www.iaao.org/media/standards/Standard_on_Ratio_Studies.pdf).

  For assessors, we believe that this package will reduce the complexity of calculating
  ratio statistics and detecting sales chasing. We also hope that reporters, taxpayers,
  and members of academia will find this package helpful in monitoring the performance
  of local assessors and conducting research.

  For detailed documentation on included functions and data, [**visit the
  full reference list**](https://ccao-data.github.io/assesspy/reference.html).

  For examples of specific tasks you can complete with `assesspy`
  functions, see the [**vignettes page**](https://ccao-data.github.io/assesspy/vignettes.html).



  You can install the released version of `assesspy` using pip.

  ```python
  pip install assesspy
  ```

  Once it's installed, you can use it just like any other package. Simply
  call `import assesspy` at the beginning of your script.

rpm_license:
  GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007  Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.  Preamble  The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software.  The licenses for most software and other practical works are designed to take away your freedom to share and change the works.  By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users.  When we speak of free software, we are referring to freedom, not price.  Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.  Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software.  A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate.  Many developers of free software are heartened and encouraged by the resulting cooperation.  However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public.  The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community.  It requires the operator of a network server to provide the source code of the modified version running there to the users of that server.  Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.  An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals.  This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license.  The precise terms and conditions for copying, distribution and modification follow.  TERMS AND CONDITIONS  0. Definitions.  "This License" refers to version 3 of the GNU Affero General Public License.  "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.  "The Program" refers to any copyrightable work licensed under this License.  Each licensee is addressed as "you".  "Licensees" and "recipients" may be individuals or organizations.  To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy.  The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work.  A "covered work" means either the unmodified Program or a work based on the Program.  To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy.  Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.  To "convey" a work means any kind of propagation that enables other parties to make or receive copies.  Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.  An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License.  If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.  1. Source Code.  The "source code" for a work means the preferred form of the work for making modifications to it.  "Object code" means any non-source form of a work.  A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.  The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form.  A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.  The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities.  However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work.  For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.  The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.  The Corresponding Source for a work in source code form is that same work.  2. Basic Permissions.  All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met.  This License explicitly affirms your unlimited permission to run the unmodified Program.  The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work.  This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.  You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force.  You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright.  Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.  Conveying under any other circumstances is permitted solely under the conditions stated below.  Sublicensing is not allowed; section 10 makes it unnecessary.  3. Protecting Users' Legal Rights From Anti-Circumvention Law.  No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.  When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.  4. Conveying Verbatim Copies.  You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.  You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.  5. Conveying Modified Source Versions.  You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:  a) The work must carry prominent notices stating that you modified it, and giving a relevant date.  b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7.  This requirement modifies the requirement in section 4 to "keep intact all notices".  c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy.  This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged.  This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.  d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.  A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit.  Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.  6. Conveying Non-Source Forms.  You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:  a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.  b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.  c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source.  This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.  d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge.  You need not require recipients to copy the Corresponding Source along with the object code.  If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source.  Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.  e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.  A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.  A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling.  In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage.  For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product.  A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.  "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source.  The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.  If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information.  But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).  The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed.  Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.  Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.  7. Additional Terms.  "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law.  If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.  When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it.  (Additional permissions may be written to require their own removal in certain cases when you modify the work.)  You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.  Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:  a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or  b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or  c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or  d) Limiting the use for publicity purposes of names of licensors or authors of the material; or  e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or  f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.  All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10.  If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term.  If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.  If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.  Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.  8. Termination.  You may not propagate or modify a covered work except as expressly provided under this License.  Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).  However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.  Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.  Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License.  If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.  9. Acceptance Not Required for Having Copies.  You are not required to accept this License in order to receive or run a copy of the Program.  Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance.  However, nothing other than this License grants you permission to propagate or modify any covered work.  These actions infringe copyright if you do not accept this License.  Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.  10. Automatic Licensing of Downstream Recipients.  Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License.  You are not responsible for enforcing compliance by third parties with this License.  An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations.  If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.  You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License.  For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.  11. Patents.  A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based.  The work thus licensed is called the contributor's "contributor version".  A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version.  For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.  Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.  In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement).  To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.  If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients.  "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.  If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.  A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License.  You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.  Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.  12. No Surrender of Others' Freedom.  If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License.  If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all.  For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.  13. Remote Network Interaction; Use with the GNU General Public License.  Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software.  This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.  Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work.  The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License.  14. Revised Versions of this License.  The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time.  Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.  Each version is given a distinguishing version number.  If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation.  If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation.  If the Program specifies that a proxy can decide which future versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.  Later license versions may give you additional or different permissions.  However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.  15. Disclaimer of Warranty.  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.  16. Limitation of Liability.  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.  17. Interpretation of Sections 15 and 16.  If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.  END OF TERMS AND CONDITIONS  How to Apply These Terms to Your New Programs  If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.  To do so, attach the following notices to the program.  It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.  Residential Copyright (C) 2019  CCAO Data Science - Modeling  This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more details.  You should have received a copy of the GNU Affero General Public License along with this program.  If not, see <http://www.gnu.org/licenses/>.  Also add information on how to contact you by electronic and paper mail.  If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source.  For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code.  There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements.  You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see <http://www.gnu.org/licenses/>.


pkgId: 6b672f185e572661f59750af9bb08f59c8da799328416a1a7ad78ffc1a0dbf94
name: python-assets2036py
arch: src
version: 0.1.10
epoch: 0
release: 1
summary: helper library to easily implement assets2036
url: https://github.com/boschresearch/assets2036spy
rpm_license: BIOS
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assets2036py-0.1.10-1.src.rpm
checksum_type: sha256
description:
  Helper lib for consuming and providing assets2036 assets.


  ```python
  from assets2036py import AssetManager


  mgr = AssetManager("localhost",1883,"my_namespace","endpoint_name")

  my_lamp = mgr.create_asset("my_lamp","https://raw.githubusercontent.com/boschresearch/assets2036-submodels/master/light.json")

  my_lamp.light.light_on.value = True
  ```
  For further examples take a look at the [tests](tests/test_asset.py).


pkgId: bfd4aebe5a4fa21d682de8dfcaec2b4e2c4fed7c8470f3a523f7730edbfc87f7
name: python-assis
arch: src
version: 0.3.2
epoch: 0
release: 1
summary: A doc generator for data engineering projects.
url: https://github.com/pedrohgoncalvess/assis
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assis-0.3.2-1.src.rpm
checksum_type: sha256
description:
  **Assis** is a Python package designed to automate the generation of documentation for data engineering projects. It scans your project files, processes them, and creates comprehensive documentation based on your codebase using natural language processing. The tool can be particularly useful for generating README files or technical documentation for data engineering workflows, pipelines, and systems.


  - **Automated documentation generation**: Scans your project directory and creates documentation files such as README.md.
  - **Multi-language support**: Generates documentation in multiple languages (default is Portuguese, `pt-br`).
  - **Customizable file search**: Allows the user to ignore certain directories when generating documentation.
  - **API Integration**: Utilizes OpenAI API to generate meaningful documentation based on the project structure.


  To install the package, you can clone the repository and install the dependencies:

  ```bash
  pip install assis
  ```

  Make sure to set up your environment variables or provide an OpenAI API key when running the script.





  To generate documentation for your project, simply run the following command:

  ```bash
  assis --path /path/to/your/project --key your_openai_api_key
  ```



  - `--path` (required): The path to the directory where your data engineering project resides.
  - `--lang`: The language in which you want the documentation to be generated. Default is Portuguese (`pt-br`).
  - `--ignore`: Directories to ignore during documentation generation. *.idea, .git, .venv, venv, \__pycache__, .history, build will always be ignored*
  - `--key`: OpenAI API key for generating the documentation. If not provided, the key should be available in environment variables as `OPENAI_API_KEY`.



  This will generate the following files in your project directory:
  - `assis-doc.log.json`: A log of the input and output tokens used during documentation generation.
  - `README.md`: The generated documentation file for your project.



  If you prefer not to pass the OpenAI API key via the command line, you can create a `.env` file in your project root with the following content:

  ```
  OPENAI_API_KEY=your_openai_api_key
  ```

  The package will automatically load this environment variable during runtime.



  Feel free to submit issues or pull requests if you want to contribute to improving **Assis**.



  This project is licensed under the MIT License. See the [LICENSE](LICENSE.txt) file for details.


pkgId: 6b06758f907e7dc3e39e17d629eba1a260f0e836488e8d9039197bf0a1d7647b
name: python-assistant-improve-toolkit
arch: src
version: 1.4.1
epoch: 0
release: 1
summary: Assistant Improve Toolkit
url: https://github.com/watson-developer-cloud/assistant-improve-recommendations-notebook
rpm_license: Apache 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assistant-improve-toolkit-1.4.1-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://travis-ci.org/watson-developer-cloud/assistant-improve-recommendations-notebook.svg?branch=master)](https://travis-ci.org/github/watson-developer-cloud/assistant-improve-recommendations-notebook)
  [![Slack](https://wdc-slack-inviter.mybluemix.net/badge.svg)](https://wdc-slack-inviter.mybluemix.net)
  [![Latest Stable Version](https://img.shields.io/pypi/v/assistant-improve-toolkit)](https://pypi.org/project/assistant-improve-toolkit/)
  [![CLA assistant](https://cla-assistant.io/readme/badge/watson-developer-cloud/assistant-improve-recommendations-notebook)](https://cla-assistant.io/watson-developer-cloud/assistant-improve-recommendations-notebook)

  This repository houses Watson Assistant Improve notebooks and the underlying assistant improve toolkit library.


  To help improving your Watson Assistant after you have deployed it to production, we prepared the following Jupyter notebooks. These notebooks include practical steps for measuring, analyzing, and actively improving your assistant in a continuous manner. Check out [IBM Watson Assistant Continuous Improvement Best Practices](https://github.com/watson-developer-cloud/assistant-improve-recommendations-notebook/raw/master/notebook/IBM%20Watson%20Assistant%20Continuous%20Improvement%20Best%20Practices.pdf) for more details.

  - __Measure notebook__ contains a set of automated metrics that help you monitor and understand the behavior of your system. The goal is to understand where your assistant is doing well vs where it isn’t, and to focus your improvement effort to one of the problem areas identified. This notebook generates an assessment spreadsheet for you to use to label problematic conversations, and then feed to the Effectiveness notebook.

  - __Effectiveness notebook__ helps you understand the relative performance of each intent and entity as well as the confusion between your intents. This information helps you prioritize your improvement effort. The input to this notebook is an assessment spreadsheet generated from the Measure notebook. Update the marked columns in the spreadsheet with your labels and load it into the Effectiveness notebook for analysis.

  - __Logs notebook__ helps you fetch logs using Watson Assistant API.  You can fetch logs with various filters, and save them as a JSON file, or export the utterances in the logs into a CSV file.  The JSON file can be loaded into the Measure notebook.  The CSV file can be used for [intent recommendation service](https://cloud.ibm.com/docs/assistant?topic=assistant-intent-recommendations#intent-recommendations-get-intent-recommendations-task). Alternatively, you can run python scripts [`fetch_logs`](https://github.com/watson-developer-cloud/assistant-improve-recommendations-notebook/blob/master/src/main/python/fetch_logs.py) and [`export_csv_for_intent_recommendation`](https://github.com/watson-developer-cloud/assistant-improve-recommendations-notebook/blob/master/src/main/python/export_csv_for_intent_recommendation.py) to fetch logs and export them to [intent recommendation CSV](https://cloud.ibm.com/docs/assistant?topic=assistant-intent-recommendations#intent-recommendations-data-resources), respectively.  Run `python get_logs -h` and `python export_csv_for_intent_recommendation.py -h` for usage.

  - __Dialog Flow Analysis notebook__ help you assess and analyze user journeys and issues related to the dialog flow of ineffective (low quality) conversations based on production logs. Check out [Dialog Flow Analysis](https://github.com/watson-developer-cloud/assistant-dialog-flow-analysis) for more details.

  - __Dialog Skill Analysis notebook__ help you analyze characteristics of your data such as the number of training examples for each intent or the terms which seem to be characteristic of a specific intent. Check out [Dialog Skill Analysis](https://github.com/watson-developer-cloud/assistant-dialog-skill-analysis) for more details.



  You can either run the notebooks locally or in [IBM Watson Studio](https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/notebooks-parent.html).

  - **Run locally**

      1. Install Jupyter Notebook, see [Jupyter/IPython Notebook Quick Start Guide](https://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/install.html) for more details.
      2. Download the Jupyter notebooks available in this repository's [notebook](https://github.com/watson-developer-cloud/assistant-improve-recommendations-notebook/tree/master/notebook) directory. __Note: These notebook files are not designed for Watson Studio environment__
      3. Start jupyter server `jupyter notebook`
      4. Follow the instructions in each of the notebooks. Be sure to add your Watson Assistant credentials if necessary.

  - **Run in Watson Studio**

      1. Create a Watson Studio account.
         Sign up in [Watson Studio](https://www.ibm.com/cloud/watson-studio), or use an existing account. Lite plan is free to use.

      2. Create a new project and add a Cloud Object Storage (COS) account.
         For more information regarding COS plans, see [Pricing](https://www.ibm.com/cloud-computing/bluemix/pricing-object-storage).

      3. Copy [Measure](https://dataplatform.cloud.ibm.com/exchange/public/entry/view/133dfc4cd1480bbe4eaa78d3f635e568) or  [Effectiveness](https://dataplatform.cloud.ibm.com/exchange/public/entry/view/133dfc4cd1480bbe4eaa78d3f636921c) notebook from Watson Studio community into your project.

      4. Follow the instructions in each notebook to add project tokens and Watson Assistant credentials if necessary.


  * Learn more about our measure and effectiveness notebook on Medium: [Continuously Improve Your Watson Assistant with Jupyter Notebooks](https://medium.com/ibm-watson/continuously-improve-your-watson-assistant-with-jupiter-notebooks-60231df4f01f)


  See [CONTRIBUTING.md](CONTRIBUTING.md) for more details on how to contribute


  This library is licensed under the [Apache 2.0 license](http://www.apache.org/licenses/LICENSE-2.0).


pkgId: 784d95254b76775d450a1b61d35bcd9f481497a8742a1c15ad1f51c18b33182c
name: python-assistant-lib
arch: src
version: 0.16
epoch: 0
release: 1
summary: The Assistant python library
url: https://gitlab.com/goassistant/assistant-client-python
rpm_license: GNU Lesser General Public License v3 (LGPLv3)
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assistant-lib-0.16-1.src.rpm
checksum_type: sha256
description:
  This Python 3.x library is used to write programs that can interact with the Assistant.

  Assistant : https://gitlab.com/goassistant/assistant

  Pypi webpage : https://pypi.org/project/assistant-lib





  Improvments :

  * Handle the new peer discovery protocol set in Assistant > 0.3

  Features :

  * (NEW) Helper to get the version from git.
  * Helper to init logging properly.
  * Helper to show the component to the others (peer discovery). Seeing the other components is not yet implemented.
  * Helper to generate SSL certificates.



  First usable release.

  Features :

  * Helper to init logging properly.
  * Helper to show the component to the others (peer discovery). Seeing the other components is not yet implemented.
  * Helper to generate SSL certificates



  The license choosen for this project it the LGPLv3. It was choosen instead of the GPLv3 because :

  > The license allows developers and companies to use and integrate a software component released under the LGPL into their own (even proprietary) software without being required by the terms of a strong copyleft license to release the source code of their own components. However, any developer who modifies an LGPL-covered component is required to make their modified version available under the same LGPL license.

  See [Wikipedia](https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License) for more informations.



  pip3 install assistant-lib



  Here is a simple test :

  ```
  $ python3
  Python 3.7.4 (default, Jul 11 2019, 10:43:21)
  [GCC 8.3.0] on linux
  Type "help", "copyright", "credits" or "license" for more information.
  >>> from assistant_lib import assistant
  >>> ac = assistant.AssistantClient()
  Output redirected to the file : 'assistant.log'
  >>> ac.get_hostname()
  'ambre'
  ```



  When you initialise the assistant client with:

  ```
  ac = assistant.AssistantClient()
  ```

  It will also configure the python logging engine. You will just have to use the standard logging functions :

  ```
  logging.debug("A debug message")
  logging.info("An info message")
  logging.warning("A warning message")
  logging.error("An error message")
  ```

  By default, the logs are written in a log file named __assistant.log__ in the __debug__ log level. The logs are written in json format to be ready to be used by logging centralization tools as Elastic or Datalog.

  If you want to change this behavious, just set the following environement variables:

  * LOG_FILE : a path to a file
  * LOG_LEVEL : a log level : DEBUG, INFO, WARNING, ERROR

  Examples with an application foobar.py :

  ```
  $ LOG_LEVEL=DEBUG LOG_FILE=/var/log/foobar.log /usr/bin/python3 foobar.py
  $ LOG_LEVEL=WARNING /usr/bin/python3 foobar.py
  ```

  If you don't want to log in a file and prefer to log in the console, use this environment variable :

  * LOG_OUTPUT : TTY to log in console, anything else to log in a file.

  Example :

  ```
  $ LOG_OUTPUT=TTY /usr/bin/python3 foobar.py
  ```

  The log displayed in the console are no more in json format.



  The json logging formatter does not handle the old python way to include variables in strings like this :

  ```
  a = 8
  logging.info("The number 8 will not be display : %d" % a)
  ```

  You must use the new way :

  ```
  a = 8
  logging.info("The number 8 will be display : {0}".format(a))
  ```



  If you plan to make some upgrades and test them, here is how to process :

  * Edit your changes in the code
  * Run the clean and build command:

  ```
  make
  ```

  * Check the dist/ folder
  * Install the builded package from the dist/ folder:

  ```
  pip3 install dist/assistant_lib-<version>.tar.gz
  ```



  The version number is automatically get from git thanks to the setuptools_scm library. So you have no version to set in the code.

  To create a new release, just create a tag and push it to Gitlab. The CI/CD pipeline will build a release and publish it to Pypi. This is just magic ;). You can check the .gitlab-ci.yml file to understand how it works.


pkgId: 3149466f9f3cb0a3b1477fac3308f90fbc9989bf90ff6ab2fb25ece8ac921e2f
name: python-assistant-project
arch: src
version: 0.3.8
epoch: 0
release: 1
summary: Python Library for the EU ASSISTANT-Project
url: https://pypi.org/project/assistant-project/
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assistant-project-0.3.8-1.src.rpm
checksum_type: sha256
description:
  **0.3.8**:
  - Fix hardcoding of Attribute Key
  **0.3.7**:
  - Change output of writing process to output entire file not only changed list.
  **0.3.6**:
  - Bug fix
  **0.3.5**:
  - Add functionality to Dict Wrapper that allows to change specific values
  **0.3.4**:
  - Fix error where list isn't returned when it is not in top level dictionary.
  **0.3.3**:
  - Bug fixes
  **0.3.2**:
  - FIX: relative import of *json_wapper*
  - Add condition to return correct value if two keys are identical in different subdirectories
  **0.3.1**:
  - Add method to get identifier from cfg_file based on name for *json_wrapper*
  **0.3**:
  - Create new sublibrary *json_wrapper*
  **0.2**:
  - Create new sublibrary *production_system*
  - Remove prints from *graphdb*
  **0.1.1**:
  - Update graphdb download
  **0.1**:
  - Create library

rpm_license:
  Copyright (c) 2018 The Python Packaging Authority  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


pkgId: 70bdc2ac52dadc871beca8d0d6d58ad4febecba0de778c31b40dde06afc5b8d5
name: python-assisted-django
arch: src
version: 0.2.7
epoch: 0
release: 1
url: https://github.com/fauzaanu/assisted-django
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assisted-django-0.2.7-1.src.rpm
checksum_type: sha256
summary:
  CLI Tool to generate content for all files in a django app directory including all the templates with the help of OpenAI Models

description:
  A CLI Tool to generate content for all files in a django app directory including templates with the help of openai models

  This script would generate the following files for you:
  - [x] models.py
  - [x] views.py
  - [x] urls.py
  - [x] admin.py
  - [x] tests.py
  - [x] forms.py
  - [x] signals.py
  - [x] HTML templates

  > Meant to be run after the startapp command



  `pip install assisted-django`



  1. Make a django project and create a new app as usual
  2. Run `python -m assisted_django` in the same level as `manage.py`
  3. `CLI` will guide you through the rest of the process


  - Set the `OPENAI_API_KEY` in your `.env` file
  - This script **will overwrite** the existing app directory files
  - The CLI will confirm with the full file path before taking any action
  - **Write better briefs to get better results**


  - We prefer class based generic views
  - We utilize django-crispy-forms with bootstrap4
  - Html templates utilize bootstrap4


pkgId: 9820a55dcc832841610320ff8d3b288bdb75886f04975150bd267b2b38b38887
name: python-assisted-service-client
arch: src
version: 2.36.0.post11
epoch: 0
release: 1
summary: AssistedInstall
url: https://github.com/openshift/assisted-service
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assisted-service-client-2.36.0.post11-1.src.rpm
checksum_type: sha256
description:
  *EventsApi* | [**v2_list_events**](docs/EventsApi.md#v2_list_events) | **GET** /v2/events |
  *EventsApi* | [**v2_trigger_event**](docs/EventsApi.md#v2_trigger_event) | **POST** /v2/events |
  *InstallerApi* | [**bind_host**](docs/InstallerApi.md#bind_host) | **POST** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/actions/bind |
  *InstallerApi* | [**deregister_infra_env**](docs/InstallerApi.md#deregister_infra_env) | **DELETE** /v2/infra-envs/{infra_env_id} |
  *InstallerApi* | [**download_minimal_initrd**](docs/InstallerApi.md#download_minimal_initrd) | **GET** /v2/infra-envs/{infra_env_id}/downloads/minimal-initrd |
  *InstallerApi* | [**get_cluster_supported_platforms**](docs/InstallerApi.md#get_cluster_supported_platforms) | **GET** /v2/clusters/{cluster_id}/supported-platforms |
  *InstallerApi* | [**get_infra_env**](docs/InstallerApi.md#get_infra_env) | **GET** /v2/infra-envs/{infra_env_id} |
  *InstallerApi* | [**get_infra_env_download_url**](docs/InstallerApi.md#get_infra_env_download_url) | **GET** /v2/infra-envs/{infra_env_id}/downloads/image-url |
  *InstallerApi* | [**get_infra_env_presigned_file_url**](docs/InstallerApi.md#get_infra_env_presigned_file_url) | **GET** /v2/infra-envs/{infra_env_id}/downloads/files-presigned |
  *InstallerApi* | [**get_supported_architectures**](docs/InstallerApi.md#get_supported_architectures) | **GET** /v2/support-levels/architectures |
  *InstallerApi* | [**get_supported_features**](docs/InstallerApi.md#get_supported_features) | **GET** /v2/support-levels/features |
  *InstallerApi* | [**list_cluster_hosts**](docs/InstallerApi.md#list_cluster_hosts) | **GET** /v2/clusters/{cluster_id}/hosts |
  *InstallerApi* | [**list_infra_envs**](docs/InstallerApi.md#list_infra_envs) | **GET** /v2/infra-envs |
  *InstallerApi* | [**regenerate_infra_env_signing_key**](docs/InstallerApi.md#regenerate_infra_env_signing_key) | **POST** /v2/infra-envs/{infra_env_id}/regenerate-signing-key |
  *InstallerApi* | [**register_infra_env**](docs/InstallerApi.md#register_infra_env) | **POST** /v2/infra-envs |
  *InstallerApi* | [**transform_cluster_to_adding_hosts**](docs/InstallerApi.md#transform_cluster_to_adding_hosts) | **POST** /v2/clusters/{cluster_id}/actions/allow-add-hosts |
  *InstallerApi* | [**transform_cluster_to_day2**](docs/InstallerApi.md#transform_cluster_to_day2) | **POST** /v2/clusters/{cluster_id}/actions/allow-add-workers |
  *InstallerApi* | [**unbind_host**](docs/InstallerApi.md#unbind_host) | **POST** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/actions/unbind |
  *InstallerApi* | [**update_infra_env**](docs/InstallerApi.md#update_infra_env) | **PATCH** /v2/infra-envs/{infra_env_id} |
  *InstallerApi* | [**v2_cancel_installation**](docs/InstallerApi.md#v2_cancel_installation) | **POST** /v2/clusters/{cluster_id}/actions/cancel |
  *InstallerApi* | [**v2_complete_installation**](docs/InstallerApi.md#v2_complete_installation) | **POST** /v2/clusters/{cluster_id}/actions/complete-installation |
  *InstallerApi* | [**v2_deregister_cluster**](docs/InstallerApi.md#v2_deregister_cluster) | **DELETE** /v2/clusters/{cluster_id} |
  *InstallerApi* | [**v2_deregister_host**](docs/InstallerApi.md#v2_deregister_host) | **DELETE** /v2/infra-envs/{infra_env_id}/hosts/{host_id} |
  *InstallerApi* | [**v2_download_cluster_credentials**](docs/InstallerApi.md#v2_download_cluster_credentials) | **GET** /v2/clusters/{cluster_id}/downloads/credentials |
  *InstallerApi* | [**v2_download_cluster_files**](docs/InstallerApi.md#v2_download_cluster_files) | **GET** /v2/clusters/{cluster_id}/downloads/files |
  *InstallerApi* | [**v2_download_cluster_logs**](docs/InstallerApi.md#v2_download_cluster_logs) | **GET** /v2/clusters/{cluster_id}/logs |
  *InstallerApi* | [**v2_download_host_ignition**](docs/InstallerApi.md#v2_download_host_ignition) | **GET** /v2/infra-env/{infra_env_id}/hosts/{host_id}/downloads/ignition |
  *InstallerApi* | [**v2_download_infra_env_files**](docs/InstallerApi.md#v2_download_infra_env_files) | **GET** /v2/infra-envs/{infra_env_id}/downloads/files |
  *InstallerApi* | [**v2_get_cluster**](docs/InstallerApi.md#v2_get_cluster) | **GET** /v2/clusters/{cluster_id} |
  *InstallerApi* | [**v2_get_cluster_default_config**](docs/InstallerApi.md#v2_get_cluster_default_config) | **GET** /v2/clusters/default-config |
  *InstallerApi* | [**v2_get_cluster_install_config**](docs/InstallerApi.md#v2_get_cluster_install_config) | **GET** /v2/clusters/{cluster_id}/install-config |
  *InstallerApi* | [**v2_get_cluster_ui_settings**](docs/InstallerApi.md#v2_get_cluster_ui_settings) | **GET** /v2/clusters/{cluster_id}/ui-settings |
  *InstallerApi* | [**v2_get_credentials**](docs/InstallerApi.md#v2_get_credentials) | **GET** /v2/clusters/{cluster_id}/credentials |
  *InstallerApi* | [**v2_get_host**](docs/InstallerApi.md#v2_get_host) | **GET** /v2/infra-envs/{infra_env_id}/hosts/{host_id} |
  *InstallerApi* | [**v2_get_host_ignition**](docs/InstallerApi.md#v2_get_host_ignition) | **GET** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/ignition |
  *InstallerApi* | [**v2_get_ignored_validations**](docs/InstallerApi.md#v2_get_ignored_validations) | **GET** /v2/clusters/{cluster_id}/ignored-validations |
  *InstallerApi* | [**v2_get_next_steps**](docs/InstallerApi.md#v2_get_next_steps) | **GET** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/instructions |
  *InstallerApi* | [**v2_get_preflight_requirements**](docs/InstallerApi.md#v2_get_preflight_requirements) | **GET** /v2/clusters/{cluster_id}/preflight-requirements |
  *InstallerApi* | [**v2_get_presigned_for_cluster_credentials**](docs/InstallerApi.md#v2_get_presigned_for_cluster_credentials) | **GET** /v2/clusters/{cluster_id}/downloads/credentials-presigned |
  *InstallerApi* | [**v2_get_presigned_for_cluster_files**](docs/InstallerApi.md#v2_get_presigned_for_cluster_files) | **GET** /v2/clusters/{cluster_id}/downloads/files-presigned |
  *InstallerApi* | [**v2_import_cluster**](docs/InstallerApi.md#v2_import_cluster) | **POST** /v2/clusters/import |
  *InstallerApi* | [**v2_install_cluster**](docs/InstallerApi.md#v2_install_cluster) | **POST** /v2/clusters/{cluster_id}/actions/install |
  *InstallerApi* | [**v2_install_host**](docs/InstallerApi.md#v2_install_host) | **POST** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/actions/install |
  *InstallerApi* | [**v2_list_clusters**](docs/InstallerApi.md#v2_list_clusters) | **GET** /v2/clusters |
  *InstallerApi* | [**v2_list_hosts**](docs/InstallerApi.md#v2_list_hosts) | **GET** /v2/infra-envs/{infra_env_id}/hosts |
  *InstallerApi* | [**v2_list_of_cluster_operators**](docs/InstallerApi.md#v2_list_of_cluster_operators) | **GET** /v2/clusters/{cluster_id}/monitored-operators |
  *InstallerApi* | [**v2_post_step_reply**](docs/InstallerApi.md#v2_post_step_reply) | **POST** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/instructions |
  *InstallerApi* | [**v2_register_cluster**](docs/InstallerApi.md#v2_register_cluster) | **POST** /v2/clusters |
  *InstallerApi* | [**v2_register_host**](docs/InstallerApi.md#v2_register_host) | **POST** /v2/infra-envs/{infra_env_id}/hosts |
  *InstallerApi* | [**v2_report_monitored_operator_status**](docs/InstallerApi.md#v2_report_monitored_operator_status) | **PUT** /v2/clusters/{cluster_id}/monitored-operators |
  *InstallerApi* | [**v2_reset_cluster**](docs/InstallerApi.md#v2_reset_cluster) | **POST** /v2/clusters/{cluster_id}/actions/reset |
  *InstallerApi* | [**v2_reset_host**](docs/InstallerApi.md#v2_reset_host) | **POST** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/actions/reset |
  *InstallerApi* | [**v2_reset_host_validation**](docs/InstallerApi.md#v2_reset_host_validation) | **PATCH** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/actions/reset-validation/{validation_id} | Reset failed host validation.
  *InstallerApi* | [**v2_set_ignored_validations**](docs/InstallerApi.md#v2_set_ignored_validations) | **PUT** /v2/clusters/{cluster_id}/ignored-validations |
  *InstallerApi* | [**v2_update_cluster**](docs/InstallerApi.md#v2_update_cluster) | **PATCH** /v2/clusters/{cluster_id} |
  *InstallerApi* | [**v2_update_cluster_finalizing_progress**](docs/InstallerApi.md#v2_update_cluster_finalizing_progress) | **PUT** /v2/clusters/{cluster_id}/progress |
  *InstallerApi* | [**v2_update_cluster_install_config**](docs/InstallerApi.md#v2_update_cluster_install_config) | **PATCH** /v2/clusters/{cluster_id}/install-config |
  *InstallerApi* | [**v2_update_cluster_logs_progress**](docs/InstallerApi.md#v2_update_cluster_logs_progress) | **PUT** /v2/clusters/{cluster_id}/logs-progress |
  *InstallerApi* | [**v2_update_cluster_ui_settings**](docs/InstallerApi.md#v2_update_cluster_ui_settings) | **PUT** /v2/clusters/{cluster_id}/ui-settings |
  *InstallerApi* | [**v2_update_host**](docs/InstallerApi.md#v2_update_host) | **PATCH** /v2/infra-envs/{infra_env_id}/hosts/{host_id} |
  *InstallerApi* | [**v2_update_host_ignition**](docs/InstallerApi.md#v2_update_host_ignition) | **PATCH** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/ignition |
  *InstallerApi* | [**v2_update_host_install_progress**](docs/InstallerApi.md#v2_update_host_install_progress) | **PUT** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/progress |
  *InstallerApi* | [**v2_update_host_installer_args**](docs/InstallerApi.md#v2_update_host_installer_args) | **PATCH** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/installer-args |
  *InstallerApi* | [**v2_update_host_logs_progress**](docs/InstallerApi.md#v2_update_host_logs_progress) | **PUT** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/logs-progress |
  *InstallerApi* | [**v2_upload_cluster_ingress_cert**](docs/InstallerApi.md#v2_upload_cluster_ingress_cert) | **POST** /v2/clusters/{cluster_id}/uploads/ingress-cert |
  *InstallerApi* | [**v2_upload_logs**](docs/InstallerApi.md#v2_upload_logs) | **POST** /v2/clusters/{cluster_id}/logs |
  *ManagedDomainsApi* | [**v2_list_managed_domains**](docs/ManagedDomainsApi.md#v2_list_managed_domains) | **GET** /v2/domains |
  *ManifestsApi* | [**v2_create_cluster_manifest**](docs/ManifestsApi.md#v2_create_cluster_manifest) | **POST** /v2/clusters/{cluster_id}/manifests |
  *ManifestsApi* | [**v2_delete_cluster_manifest**](docs/ManifestsApi.md#v2_delete_cluster_manifest) | **DELETE** /v2/clusters/{cluster_id}/manifests |
  *ManifestsApi* | [**v2_download_cluster_manifest**](docs/ManifestsApi.md#v2_download_cluster_manifest) | **GET** /v2/clusters/{cluster_id}/manifests/files |
  *ManifestsApi* | [**v2_list_cluster_manifests**](docs/ManifestsApi.md#v2_list_cluster_manifests) | **GET** /v2/clusters/{cluster_id}/manifests |
  *ManifestsApi* | [**v2_update_cluster_manifest**](docs/ManifestsApi.md#v2_update_cluster_manifest) | **PATCH** /v2/clusters/{cluster_id}/manifests |
  *OperatorsApi* | [**v2_list_of_cluster_operators**](docs/OperatorsApi.md#v2_list_of_cluster_operators) | **GET** /v2/clusters/{cluster_id}/monitored-operators |
  *OperatorsApi* | [**v2_list_operator_properties**](docs/OperatorsApi.md#v2_list_operator_properties) | **GET** /v2/supported-operators/{operator_name} |
  *OperatorsApi* | [**v2_list_supported_operators**](docs/OperatorsApi.md#v2_list_supported_operators) | **GET** /v2/supported-operators |
  *OperatorsApi* | [**v2_report_monitored_operator_status**](docs/OperatorsApi.md#v2_report_monitored_operator_status) | **PUT** /v2/clusters/{cluster_id}/monitored-operators |
  *VersionsApi* | [**v2_list_component_versions**](docs/VersionsApi.md#v2_list_component_versions) | **GET** /v2/component-versions |
  *VersionsApi* | [**v2_list_release_sources**](docs/VersionsApi.md#v2_list_release_sources) | **GET** /v2/release-sources |
  *VersionsApi* | [**v2_list_supported_openshift_versions**](docs/VersionsApi.md#v2_list_supported_openshift_versions) | **GET** /v2/openshift-versions |

   - [ApiVip](docs/ApiVip.md)
   - [ApiVipConnectivityAdditionalRequestHeader](docs/ApiVipConnectivityAdditionalRequestHeader.md)
   - [ApiVipConnectivityRequest](docs/ApiVipConnectivityRequest.md)
   - [ApiVipConnectivityResponse](docs/ApiVipConnectivityResponse.md)
   - [ArchitectureSupportLevelId](docs/ArchitectureSupportLevelId.md)
   - [BindHostParams](docs/BindHostParams.md)
   - [Boot](docs/Boot.md)
   - [Cluster](docs/Cluster.md)
   - [ClusterCreateParams](docs/ClusterCreateParams.md)
   - [ClusterDefaultConfig](docs/ClusterDefaultConfig.md)
   - [ClusterFinalizingProgress](docs/ClusterFinalizingProgress.md)
   - [ClusterHostRequirements](docs/ClusterHostRequirements.md)
   - [ClusterHostRequirementsDetails](docs/ClusterHostRequirementsDetails.md)
   - [ClusterHostRequirementsList](docs/ClusterHostRequirementsList.md)
   - [ClusterList](docs/ClusterList.md)
   - [ClusterNetwork](docs/ClusterNetwork.md)
   - [ClusterProgressInfo](docs/ClusterProgressInfo.md)
   - [ClusterValidationId](docs/ClusterValidationId.md)
   - [CompletionParams](docs/CompletionParams.md)
   - [ConnectivityCheckHost](docs/ConnectivityCheckHost.md)
   - [ConnectivityCheckNic](docs/ConnectivityCheckNic.md)
   - [ConnectivityCheckParams](docs/ConnectivityCheckParams.md)
   - [ConnectivityRemoteHost](docs/ConnectivityRemoteHost.md)
   - [ConnectivityReport](docs/ConnectivityReport.md)
   - [ContainerImageAvailability](docs/ContainerImageAvailability.md)
   - [ContainerImageAvailabilityRequest](docs/ContainerImageAvailabilityRequest.md)
   - [ContainerImageAvailabilityResponse](docs/ContainerImageAvailabilityResponse.md)
   - [ContainerImageAvailabilityResult](docs/ContainerImageAvailabilityResult.md)
   - [Cpu](docs/Cpu.md)
   - [CreateManifestParams](docs/CreateManifestParams.md)
   - [Credentials](docs/Credentials.md)
   - [DhcpAllocationRequest](docs/DhcpAllocationRequest.md)
   - [DhcpAllocationResponse](docs/DhcpAllocationResponse.md)
   - [Disk](docs/Disk.md)
   - [DiskConfigParams](docs/DiskConfigParams.md)
   - [DiskEncryption](docs/DiskEncryption.md)
   - [DiskInfo](docs/DiskInfo.md)
   - [DiskInstallationEligibility](docs/DiskInstallationEligibility.md)
   - [DiskRole](docs/DiskRole.md)
   - [DiskSkipFormattingParams](docs/DiskSkipFormattingParams.md)
   - [DiskSpeed](docs/DiskSpeed.md)
   - [DiskSpeedCheckRequest](docs/DiskSpeedCheckRequest.md)
   - [DiskSpeedCheckResponse](docs/DiskSpeedCheckResponse.md)
   - [DomainResolutionRequest](docs/DomainResolutionRequest.md)
   - [DomainResolutionResponse](docs/DomainResolutionResponse.md)
   - [DomainResolutionResponseResolutions](docs/DomainResolutionResponseResolutions.md)
   - [DownloadBootArtifactsRequest](docs/DownloadBootArtifactsRequest.md)
   - [DriveType](docs/DriveType.md)
   - [Error](docs/Error.md)
   - [Event](docs/Event.md)
   - [EventList](docs/EventList.md)
   - [FeatureSupportLevelId](docs/FeatureSupportLevelId.md)
   - [FinalizingStage](docs/FinalizingStage.md)
   - [FreeAddressesList](docs/FreeAddressesList.md)
   - [FreeAddressesRequest](docs/FreeAddressesRequest.md)
   - [FreeNetworkAddresses](docs/FreeNetworkAddresses.md)
   - [FreeNetworksAddresses](docs/FreeNetworksAddresses.md)
   - [Gpu](docs/Gpu.md)
   - [Host](docs/Host.md)
   - [HostCreateParams](docs/HostCreateParams.md)
   - [HostIgnitionParams](docs/HostIgnitionParams.md)
   - [HostList](docs/HostList.md)
   - [HostNetwork](docs/HostNetwork.md)
   - [HostProgress](docs/HostProgress.md)
   - [HostProgressInfo](docs/HostProgressInfo.md)
   - [HostRegistrationResponse](docs/HostRegistrationResponse.md)
   - [HostRegistrationResponseNextStepRunnerCommand](docs/HostRegistrationResponseNextStepRunnerCommand.md)
   - [HostRole](docs/HostRole.md)
   - [HostRoleUpdateParams](docs/HostRoleUpdateParams.md)
   - [HostStage](docs/HostStage.md)
   - [HostStaticNetworkConfig](docs/HostStaticNetworkConfig.md)
   - [HostTypeHardwareRequirements](docs/HostTypeHardwareRequirements.md)
   - [HostTypeHardwareRequirementsWrapper](docs/HostTypeHardwareRequirementsWrapper.md)
   - [HostUpdateParams](docs/HostUpdateParams.md)
   - [HostValidationId](docs/HostValidationId.md)
   - [IgnitionEndpoint](docs/IgnitionEndpoint.md)
   - [IgnitionEndpointHttpHeadersParams](docs/IgnitionEndpointHttpHeadersParams.md)
   - [IgnoredValidations](docs/IgnoredValidations.md)
   - [ImageCreateParams](docs/ImageCreateParams.md)
   - [ImageInfo](docs/ImageInfo.md)
   - [ImageType](docs/ImageType.md)
   - [ImportClusterParams](docs/ImportClusterParams.md)
   - [InfraEnv](docs/InfraEnv.md)
   - [InfraEnvCreateParams](docs/InfraEnvCreateParams.md)
   - [InfraEnvList](docs/InfraEnvList.md)
   - [InfraEnvUpdateParams](docs/InfraEnvUpdateParams.md)
   - [InfraError](docs/InfraError.md)
   - [IngressCertParams](docs/IngressCertParams.md)
   - [IngressVip](docs/IngressVip.md)
   - [InlineResponse200](docs/InlineResponse200.md)
   - [InlineResponse2001](docs/InlineResponse2001.md)
   - [InstallCmdRequest](docs/InstallCmdRequest.md)
   - [InstallerArgsParams](docs/InstallerArgsParams.md)
   - [Interface](docs/Interface.md)
   - [Inventory](docs/Inventory.md)
   - [IoPerf](docs/IoPerf.md)
   - [Ip](docs/Ip.md)
   - [Iscsi](docs/Iscsi.md)
   - [KernelArgument](docs/KernelArgument.md)
   - [KernelArguments](docs/KernelArguments.md)
   - [L2Connectivity](docs/L2Connectivity.md)
   - [L3Connectivity](docs/L3Connectivity.md)
   - [LastInstallationPreparation](docs/LastInstallationPreparation.md)
   - [ListManagedDomains](docs/ListManagedDomains.md)
   - [ListManifests](docs/ListManifests.md)
   - [ListVersions](docs/ListVersions.md)
   - [LogsGatherCmdRequest](docs/LogsGatherCmdRequest.md)
   - [LogsProgressParams](docs/LogsProgressParams.md)
   - [LogsState](docs/LogsState.md)
   - [LogsType](docs/LogsType.md)
   - [MacInterfaceMap](docs/MacInterfaceMap.md)
   - [MacInterfaceMapInner](docs/MacInterfaceMapInner.md)
   - [MachineNetwork](docs/MachineNetwork.md)
   - [ManagedDomain](docs/ManagedDomain.md)
   - [Manifest](docs/Manifest.md)
   - [Memory](docs/Memory.md)
   - [MemoryMethod](docs/MemoryMethod.md)
   - [MonitoredOperator](docs/MonitoredOperator.md)
   - [MonitoredOperatorsList](docs/MonitoredOperatorsList.md)
   - [MtuReport](docs/MtuReport.md)
   - [NextStepCmdRequest](docs/NextStepCmdRequest.md)
   - [NodeLabelParams](docs/NodeLabelParams.md)
   - [NtpSource](docs/NtpSource.md)
   - [NtpSynchronizationRequest](docs/NtpSynchronizationRequest.md)
   - [NtpSynchronizationResponse](docs/NtpSynchronizationResponse.md)
   - [OpenshiftVersion](docs/OpenshiftVersion.md)
   - [OpenshiftVersions](docs/OpenshiftVersions.md)
   - [OperatorCreateParams](docs/OperatorCreateParams.md)
   - [OperatorHardwareRequirements](docs/OperatorHardwareRequirements.md)
   - [OperatorHostRequirements](docs/OperatorHostRequirements.md)
   - [OperatorMonitorReport](docs/OperatorMonitorReport.md)
   - [OperatorProperties](docs/OperatorProperties.md)
   - [OperatorProperty](docs/OperatorProperty.md)
   - [OperatorStatus](docs/OperatorStatus.md)
   - [OperatorType](docs/OperatorType.md)
   - [OsImage](docs/OsImage.md)
   - [OsImages](docs/OsImages.md)
   - [Platform](docs/Platform.md)
   - [PlatformExternal](docs/PlatformExternal.md)
   - [PlatformType](docs/PlatformType.md)
   - [PreflightHardwareRequirements](docs/PreflightHardwareRequirements.md)
   - [PresignedUrl](docs/PresignedUrl.md)
   - [Proxy](docs/Proxy.md)
   - [RebootForReclaimRequest](docs/RebootForReclaimRequest.md)
   - [ReleaseChannel](docs/ReleaseChannel.md)
   - [ReleaseImage](docs/ReleaseImage.md)
   - [ReleaseImages](docs/ReleaseImages.md)
   - [ReleaseSource](docs/ReleaseSource.md)
   - [ReleaseSources](docs/ReleaseSources.md)
   - [Route](docs/Route.md)
   - [ServiceNetwork](docs/ServiceNetwork.md)
   - [SourceState](docs/SourceState.md)
   - [Step](docs/Step.md)
   - [StepReply](docs/StepReply.md)
   - [StepType](docs/StepType.md)
   - [Steps](docs/Steps.md)
   - [StepsReply](docs/StepsReply.md)
   - [Subnet](docs/Subnet.md)
   - [SupportLevel](docs/SupportLevel.md)
   - [SupportLevels](docs/SupportLevels.md)
   - [SystemVendor](docs/SystemVendor.md)
   - [TangConnectivityRequest](docs/TangConnectivityRequest.md)
   - [TangConnectivityResponse](docs/TangConnectivityResponse.md)
   - [TangConnectivityResponseSignatures](docs/TangConnectivityResponseSignatures.md)
   - [TangConnectivityResponseTangServerResponse](docs/TangConnectivityResponseTangServerResponse.md)
   - [UpdateManifestParams](docs/UpdateManifestParams.md)
   - [UpgradeAgentRequest](docs/UpgradeAgentRequest.md)
   - [UpgradeAgentResponse](docs/UpgradeAgentResponse.md)
   - [UpgradeAgentResult](docs/UpgradeAgentResult.md)
   - [UpgradeChannel](docs/UpgradeChannel.md)
   - [Usage](docs/Usage.md)
   - [V2ClusterUpdateParams](docs/V2ClusterUpdateParams.md)
   - [VerifiedVip](docs/VerifiedVip.md)
   - [VerifyVip](docs/VerifyVip.md)
   - [VerifyVipsRequest](docs/VerifyVipsRequest.md)
   - [VerifyVipsResponse](docs/VerifyVipsResponse.md)
   - [VersionedHostRequirements](docs/VersionedHostRequirements.md)
   - [Versions](docs/Versions.md)
   - [VipType](docs/VipType.md)
   - [VipVerification](docs/VipVerification.md)


  - **Type**: API key
  - **API key parameter name**: X-Secret-Key
  - **Location**: HTTP header

  - **Type**: API key
  - **API key parameter name**: Image-Token
  - **Location**: HTTP header

  - **Type**: API key
  - **API key parameter name**: image_token
  - **Location**: URL query string

  - **Type**: API key
  - **API key parameter name**: api_key
  - **Location**: URL query string

  - **Type**: API key
  - **API key parameter name**: Authorization
  - **Location**: HTTP header

  - **Type**: API key
  - **API key parameter name**: Watcher-Authorization
  - **Location**: HTTP header


pkgId: b65f1236faf49c738a65c64fd4642a19ed00949d536320f9285699d0969f5afb
name: python-assisted-service-client
arch: src
version: 2.36.0.post20
epoch: 0
release: 1
summary: AssistedInstall
url: https://github.com/openshift/assisted-service
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assisted-service-client-2.36.0.post20-1.src.rpm
checksum_type: sha256
description:
  *EventsApi* | [**v2_list_events**](docs/EventsApi.md#v2_list_events) | **GET** /v2/events |
  *EventsApi* | [**v2_trigger_event**](docs/EventsApi.md#v2_trigger_event) | **POST** /v2/events |
  *InstallerApi* | [**bind_host**](docs/InstallerApi.md#bind_host) | **POST** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/actions/bind |
  *InstallerApi* | [**deregister_infra_env**](docs/InstallerApi.md#deregister_infra_env) | **DELETE** /v2/infra-envs/{infra_env_id} |
  *InstallerApi* | [**download_minimal_initrd**](docs/InstallerApi.md#download_minimal_initrd) | **GET** /v2/infra-envs/{infra_env_id}/downloads/minimal-initrd |
  *InstallerApi* | [**get_cluster_supported_platforms**](docs/InstallerApi.md#get_cluster_supported_platforms) | **GET** /v2/clusters/{cluster_id}/supported-platforms |
  *InstallerApi* | [**get_infra_env**](docs/InstallerApi.md#get_infra_env) | **GET** /v2/infra-envs/{infra_env_id} |
  *InstallerApi* | [**get_infra_env_download_url**](docs/InstallerApi.md#get_infra_env_download_url) | **GET** /v2/infra-envs/{infra_env_id}/downloads/image-url |
  *InstallerApi* | [**get_infra_env_presigned_file_url**](docs/InstallerApi.md#get_infra_env_presigned_file_url) | **GET** /v2/infra-envs/{infra_env_id}/downloads/files-presigned |
  *InstallerApi* | [**get_supported_architectures**](docs/InstallerApi.md#get_supported_architectures) | **GET** /v2/support-levels/architectures |
  *InstallerApi* | [**get_supported_features**](docs/InstallerApi.md#get_supported_features) | **GET** /v2/support-levels/features |
  *InstallerApi* | [**list_cluster_hosts**](docs/InstallerApi.md#list_cluster_hosts) | **GET** /v2/clusters/{cluster_id}/hosts |
  *InstallerApi* | [**list_infra_envs**](docs/InstallerApi.md#list_infra_envs) | **GET** /v2/infra-envs |
  *InstallerApi* | [**regenerate_infra_env_signing_key**](docs/InstallerApi.md#regenerate_infra_env_signing_key) | **POST** /v2/infra-envs/{infra_env_id}/regenerate-signing-key |
  *InstallerApi* | [**register_infra_env**](docs/InstallerApi.md#register_infra_env) | **POST** /v2/infra-envs |
  *InstallerApi* | [**transform_cluster_to_adding_hosts**](docs/InstallerApi.md#transform_cluster_to_adding_hosts) | **POST** /v2/clusters/{cluster_id}/actions/allow-add-hosts |
  *InstallerApi* | [**transform_cluster_to_day2**](docs/InstallerApi.md#transform_cluster_to_day2) | **POST** /v2/clusters/{cluster_id}/actions/allow-add-workers |
  *InstallerApi* | [**unbind_host**](docs/InstallerApi.md#unbind_host) | **POST** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/actions/unbind |
  *InstallerApi* | [**update_infra_env**](docs/InstallerApi.md#update_infra_env) | **PATCH** /v2/infra-envs/{infra_env_id} |
  *InstallerApi* | [**v2_cancel_installation**](docs/InstallerApi.md#v2_cancel_installation) | **POST** /v2/clusters/{cluster_id}/actions/cancel |
  *InstallerApi* | [**v2_complete_installation**](docs/InstallerApi.md#v2_complete_installation) | **POST** /v2/clusters/{cluster_id}/actions/complete-installation |
  *InstallerApi* | [**v2_deregister_cluster**](docs/InstallerApi.md#v2_deregister_cluster) | **DELETE** /v2/clusters/{cluster_id} |
  *InstallerApi* | [**v2_deregister_host**](docs/InstallerApi.md#v2_deregister_host) | **DELETE** /v2/infra-envs/{infra_env_id}/hosts/{host_id} |
  *InstallerApi* | [**v2_download_cluster_credentials**](docs/InstallerApi.md#v2_download_cluster_credentials) | **GET** /v2/clusters/{cluster_id}/downloads/credentials |
  *InstallerApi* | [**v2_download_cluster_files**](docs/InstallerApi.md#v2_download_cluster_files) | **GET** /v2/clusters/{cluster_id}/downloads/files |
  *InstallerApi* | [**v2_download_cluster_logs**](docs/InstallerApi.md#v2_download_cluster_logs) | **GET** /v2/clusters/{cluster_id}/logs |
  *InstallerApi* | [**v2_download_host_ignition**](docs/InstallerApi.md#v2_download_host_ignition) | **GET** /v2/infra-env/{infra_env_id}/hosts/{host_id}/downloads/ignition |
  *InstallerApi* | [**v2_download_infra_env_files**](docs/InstallerApi.md#v2_download_infra_env_files) | **GET** /v2/infra-envs/{infra_env_id}/downloads/files |
  *InstallerApi* | [**v2_get_cluster**](docs/InstallerApi.md#v2_get_cluster) | **GET** /v2/clusters/{cluster_id} |
  *InstallerApi* | [**v2_get_cluster_default_config**](docs/InstallerApi.md#v2_get_cluster_default_config) | **GET** /v2/clusters/default-config |
  *InstallerApi* | [**v2_get_cluster_install_config**](docs/InstallerApi.md#v2_get_cluster_install_config) | **GET** /v2/clusters/{cluster_id}/install-config |
  *InstallerApi* | [**v2_get_cluster_ui_settings**](docs/InstallerApi.md#v2_get_cluster_ui_settings) | **GET** /v2/clusters/{cluster_id}/ui-settings |
  *InstallerApi* | [**v2_get_credentials**](docs/InstallerApi.md#v2_get_credentials) | **GET** /v2/clusters/{cluster_id}/credentials |
  *InstallerApi* | [**v2_get_host**](docs/InstallerApi.md#v2_get_host) | **GET** /v2/infra-envs/{infra_env_id}/hosts/{host_id} |
  *InstallerApi* | [**v2_get_host_ignition**](docs/InstallerApi.md#v2_get_host_ignition) | **GET** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/ignition |
  *InstallerApi* | [**v2_get_ignored_validations**](docs/InstallerApi.md#v2_get_ignored_validations) | **GET** /v2/clusters/{cluster_id}/ignored-validations |
  *InstallerApi* | [**v2_get_next_steps**](docs/InstallerApi.md#v2_get_next_steps) | **GET** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/instructions |
  *InstallerApi* | [**v2_get_preflight_requirements**](docs/InstallerApi.md#v2_get_preflight_requirements) | **GET** /v2/clusters/{cluster_id}/preflight-requirements |
  *InstallerApi* | [**v2_get_presigned_for_cluster_credentials**](docs/InstallerApi.md#v2_get_presigned_for_cluster_credentials) | **GET** /v2/clusters/{cluster_id}/downloads/credentials-presigned |
  *InstallerApi* | [**v2_get_presigned_for_cluster_files**](docs/InstallerApi.md#v2_get_presigned_for_cluster_files) | **GET** /v2/clusters/{cluster_id}/downloads/files-presigned |
  *InstallerApi* | [**v2_import_cluster**](docs/InstallerApi.md#v2_import_cluster) | **POST** /v2/clusters/import |
  *InstallerApi* | [**v2_install_cluster**](docs/InstallerApi.md#v2_install_cluster) | **POST** /v2/clusters/{cluster_id}/actions/install |
  *InstallerApi* | [**v2_install_host**](docs/InstallerApi.md#v2_install_host) | **POST** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/actions/install |
  *InstallerApi* | [**v2_list_clusters**](docs/InstallerApi.md#v2_list_clusters) | **GET** /v2/clusters |
  *InstallerApi* | [**v2_list_hosts**](docs/InstallerApi.md#v2_list_hosts) | **GET** /v2/infra-envs/{infra_env_id}/hosts |
  *InstallerApi* | [**v2_list_of_cluster_operators**](docs/InstallerApi.md#v2_list_of_cluster_operators) | **GET** /v2/clusters/{cluster_id}/monitored-operators |
  *InstallerApi* | [**v2_post_step_reply**](docs/InstallerApi.md#v2_post_step_reply) | **POST** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/instructions |
  *InstallerApi* | [**v2_register_cluster**](docs/InstallerApi.md#v2_register_cluster) | **POST** /v2/clusters |
  *InstallerApi* | [**v2_register_host**](docs/InstallerApi.md#v2_register_host) | **POST** /v2/infra-envs/{infra_env_id}/hosts |
  *InstallerApi* | [**v2_report_monitored_operator_status**](docs/InstallerApi.md#v2_report_monitored_operator_status) | **PUT** /v2/clusters/{cluster_id}/monitored-operators |
  *InstallerApi* | [**v2_reset_cluster**](docs/InstallerApi.md#v2_reset_cluster) | **POST** /v2/clusters/{cluster_id}/actions/reset |
  *InstallerApi* | [**v2_reset_host**](docs/InstallerApi.md#v2_reset_host) | **POST** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/actions/reset |
  *InstallerApi* | [**v2_reset_host_validation**](docs/InstallerApi.md#v2_reset_host_validation) | **PATCH** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/actions/reset-validation/{validation_id} | Reset failed host validation.
  *InstallerApi* | [**v2_set_ignored_validations**](docs/InstallerApi.md#v2_set_ignored_validations) | **PUT** /v2/clusters/{cluster_id}/ignored-validations |
  *InstallerApi* | [**v2_update_cluster**](docs/InstallerApi.md#v2_update_cluster) | **PATCH** /v2/clusters/{cluster_id} |
  *InstallerApi* | [**v2_update_cluster_finalizing_progress**](docs/InstallerApi.md#v2_update_cluster_finalizing_progress) | **PUT** /v2/clusters/{cluster_id}/progress |
  *InstallerApi* | [**v2_update_cluster_install_config**](docs/InstallerApi.md#v2_update_cluster_install_config) | **PATCH** /v2/clusters/{cluster_id}/install-config |
  *InstallerApi* | [**v2_update_cluster_logs_progress**](docs/InstallerApi.md#v2_update_cluster_logs_progress) | **PUT** /v2/clusters/{cluster_id}/logs-progress |
  *InstallerApi* | [**v2_update_cluster_ui_settings**](docs/InstallerApi.md#v2_update_cluster_ui_settings) | **PUT** /v2/clusters/{cluster_id}/ui-settings |
  *InstallerApi* | [**v2_update_host**](docs/InstallerApi.md#v2_update_host) | **PATCH** /v2/infra-envs/{infra_env_id}/hosts/{host_id} |
  *InstallerApi* | [**v2_update_host_ignition**](docs/InstallerApi.md#v2_update_host_ignition) | **PATCH** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/ignition |
  *InstallerApi* | [**v2_update_host_install_progress**](docs/InstallerApi.md#v2_update_host_install_progress) | **PUT** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/progress |
  *InstallerApi* | [**v2_update_host_installer_args**](docs/InstallerApi.md#v2_update_host_installer_args) | **PATCH** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/installer-args |
  *InstallerApi* | [**v2_update_host_logs_progress**](docs/InstallerApi.md#v2_update_host_logs_progress) | **PUT** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/logs-progress |
  *InstallerApi* | [**v2_upload_cluster_ingress_cert**](docs/InstallerApi.md#v2_upload_cluster_ingress_cert) | **POST** /v2/clusters/{cluster_id}/uploads/ingress-cert |
  *InstallerApi* | [**v2_upload_logs**](docs/InstallerApi.md#v2_upload_logs) | **POST** /v2/clusters/{cluster_id}/logs |
  *ManagedDomainsApi* | [**v2_list_managed_domains**](docs/ManagedDomainsApi.md#v2_list_managed_domains) | **GET** /v2/domains |
  *ManifestsApi* | [**v2_create_cluster_manifest**](docs/ManifestsApi.md#v2_create_cluster_manifest) | **POST** /v2/clusters/{cluster_id}/manifests |
  *ManifestsApi* | [**v2_delete_cluster_manifest**](docs/ManifestsApi.md#v2_delete_cluster_manifest) | **DELETE** /v2/clusters/{cluster_id}/manifests |
  *ManifestsApi* | [**v2_download_cluster_manifest**](docs/ManifestsApi.md#v2_download_cluster_manifest) | **GET** /v2/clusters/{cluster_id}/manifests/files |
  *ManifestsApi* | [**v2_list_cluster_manifests**](docs/ManifestsApi.md#v2_list_cluster_manifests) | **GET** /v2/clusters/{cluster_id}/manifests |
  *ManifestsApi* | [**v2_update_cluster_manifest**](docs/ManifestsApi.md#v2_update_cluster_manifest) | **PATCH** /v2/clusters/{cluster_id}/manifests |
  *OperatorsApi* | [**v2_list_of_cluster_operators**](docs/OperatorsApi.md#v2_list_of_cluster_operators) | **GET** /v2/clusters/{cluster_id}/monitored-operators |
  *OperatorsApi* | [**v2_list_operator_properties**](docs/OperatorsApi.md#v2_list_operator_properties) | **GET** /v2/supported-operators/{operator_name} |
  *OperatorsApi* | [**v2_list_supported_operators**](docs/OperatorsApi.md#v2_list_supported_operators) | **GET** /v2/supported-operators |
  *OperatorsApi* | [**v2_report_monitored_operator_status**](docs/OperatorsApi.md#v2_report_monitored_operator_status) | **PUT** /v2/clusters/{cluster_id}/monitored-operators |
  *VersionsApi* | [**v2_list_component_versions**](docs/VersionsApi.md#v2_list_component_versions) | **GET** /v2/component-versions |
  *VersionsApi* | [**v2_list_release_sources**](docs/VersionsApi.md#v2_list_release_sources) | **GET** /v2/release-sources |
  *VersionsApi* | [**v2_list_supported_openshift_versions**](docs/VersionsApi.md#v2_list_supported_openshift_versions) | **GET** /v2/openshift-versions |

   - [ApiVip](docs/ApiVip.md)
   - [ApiVipConnectivityAdditionalRequestHeader](docs/ApiVipConnectivityAdditionalRequestHeader.md)
   - [ApiVipConnectivityRequest](docs/ApiVipConnectivityRequest.md)
   - [ApiVipConnectivityResponse](docs/ApiVipConnectivityResponse.md)
   - [ArchitectureSupportLevelId](docs/ArchitectureSupportLevelId.md)
   - [BindHostParams](docs/BindHostParams.md)
   - [Boot](docs/Boot.md)
   - [Cluster](docs/Cluster.md)
   - [ClusterCreateParams](docs/ClusterCreateParams.md)
   - [ClusterDefaultConfig](docs/ClusterDefaultConfig.md)
   - [ClusterFinalizingProgress](docs/ClusterFinalizingProgress.md)
   - [ClusterHostRequirements](docs/ClusterHostRequirements.md)
   - [ClusterHostRequirementsDetails](docs/ClusterHostRequirementsDetails.md)
   - [ClusterHostRequirementsList](docs/ClusterHostRequirementsList.md)
   - [ClusterList](docs/ClusterList.md)
   - [ClusterNetwork](docs/ClusterNetwork.md)
   - [ClusterProgressInfo](docs/ClusterProgressInfo.md)
   - [ClusterValidationId](docs/ClusterValidationId.md)
   - [CompletionParams](docs/CompletionParams.md)
   - [ConnectivityCheckHost](docs/ConnectivityCheckHost.md)
   - [ConnectivityCheckNic](docs/ConnectivityCheckNic.md)
   - [ConnectivityCheckParams](docs/ConnectivityCheckParams.md)
   - [ConnectivityRemoteHost](docs/ConnectivityRemoteHost.md)
   - [ConnectivityReport](docs/ConnectivityReport.md)
   - [ContainerImageAvailability](docs/ContainerImageAvailability.md)
   - [ContainerImageAvailabilityRequest](docs/ContainerImageAvailabilityRequest.md)
   - [ContainerImageAvailabilityResponse](docs/ContainerImageAvailabilityResponse.md)
   - [ContainerImageAvailabilityResult](docs/ContainerImageAvailabilityResult.md)
   - [Cpu](docs/Cpu.md)
   - [CreateManifestParams](docs/CreateManifestParams.md)
   - [Credentials](docs/Credentials.md)
   - [DhcpAllocationRequest](docs/DhcpAllocationRequest.md)
   - [DhcpAllocationResponse](docs/DhcpAllocationResponse.md)
   - [Disk](docs/Disk.md)
   - [DiskConfigParams](docs/DiskConfigParams.md)
   - [DiskEncryption](docs/DiskEncryption.md)
   - [DiskInfo](docs/DiskInfo.md)
   - [DiskInstallationEligibility](docs/DiskInstallationEligibility.md)
   - [DiskRole](docs/DiskRole.md)
   - [DiskSkipFormattingParams](docs/DiskSkipFormattingParams.md)
   - [DiskSpeed](docs/DiskSpeed.md)
   - [DiskSpeedCheckRequest](docs/DiskSpeedCheckRequest.md)
   - [DiskSpeedCheckResponse](docs/DiskSpeedCheckResponse.md)
   - [DomainResolutionRequest](docs/DomainResolutionRequest.md)
   - [DomainResolutionResponse](docs/DomainResolutionResponse.md)
   - [DomainResolutionResponseResolutions](docs/DomainResolutionResponseResolutions.md)
   - [DownloadBootArtifactsRequest](docs/DownloadBootArtifactsRequest.md)
   - [DriveType](docs/DriveType.md)
   - [Error](docs/Error.md)
   - [Event](docs/Event.md)
   - [EventList](docs/EventList.md)
   - [FeatureSupportLevelId](docs/FeatureSupportLevelId.md)
   - [FinalizingStage](docs/FinalizingStage.md)
   - [FreeAddressesList](docs/FreeAddressesList.md)
   - [FreeAddressesRequest](docs/FreeAddressesRequest.md)
   - [FreeNetworkAddresses](docs/FreeNetworkAddresses.md)
   - [FreeNetworksAddresses](docs/FreeNetworksAddresses.md)
   - [Gpu](docs/Gpu.md)
   - [Host](docs/Host.md)
   - [HostCreateParams](docs/HostCreateParams.md)
   - [HostIgnitionParams](docs/HostIgnitionParams.md)
   - [HostList](docs/HostList.md)
   - [HostNetwork](docs/HostNetwork.md)
   - [HostProgress](docs/HostProgress.md)
   - [HostProgressInfo](docs/HostProgressInfo.md)
   - [HostRegistrationResponse](docs/HostRegistrationResponse.md)
   - [HostRegistrationResponseNextStepRunnerCommand](docs/HostRegistrationResponseNextStepRunnerCommand.md)
   - [HostRole](docs/HostRole.md)
   - [HostRoleUpdateParams](docs/HostRoleUpdateParams.md)
   - [HostStage](docs/HostStage.md)
   - [HostStaticNetworkConfig](docs/HostStaticNetworkConfig.md)
   - [HostTypeHardwareRequirements](docs/HostTypeHardwareRequirements.md)
   - [HostTypeHardwareRequirementsWrapper](docs/HostTypeHardwareRequirementsWrapper.md)
   - [HostUpdateParams](docs/HostUpdateParams.md)
   - [HostValidationId](docs/HostValidationId.md)
   - [IgnitionEndpoint](docs/IgnitionEndpoint.md)
   - [IgnitionEndpointHttpHeadersParams](docs/IgnitionEndpointHttpHeadersParams.md)
   - [IgnoredValidations](docs/IgnoredValidations.md)
   - [ImageCreateParams](docs/ImageCreateParams.md)
   - [ImageInfo](docs/ImageInfo.md)
   - [ImageType](docs/ImageType.md)
   - [ImportClusterParams](docs/ImportClusterParams.md)
   - [InfraEnv](docs/InfraEnv.md)
   - [InfraEnvCreateParams](docs/InfraEnvCreateParams.md)
   - [InfraEnvList](docs/InfraEnvList.md)
   - [InfraEnvUpdateParams](docs/InfraEnvUpdateParams.md)
   - [InfraError](docs/InfraError.md)
   - [IngressCertParams](docs/IngressCertParams.md)
   - [IngressVip](docs/IngressVip.md)
   - [InlineResponse200](docs/InlineResponse200.md)
   - [InlineResponse2001](docs/InlineResponse2001.md)
   - [InstallCmdRequest](docs/InstallCmdRequest.md)
   - [InstallerArgsParams](docs/InstallerArgsParams.md)
   - [Interface](docs/Interface.md)
   - [Inventory](docs/Inventory.md)
   - [IoPerf](docs/IoPerf.md)
   - [Ip](docs/Ip.md)
   - [Iscsi](docs/Iscsi.md)
   - [KernelArgument](docs/KernelArgument.md)
   - [KernelArguments](docs/KernelArguments.md)
   - [L2Connectivity](docs/L2Connectivity.md)
   - [L3Connectivity](docs/L3Connectivity.md)
   - [LastInstallationPreparation](docs/LastInstallationPreparation.md)
   - [ListManagedDomains](docs/ListManagedDomains.md)
   - [ListManifests](docs/ListManifests.md)
   - [ListVersions](docs/ListVersions.md)
   - [LogsGatherCmdRequest](docs/LogsGatherCmdRequest.md)
   - [LogsProgressParams](docs/LogsProgressParams.md)
   - [LogsState](docs/LogsState.md)
   - [LogsType](docs/LogsType.md)
   - [MacInterfaceMap](docs/MacInterfaceMap.md)
   - [MacInterfaceMapInner](docs/MacInterfaceMapInner.md)
   - [MachineNetwork](docs/MachineNetwork.md)
   - [ManagedDomain](docs/ManagedDomain.md)
   - [Manifest](docs/Manifest.md)
   - [Memory](docs/Memory.md)
   - [MemoryMethod](docs/MemoryMethod.md)
   - [MonitoredOperator](docs/MonitoredOperator.md)
   - [MonitoredOperatorsList](docs/MonitoredOperatorsList.md)
   - [MtuReport](docs/MtuReport.md)
   - [NextStepCmdRequest](docs/NextStepCmdRequest.md)
   - [NodeLabelParams](docs/NodeLabelParams.md)
   - [NtpSource](docs/NtpSource.md)
   - [NtpSynchronizationRequest](docs/NtpSynchronizationRequest.md)
   - [NtpSynchronizationResponse](docs/NtpSynchronizationResponse.md)
   - [OpenshiftVersion](docs/OpenshiftVersion.md)
   - [OpenshiftVersions](docs/OpenshiftVersions.md)
   - [OperatorCreateParams](docs/OperatorCreateParams.md)
   - [OperatorHardwareRequirements](docs/OperatorHardwareRequirements.md)
   - [OperatorHostRequirements](docs/OperatorHostRequirements.md)
   - [OperatorMonitorReport](docs/OperatorMonitorReport.md)
   - [OperatorProperties](docs/OperatorProperties.md)
   - [OperatorProperty](docs/OperatorProperty.md)
   - [OperatorStatus](docs/OperatorStatus.md)
   - [OperatorType](docs/OperatorType.md)
   - [OsImage](docs/OsImage.md)
   - [OsImages](docs/OsImages.md)
   - [Platform](docs/Platform.md)
   - [PlatformExternal](docs/PlatformExternal.md)
   - [PlatformType](docs/PlatformType.md)
   - [PreflightHardwareRequirements](docs/PreflightHardwareRequirements.md)
   - [PresignedUrl](docs/PresignedUrl.md)
   - [Proxy](docs/Proxy.md)
   - [RebootForReclaimRequest](docs/RebootForReclaimRequest.md)
   - [ReleaseChannel](docs/ReleaseChannel.md)
   - [ReleaseImage](docs/ReleaseImage.md)
   - [ReleaseImages](docs/ReleaseImages.md)
   - [ReleaseSource](docs/ReleaseSource.md)
   - [ReleaseSources](docs/ReleaseSources.md)
   - [Route](docs/Route.md)
   - [SecureBootState](docs/SecureBootState.md)
   - [ServiceNetwork](docs/ServiceNetwork.md)
   - [SourceState](docs/SourceState.md)
   - [Step](docs/Step.md)
   - [StepReply](docs/StepReply.md)
   - [StepType](docs/StepType.md)
   - [Steps](docs/Steps.md)
   - [StepsReply](docs/StepsReply.md)
   - [Subnet](docs/Subnet.md)
   - [SupportLevel](docs/SupportLevel.md)
   - [SupportLevels](docs/SupportLevels.md)
   - [SystemVendor](docs/SystemVendor.md)
   - [TangConnectivityRequest](docs/TangConnectivityRequest.md)
   - [TangConnectivityResponse](docs/TangConnectivityResponse.md)
   - [TangConnectivityResponseSignatures](docs/TangConnectivityResponseSignatures.md)
   - [TangConnectivityResponseTangServerResponse](docs/TangConnectivityResponseTangServerResponse.md)
   - [UpdateManifestParams](docs/UpdateManifestParams.md)
   - [UpgradeAgentRequest](docs/UpgradeAgentRequest.md)
   - [UpgradeAgentResponse](docs/UpgradeAgentResponse.md)
   - [UpgradeAgentResult](docs/UpgradeAgentResult.md)
   - [UpgradeChannel](docs/UpgradeChannel.md)
   - [Usage](docs/Usage.md)
   - [V2ClusterUpdateParams](docs/V2ClusterUpdateParams.md)
   - [VerifiedVip](docs/VerifiedVip.md)
   - [VerifyVip](docs/VerifyVip.md)
   - [VerifyVipsRequest](docs/VerifyVipsRequest.md)
   - [VerifyVipsResponse](docs/VerifyVipsResponse.md)
   - [VersionedHostRequirements](docs/VersionedHostRequirements.md)
   - [Versions](docs/Versions.md)
   - [VipType](docs/VipType.md)
   - [VipVerification](docs/VipVerification.md)


  - **Type**: API key
  - **API key parameter name**: X-Secret-Key
  - **Location**: HTTP header

  - **Type**: API key
  - **API key parameter name**: Image-Token
  - **Location**: HTTP header

  - **Type**: API key
  - **API key parameter name**: image_token
  - **Location**: URL query string

  - **Type**: API key
  - **API key parameter name**: api_key
  - **Location**: URL query string

  - **Type**: API key
  - **API key parameter name**: Authorization
  - **Location**: HTTP header

  - **Type**: API key
  - **API key parameter name**: Watcher-Authorization
  - **Location**: HTTP header


pkgId: 7868962f57f1e45c681472d6f35b58639ebeb847ee42d5c77e303052ea2a67f6
name: python-assisted-service-client
arch: src
version: 2.36.0.post3
epoch: 0
release: 1
summary: AssistedInstall
url: https://github.com/openshift/assisted-service
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assisted-service-client-2.36.0.post3-1.src.rpm
checksum_type: sha256
description:
  *EventsApi* | [**v2_list_events**](docs/EventsApi.md#v2_list_events) | **GET** /v2/events |
  *EventsApi* | [**v2_trigger_event**](docs/EventsApi.md#v2_trigger_event) | **POST** /v2/events |
  *InstallerApi* | [**bind_host**](docs/InstallerApi.md#bind_host) | **POST** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/actions/bind |
  *InstallerApi* | [**deregister_infra_env**](docs/InstallerApi.md#deregister_infra_env) | **DELETE** /v2/infra-envs/{infra_env_id} |
  *InstallerApi* | [**download_minimal_initrd**](docs/InstallerApi.md#download_minimal_initrd) | **GET** /v2/infra-envs/{infra_env_id}/downloads/minimal-initrd |
  *InstallerApi* | [**get_cluster_supported_platforms**](docs/InstallerApi.md#get_cluster_supported_platforms) | **GET** /v2/clusters/{cluster_id}/supported-platforms |
  *InstallerApi* | [**get_infra_env**](docs/InstallerApi.md#get_infra_env) | **GET** /v2/infra-envs/{infra_env_id} |
  *InstallerApi* | [**get_infra_env_download_url**](docs/InstallerApi.md#get_infra_env_download_url) | **GET** /v2/infra-envs/{infra_env_id}/downloads/image-url |
  *InstallerApi* | [**get_infra_env_presigned_file_url**](docs/InstallerApi.md#get_infra_env_presigned_file_url) | **GET** /v2/infra-envs/{infra_env_id}/downloads/files-presigned |
  *InstallerApi* | [**get_supported_architectures**](docs/InstallerApi.md#get_supported_architectures) | **GET** /v2/support-levels/architectures |
  *InstallerApi* | [**get_supported_features**](docs/InstallerApi.md#get_supported_features) | **GET** /v2/support-levels/features |
  *InstallerApi* | [**list_cluster_hosts**](docs/InstallerApi.md#list_cluster_hosts) | **GET** /v2/clusters/{cluster_id}/hosts |
  *InstallerApi* | [**list_infra_envs**](docs/InstallerApi.md#list_infra_envs) | **GET** /v2/infra-envs |
  *InstallerApi* | [**regenerate_infra_env_signing_key**](docs/InstallerApi.md#regenerate_infra_env_signing_key) | **POST** /v2/infra-envs/{infra_env_id}/regenerate-signing-key |
  *InstallerApi* | [**register_infra_env**](docs/InstallerApi.md#register_infra_env) | **POST** /v2/infra-envs |
  *InstallerApi* | [**transform_cluster_to_adding_hosts**](docs/InstallerApi.md#transform_cluster_to_adding_hosts) | **POST** /v2/clusters/{cluster_id}/actions/allow-add-hosts |
  *InstallerApi* | [**transform_cluster_to_day2**](docs/InstallerApi.md#transform_cluster_to_day2) | **POST** /v2/clusters/{cluster_id}/actions/allow-add-workers |
  *InstallerApi* | [**unbind_host**](docs/InstallerApi.md#unbind_host) | **POST** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/actions/unbind |
  *InstallerApi* | [**update_infra_env**](docs/InstallerApi.md#update_infra_env) | **PATCH** /v2/infra-envs/{infra_env_id} |
  *InstallerApi* | [**v2_cancel_installation**](docs/InstallerApi.md#v2_cancel_installation) | **POST** /v2/clusters/{cluster_id}/actions/cancel |
  *InstallerApi* | [**v2_complete_installation**](docs/InstallerApi.md#v2_complete_installation) | **POST** /v2/clusters/{cluster_id}/actions/complete-installation |
  *InstallerApi* | [**v2_deregister_cluster**](docs/InstallerApi.md#v2_deregister_cluster) | **DELETE** /v2/clusters/{cluster_id} |
  *InstallerApi* | [**v2_deregister_host**](docs/InstallerApi.md#v2_deregister_host) | **DELETE** /v2/infra-envs/{infra_env_id}/hosts/{host_id} |
  *InstallerApi* | [**v2_download_cluster_credentials**](docs/InstallerApi.md#v2_download_cluster_credentials) | **GET** /v2/clusters/{cluster_id}/downloads/credentials |
  *InstallerApi* | [**v2_download_cluster_files**](docs/InstallerApi.md#v2_download_cluster_files) | **GET** /v2/clusters/{cluster_id}/downloads/files |
  *InstallerApi* | [**v2_download_cluster_logs**](docs/InstallerApi.md#v2_download_cluster_logs) | **GET** /v2/clusters/{cluster_id}/logs |
  *InstallerApi* | [**v2_download_host_ignition**](docs/InstallerApi.md#v2_download_host_ignition) | **GET** /v2/infra-env/{infra_env_id}/hosts/{host_id}/downloads/ignition |
  *InstallerApi* | [**v2_download_infra_env_files**](docs/InstallerApi.md#v2_download_infra_env_files) | **GET** /v2/infra-envs/{infra_env_id}/downloads/files |
  *InstallerApi* | [**v2_get_cluster**](docs/InstallerApi.md#v2_get_cluster) | **GET** /v2/clusters/{cluster_id} |
  *InstallerApi* | [**v2_get_cluster_default_config**](docs/InstallerApi.md#v2_get_cluster_default_config) | **GET** /v2/clusters/default-config |
  *InstallerApi* | [**v2_get_cluster_install_config**](docs/InstallerApi.md#v2_get_cluster_install_config) | **GET** /v2/clusters/{cluster_id}/install-config |
  *InstallerApi* | [**v2_get_cluster_ui_settings**](docs/InstallerApi.md#v2_get_cluster_ui_settings) | **GET** /v2/clusters/{cluster_id}/ui-settings |
  *InstallerApi* | [**v2_get_credentials**](docs/InstallerApi.md#v2_get_credentials) | **GET** /v2/clusters/{cluster_id}/credentials |
  *InstallerApi* | [**v2_get_host**](docs/InstallerApi.md#v2_get_host) | **GET** /v2/infra-envs/{infra_env_id}/hosts/{host_id} |
  *InstallerApi* | [**v2_get_host_ignition**](docs/InstallerApi.md#v2_get_host_ignition) | **GET** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/ignition |
  *InstallerApi* | [**v2_get_ignored_validations**](docs/InstallerApi.md#v2_get_ignored_validations) | **GET** /v2/clusters/{cluster_id}/ignored-validations |
  *InstallerApi* | [**v2_get_next_steps**](docs/InstallerApi.md#v2_get_next_steps) | **GET** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/instructions |
  *InstallerApi* | [**v2_get_preflight_requirements**](docs/InstallerApi.md#v2_get_preflight_requirements) | **GET** /v2/clusters/{cluster_id}/preflight-requirements |
  *InstallerApi* | [**v2_get_presigned_for_cluster_credentials**](docs/InstallerApi.md#v2_get_presigned_for_cluster_credentials) | **GET** /v2/clusters/{cluster_id}/downloads/credentials-presigned |
  *InstallerApi* | [**v2_get_presigned_for_cluster_files**](docs/InstallerApi.md#v2_get_presigned_for_cluster_files) | **GET** /v2/clusters/{cluster_id}/downloads/files-presigned |
  *InstallerApi* | [**v2_import_cluster**](docs/InstallerApi.md#v2_import_cluster) | **POST** /v2/clusters/import |
  *InstallerApi* | [**v2_install_cluster**](docs/InstallerApi.md#v2_install_cluster) | **POST** /v2/clusters/{cluster_id}/actions/install |
  *InstallerApi* | [**v2_install_host**](docs/InstallerApi.md#v2_install_host) | **POST** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/actions/install |
  *InstallerApi* | [**v2_list_clusters**](docs/InstallerApi.md#v2_list_clusters) | **GET** /v2/clusters |
  *InstallerApi* | [**v2_list_hosts**](docs/InstallerApi.md#v2_list_hosts) | **GET** /v2/infra-envs/{infra_env_id}/hosts |
  *InstallerApi* | [**v2_list_of_cluster_operators**](docs/InstallerApi.md#v2_list_of_cluster_operators) | **GET** /v2/clusters/{cluster_id}/monitored-operators |
  *InstallerApi* | [**v2_post_step_reply**](docs/InstallerApi.md#v2_post_step_reply) | **POST** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/instructions |
  *InstallerApi* | [**v2_register_cluster**](docs/InstallerApi.md#v2_register_cluster) | **POST** /v2/clusters |
  *InstallerApi* | [**v2_register_host**](docs/InstallerApi.md#v2_register_host) | **POST** /v2/infra-envs/{infra_env_id}/hosts |
  *InstallerApi* | [**v2_report_monitored_operator_status**](docs/InstallerApi.md#v2_report_monitored_operator_status) | **PUT** /v2/clusters/{cluster_id}/monitored-operators |
  *InstallerApi* | [**v2_reset_cluster**](docs/InstallerApi.md#v2_reset_cluster) | **POST** /v2/clusters/{cluster_id}/actions/reset |
  *InstallerApi* | [**v2_reset_host**](docs/InstallerApi.md#v2_reset_host) | **POST** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/actions/reset |
  *InstallerApi* | [**v2_reset_host_validation**](docs/InstallerApi.md#v2_reset_host_validation) | **PATCH** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/actions/reset-validation/{validation_id} | Reset failed host validation.
  *InstallerApi* | [**v2_set_ignored_validations**](docs/InstallerApi.md#v2_set_ignored_validations) | **PUT** /v2/clusters/{cluster_id}/ignored-validations |
  *InstallerApi* | [**v2_update_cluster**](docs/InstallerApi.md#v2_update_cluster) | **PATCH** /v2/clusters/{cluster_id} |
  *InstallerApi* | [**v2_update_cluster_finalizing_progress**](docs/InstallerApi.md#v2_update_cluster_finalizing_progress) | **PUT** /v2/clusters/{cluster_id}/progress |
  *InstallerApi* | [**v2_update_cluster_install_config**](docs/InstallerApi.md#v2_update_cluster_install_config) | **PATCH** /v2/clusters/{cluster_id}/install-config |
  *InstallerApi* | [**v2_update_cluster_logs_progress**](docs/InstallerApi.md#v2_update_cluster_logs_progress) | **PUT** /v2/clusters/{cluster_id}/logs-progress |
  *InstallerApi* | [**v2_update_cluster_ui_settings**](docs/InstallerApi.md#v2_update_cluster_ui_settings) | **PUT** /v2/clusters/{cluster_id}/ui-settings |
  *InstallerApi* | [**v2_update_host**](docs/InstallerApi.md#v2_update_host) | **PATCH** /v2/infra-envs/{infra_env_id}/hosts/{host_id} |
  *InstallerApi* | [**v2_update_host_ignition**](docs/InstallerApi.md#v2_update_host_ignition) | **PATCH** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/ignition |
  *InstallerApi* | [**v2_update_host_install_progress**](docs/InstallerApi.md#v2_update_host_install_progress) | **PUT** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/progress |
  *InstallerApi* | [**v2_update_host_installer_args**](docs/InstallerApi.md#v2_update_host_installer_args) | **PATCH** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/installer-args |
  *InstallerApi* | [**v2_update_host_logs_progress**](docs/InstallerApi.md#v2_update_host_logs_progress) | **PUT** /v2/infra-envs/{infra_env_id}/hosts/{host_id}/logs-progress |
  *InstallerApi* | [**v2_upload_cluster_ingress_cert**](docs/InstallerApi.md#v2_upload_cluster_ingress_cert) | **POST** /v2/clusters/{cluster_id}/uploads/ingress-cert |
  *InstallerApi* | [**v2_upload_logs**](docs/InstallerApi.md#v2_upload_logs) | **POST** /v2/clusters/{cluster_id}/logs |
  *ManagedDomainsApi* | [**v2_list_managed_domains**](docs/ManagedDomainsApi.md#v2_list_managed_domains) | **GET** /v2/domains |
  *ManifestsApi* | [**v2_create_cluster_manifest**](docs/ManifestsApi.md#v2_create_cluster_manifest) | **POST** /v2/clusters/{cluster_id}/manifests |
  *ManifestsApi* | [**v2_delete_cluster_manifest**](docs/ManifestsApi.md#v2_delete_cluster_manifest) | **DELETE** /v2/clusters/{cluster_id}/manifests |
  *ManifestsApi* | [**v2_download_cluster_manifest**](docs/ManifestsApi.md#v2_download_cluster_manifest) | **GET** /v2/clusters/{cluster_id}/manifests/files |
  *ManifestsApi* | [**v2_list_cluster_manifests**](docs/ManifestsApi.md#v2_list_cluster_manifests) | **GET** /v2/clusters/{cluster_id}/manifests |
  *ManifestsApi* | [**v2_update_cluster_manifest**](docs/ManifestsApi.md#v2_update_cluster_manifest) | **PATCH** /v2/clusters/{cluster_id}/manifests |
  *OperatorsApi* | [**v2_list_of_cluster_operators**](docs/OperatorsApi.md#v2_list_of_cluster_operators) | **GET** /v2/clusters/{cluster_id}/monitored-operators |
  *OperatorsApi* | [**v2_list_operator_properties**](docs/OperatorsApi.md#v2_list_operator_properties) | **GET** /v2/supported-operators/{operator_name} |
  *OperatorsApi* | [**v2_list_supported_operators**](docs/OperatorsApi.md#v2_list_supported_operators) | **GET** /v2/supported-operators |
  *OperatorsApi* | [**v2_report_monitored_operator_status**](docs/OperatorsApi.md#v2_report_monitored_operator_status) | **PUT** /v2/clusters/{cluster_id}/monitored-operators |
  *VersionsApi* | [**v2_list_component_versions**](docs/VersionsApi.md#v2_list_component_versions) | **GET** /v2/component-versions |
  *VersionsApi* | [**v2_list_release_sources**](docs/VersionsApi.md#v2_list_release_sources) | **GET** /v2/release-sources |
  *VersionsApi* | [**v2_list_supported_openshift_versions**](docs/VersionsApi.md#v2_list_supported_openshift_versions) | **GET** /v2/openshift-versions |

   - [ApiVip](docs/ApiVip.md)
   - [ApiVipConnectivityAdditionalRequestHeader](docs/ApiVipConnectivityAdditionalRequestHeader.md)
   - [ApiVipConnectivityRequest](docs/ApiVipConnectivityRequest.md)
   - [ApiVipConnectivityResponse](docs/ApiVipConnectivityResponse.md)
   - [ArchitectureSupportLevelId](docs/ArchitectureSupportLevelId.md)
   - [BindHostParams](docs/BindHostParams.md)
   - [Boot](docs/Boot.md)
   - [Cluster](docs/Cluster.md)
   - [ClusterCreateParams](docs/ClusterCreateParams.md)
   - [ClusterDefaultConfig](docs/ClusterDefaultConfig.md)
   - [ClusterFinalizingProgress](docs/ClusterFinalizingProgress.md)
   - [ClusterHostRequirements](docs/ClusterHostRequirements.md)
   - [ClusterHostRequirementsDetails](docs/ClusterHostRequirementsDetails.md)
   - [ClusterHostRequirementsList](docs/ClusterHostRequirementsList.md)
   - [ClusterList](docs/ClusterList.md)
   - [ClusterNetwork](docs/ClusterNetwork.md)
   - [ClusterProgressInfo](docs/ClusterProgressInfo.md)
   - [ClusterValidationId](docs/ClusterValidationId.md)
   - [CompletionParams](docs/CompletionParams.md)
   - [ConnectivityCheckHost](docs/ConnectivityCheckHost.md)
   - [ConnectivityCheckNic](docs/ConnectivityCheckNic.md)
   - [ConnectivityCheckParams](docs/ConnectivityCheckParams.md)
   - [ConnectivityRemoteHost](docs/ConnectivityRemoteHost.md)
   - [ConnectivityReport](docs/ConnectivityReport.md)
   - [ContainerImageAvailability](docs/ContainerImageAvailability.md)
   - [ContainerImageAvailabilityRequest](docs/ContainerImageAvailabilityRequest.md)
   - [ContainerImageAvailabilityResponse](docs/ContainerImageAvailabilityResponse.md)
   - [ContainerImageAvailabilityResult](docs/ContainerImageAvailabilityResult.md)
   - [Cpu](docs/Cpu.md)
   - [CreateManifestParams](docs/CreateManifestParams.md)
   - [Credentials](docs/Credentials.md)
   - [DhcpAllocationRequest](docs/DhcpAllocationRequest.md)
   - [DhcpAllocationResponse](docs/DhcpAllocationResponse.md)
   - [Disk](docs/Disk.md)
   - [DiskConfigParams](docs/DiskConfigParams.md)
   - [DiskEncryption](docs/DiskEncryption.md)
   - [DiskInfo](docs/DiskInfo.md)
   - [DiskInstallationEligibility](docs/DiskInstallationEligibility.md)
   - [DiskRole](docs/DiskRole.md)
   - [DiskSkipFormattingParams](docs/DiskSkipFormattingParams.md)
   - [DiskSpeed](docs/DiskSpeed.md)
   - [DiskSpeedCheckRequest](docs/DiskSpeedCheckRequest.md)
   - [DiskSpeedCheckResponse](docs/DiskSpeedCheckResponse.md)
   - [DomainResolutionRequest](docs/DomainResolutionRequest.md)
   - [DomainResolutionResponse](docs/DomainResolutionResponse.md)
   - [DomainResolutionResponseResolutions](docs/DomainResolutionResponseResolutions.md)
   - [DownloadBootArtifactsRequest](docs/DownloadBootArtifactsRequest.md)
   - [DriveType](docs/DriveType.md)
   - [Error](docs/Error.md)
   - [Event](docs/Event.md)
   - [EventList](docs/EventList.md)
   - [FeatureSupportLevelId](docs/FeatureSupportLevelId.md)
   - [FinalizingStage](docs/FinalizingStage.md)
   - [FreeAddressesList](docs/FreeAddressesList.md)
   - [FreeAddressesRequest](docs/FreeAddressesRequest.md)
   - [FreeNetworkAddresses](docs/FreeNetworkAddresses.md)
   - [FreeNetworksAddresses](docs/FreeNetworksAddresses.md)
   - [Gpu](docs/Gpu.md)
   - [Host](docs/Host.md)
   - [HostCreateParams](docs/HostCreateParams.md)
   - [HostIgnitionParams](docs/HostIgnitionParams.md)
   - [HostList](docs/HostList.md)
   - [HostNetwork](docs/HostNetwork.md)
   - [HostProgress](docs/HostProgress.md)
   - [HostProgressInfo](docs/HostProgressInfo.md)
   - [HostRegistrationResponse](docs/HostRegistrationResponse.md)
   - [HostRegistrationResponseNextStepRunnerCommand](docs/HostRegistrationResponseNextStepRunnerCommand.md)
   - [HostRole](docs/HostRole.md)
   - [HostRoleUpdateParams](docs/HostRoleUpdateParams.md)
   - [HostStage](docs/HostStage.md)
   - [HostStaticNetworkConfig](docs/HostStaticNetworkConfig.md)
   - [HostTypeHardwareRequirements](docs/HostTypeHardwareRequirements.md)
   - [HostTypeHardwareRequirementsWrapper](docs/HostTypeHardwareRequirementsWrapper.md)
   - [HostUpdateParams](docs/HostUpdateParams.md)
   - [HostValidationId](docs/HostValidationId.md)
   - [IgnitionEndpoint](docs/IgnitionEndpoint.md)
   - [IgnitionEndpointHttpHeadersParams](docs/IgnitionEndpointHttpHeadersParams.md)
   - [IgnoredValidations](docs/IgnoredValidations.md)
   - [ImageCreateParams](docs/ImageCreateParams.md)
   - [ImageInfo](docs/ImageInfo.md)
   - [ImageType](docs/ImageType.md)
   - [ImportClusterParams](docs/ImportClusterParams.md)
   - [InfraEnv](docs/InfraEnv.md)
   - [InfraEnvCreateParams](docs/InfraEnvCreateParams.md)
   - [InfraEnvList](docs/InfraEnvList.md)
   - [InfraEnvUpdateParams](docs/InfraEnvUpdateParams.md)
   - [InfraError](docs/InfraError.md)
   - [IngressCertParams](docs/IngressCertParams.md)
   - [IngressVip](docs/IngressVip.md)
   - [InlineResponse200](docs/InlineResponse200.md)
   - [InlineResponse2001](docs/InlineResponse2001.md)
   - [InstallCmdRequest](docs/InstallCmdRequest.md)
   - [InstallerArgsParams](docs/InstallerArgsParams.md)
   - [Interface](docs/Interface.md)
   - [Inventory](docs/Inventory.md)
   - [IoPerf](docs/IoPerf.md)
   - [Ip](docs/Ip.md)
   - [Iscsi](docs/Iscsi.md)
   - [KernelArgument](docs/KernelArgument.md)
   - [KernelArguments](docs/KernelArguments.md)
   - [L2Connectivity](docs/L2Connectivity.md)
   - [L3Connectivity](docs/L3Connectivity.md)
   - [LastInstallationPreparation](docs/LastInstallationPreparation.md)
   - [ListManagedDomains](docs/ListManagedDomains.md)
   - [ListManifests](docs/ListManifests.md)
   - [ListVersions](docs/ListVersions.md)
   - [LogsGatherCmdRequest](docs/LogsGatherCmdRequest.md)
   - [LogsProgressParams](docs/LogsProgressParams.md)
   - [LogsState](docs/LogsState.md)
   - [LogsType](docs/LogsType.md)
   - [MacInterfaceMap](docs/MacInterfaceMap.md)
   - [MacInterfaceMapInner](docs/MacInterfaceMapInner.md)
   - [MachineNetwork](docs/MachineNetwork.md)
   - [ManagedDomain](docs/ManagedDomain.md)
   - [Manifest](docs/Manifest.md)
   - [Memory](docs/Memory.md)
   - [MemoryMethod](docs/MemoryMethod.md)
   - [MonitoredOperator](docs/MonitoredOperator.md)
   - [MonitoredOperatorsList](docs/MonitoredOperatorsList.md)
   - [NextStepCmdRequest](docs/NextStepCmdRequest.md)
   - [NodeLabelParams](docs/NodeLabelParams.md)
   - [NtpSource](docs/NtpSource.md)
   - [NtpSynchronizationRequest](docs/NtpSynchronizationRequest.md)
   - [NtpSynchronizationResponse](docs/NtpSynchronizationResponse.md)
   - [OpenshiftVersion](docs/OpenshiftVersion.md)
   - [OpenshiftVersions](docs/OpenshiftVersions.md)
   - [OperatorCreateParams](docs/OperatorCreateParams.md)
   - [OperatorHardwareRequirements](docs/OperatorHardwareRequirements.md)
   - [OperatorHostRequirements](docs/OperatorHostRequirements.md)
   - [OperatorMonitorReport](docs/OperatorMonitorReport.md)
   - [OperatorProperties](docs/OperatorProperties.md)
   - [OperatorProperty](docs/OperatorProperty.md)
   - [OperatorStatus](docs/OperatorStatus.md)
   - [OperatorType](docs/OperatorType.md)
   - [OsImage](docs/OsImage.md)
   - [OsImages](docs/OsImages.md)
   - [Platform](docs/Platform.md)
   - [PlatformExternal](docs/PlatformExternal.md)
   - [PlatformType](docs/PlatformType.md)
   - [PreflightHardwareRequirements](docs/PreflightHardwareRequirements.md)
   - [PresignedUrl](docs/PresignedUrl.md)
   - [Proxy](docs/Proxy.md)
   - [RebootForReclaimRequest](docs/RebootForReclaimRequest.md)
   - [ReleaseChannel](docs/ReleaseChannel.md)
   - [ReleaseImage](docs/ReleaseImage.md)
   - [ReleaseImages](docs/ReleaseImages.md)
   - [ReleaseSource](docs/ReleaseSource.md)
   - [ReleaseSources](docs/ReleaseSources.md)
   - [Route](docs/Route.md)
   - [ServiceNetwork](docs/ServiceNetwork.md)
   - [SourceState](docs/SourceState.md)
   - [Step](docs/Step.md)
   - [StepReply](docs/StepReply.md)
   - [StepType](docs/StepType.md)
   - [Steps](docs/Steps.md)
   - [StepsReply](docs/StepsReply.md)
   - [Subnet](docs/Subnet.md)
   - [SupportLevel](docs/SupportLevel.md)
   - [SupportLevels](docs/SupportLevels.md)
   - [SystemVendor](docs/SystemVendor.md)
   - [TangConnectivityRequest](docs/TangConnectivityRequest.md)
   - [TangConnectivityResponse](docs/TangConnectivityResponse.md)
   - [TangConnectivityResponseSignatures](docs/TangConnectivityResponseSignatures.md)
   - [TangConnectivityResponseTangServerResponse](docs/TangConnectivityResponseTangServerResponse.md)
   - [UpdateManifestParams](docs/UpdateManifestParams.md)
   - [UpgradeAgentRequest](docs/UpgradeAgentRequest.md)
   - [UpgradeAgentResponse](docs/UpgradeAgentResponse.md)
   - [UpgradeAgentResult](docs/UpgradeAgentResult.md)
   - [UpgradeChannel](docs/UpgradeChannel.md)
   - [Usage](docs/Usage.md)
   - [V2ClusterUpdateParams](docs/V2ClusterUpdateParams.md)
   - [VerifiedVip](docs/VerifiedVip.md)
   - [VerifyVip](docs/VerifyVip.md)
   - [VerifyVipsRequest](docs/VerifyVipsRequest.md)
   - [VerifyVipsResponse](docs/VerifyVipsResponse.md)
   - [VersionedHostRequirements](docs/VersionedHostRequirements.md)
   - [Versions](docs/Versions.md)
   - [VipType](docs/VipType.md)
   - [VipVerification](docs/VipVerification.md)


  - **Type**: API key
  - **API key parameter name**: X-Secret-Key
  - **Location**: HTTP header

  - **Type**: API key
  - **API key parameter name**: Image-Token
  - **Location**: HTTP header

  - **Type**: API key
  - **API key parameter name**: image_token
  - **Location**: URL query string

  - **Type**: API key
  - **API key parameter name**: api_key
  - **Location**: URL query string

  - **Type**: API key
  - **API key parameter name**: Authorization
  - **Location**: HTTP header


pkgId: cce74d09db4aa375c7ee71ca3f59149b97a09b571d8e5abbf6e24bb30f1013ad
name: python-assistorgapi
arch: src
version: 0.1.6
epoch: 0
release: 1
summary: Unofficial API wrapper for ASSIST.org's API.
url: https://github.com/montesclarosglennbenedict/assistorgapi
rpm_license: MIT license
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assistorgapi-0.1.6-1.src.rpm
checksum_type: sha256
description:
  [![image](https://img.shields.io/pypi/v/assistorgapi.svg)](https://pypi.python.org/pypi/assistorgapi/)

  [![Documentation Status](https://readthedocs.org/projects/assistorgapi/badge/?version=latest)](https://assistorgapi.readthedocs.io/en/latest/?version=latest)

  Unofficial API wrapper for ASSIST.org\'s API. UNRELEASED. DO NOT INSTALL THIS PACKAGE UNLESS YOU HAVE CONTACTED ME.

  -   Free software: MIT license
  -   Documentation: <https://assistorgapi.readthedocs.io>.



  -   TODO



  This package was created with
  [Cookiecutter](https://github.com/audreyr/cookiecutter) and the
  [audreyr/cookiecutter-pypackage](https://github.com/audreyr/cookiecutter-pypackage)
  project template.


  there is no history, test


pkgId: 34be321243f1a65667715ef66325cf1b0eac6ae8c1f2189f6de0fd68205c4393
name: python-association-metrics
arch: src
version: 0.0.1
epoch: 0
release: 1
summary: Python module for measure the degree of association between variables
url: https://github.com/HeberTU/association_metrics
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-association-metrics-0.0.1-1.src.rpm
checksum_type: sha256
description:
  **Association-Metrics** is a Python module for measure the degree of association between variables built on top of SciPy and Numpy, and is distributed under the MIT license.

  The project started due to the lack of reliable source code to calculate [Cramers'v](https://en.wikipedia.org/wiki/Cram%C3%A9r's_V), and from that, we decided to package-up our development.




  Association-Metrics requires:

  * Python (>= 3.6)
  * NumPy (>= 1.13.3)
  * SciPy (>= 0.19.1)
  * Pandas (>= 1.2.1)





  If you already have a working installation of numpy, scipy and pandas, the easiest way to install Association-Metrics is using `pip`

  `
  pip install association-metrics
  `



  We welcome new contributors of all experience levels.



  `
  git clone https://github.com/HeberTU/association_metrics
  `



  In case of any doubt, you can always reach us via email at:

  * heber.trj.urt@gmail.com

  We will be more than happy to help you out.


pkgId: 0285d9c4c0a966963ec6ed735dbc5ae446a467d9f5e6013f8fc511ddf29e077f
name: python-assonant
arch: src
version: 2.0.0
epoch: 0
release: 1
url: https://pypi.org/project/assonant/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assonant-2.0.0-1.src.rpm
checksum_type: sha256
summary:
  (Meta)Data standardization package for Sirius, the 4th generation brazillian synchrotron light source

description:
  A Beamline-agnostic event processing engine for data collection and organization (Assonant).
  This package provides to beamline groups from the [Brazilian Synchrotron Light Laboratory (LNLS)](https://lnls.cnpem.br/) a python API to send metadata, produced during an experiment, to a data management system, responsible to mantain and organize the metadata produced at [Sirius](https://lnls.cnpem.br/sirius-en/).
  The Assonant package is composed by public and private modules. Private modules are used by Assonant developers to implemented features that is furtherly exposed through public modules to abstract from final user how to handle specific platforms behaviors. In other words, if you are a beamline developer, don't care about what is inside any private module. Public modules are designed for being used by beamline developers in order to allow easy usage of Assonant resources. To differ private and public modules, private modules names are preceded by a '_':
  - **🔒 Private Modules 🔒**
      -   **[_kafka](/assonant/_kafka/)**
          Assonant tools for dealing with anything related to [Kafka](https://kafka.apache.org/).
      -   **[_nexus](/assonant/_nexus/)**
          Assonant tools for dealing with anything related to [NeXus format](https://github.com/nexpy/nexusformat).
  - **🔓 Public Modules 🔓**
      -   **[data_classes](/assonant/data_classes/)**
          A group of data classes that defines data schemas to be used all over Assonant modules in order
          to standardize data acquisiton, transference, manipulation and storage.
      -   **[data_sender](/assonant/data_sender/)**
          Assonant tools for dealing with Assonant Data Classes transference over different types
          of communication method (e.g: Kafka topics).
      -   **[file_writer](/assonant/file_writer/)**
          Assonant tools for writing data from within Assonant Data Classes into specific file formats.

  1. When importing anything from within a module to use internally on that module use relative paths.
  2. When importing anything from a module, do not use an absolute path, instead use what is being made public by the module.
  3. Classes, methods and settings that will be usable from outside the module, should be exposed on __\_\_init\_\_.py__ files
  4. Private methods, files and modules should always have their name preceded by '_'.

  Assonant package can be directly installed from Pypi server by simply executing the following command line:
  ```bash
  python -m pip install assonant
  ```

  1. First of all, If you want to prepare a development environment, clone the repository into your local machine:
  2. Secondly install assonant by executing pip install . inside the cloned repository
  ```bash
  python -m pip install -e .
  ```
  3. After that install manually the requirements listed in the requirements-dev.txt file and install the pre-commit.
  ```bash
  python -m pip install -r requirements-dev.txt
  pre-commit install --install-hooks -t pre-commit -t commit-msg
  ```

  1. Firstly, remember to update the version value in this README file badge, and on the pyproject.toml file.
  2. Secondly, you will need to build your package:
  ```bash
  python -m build
  ```
  3. After that you need to send the new version to the Global PyPi version by executing the following command line. Exchange the <package_version> place holder by the current version that will be deployed:
  ```bash
  twine upload --repository pypi dist/assonant-<package_version>* --verbose
  ```


pkgId: faafd686f233e6d1cd7bfb7758033557253bb9238472f79532315f1d1a61613f
name: python-assorthead
arch: src
version: 0.1.0
epoch: 0
release: 1
summary: Assorted C++ headers
url: https://github.com/BiocPy/assorthead/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assorthead-0.1.0-1.src.rpm
checksum_type: sha256
description:
  <!-- These are examples of badges you might want to add to your README:
       please update the URLs accordingly

  [![ReadTheDocs](https://readthedocs.org/projects/assorthead/badge/?version=latest)](https://assorthead.readthedocs.io/en/stable/)
  [![Coveralls](https://img.shields.io/coveralls/github/<USER>/assorthead/main.svg)](https://coveralls.io/r/<USER>/assorthead)
  [![Conda-Forge](https://img.shields.io/conda/vn/conda-forge/assorthead.svg)](https://anaconda.org/conda-forge/assorthead)
  [![Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social&label=Twitter)](https://twitter.com/assorthead)
  -->

  [![PyPI-Server](https://img.shields.io/pypi/v/assorthead.svg)](https://pypi.org/project/assorthead/)
  ![Unit tests](https://github.com/BiocPy/assorthead/actions/workflows/pypi-test.yml/badge.svg)



  **assorthead** vendors an assortment of header-only C++ libraries for compilation of downstream packages.
  This centralizes the acquisition and versioning of these libraries for a smoother development experience.
  It is primarily intended for the various [**BiocPy**](https://github.com/BiocPy) packages with C++ extensions,
  e.g., [**scranpy**](https://github.com/BiocPy/scranpy), [**singler**](https://github.com/BiocPy/singler).

  Developers can install **assorthead** via the usual `pip` commands:

  ```shell
  pip install assorthead
  ```

  We can then add all headers to the compiler's search path,
  using the `include_dirs` argument in the `setup()` command in our `setup.py`:

  ```python
  setup(
      use_scm_version={"version_scheme": "no-guess-dev"},
      ext_modules=[
          Extension(
              "foo.core",
              [
                  "src/lib/foo.cpp",
                  "src/lib/bar.cpp",
              ],
              include_dirs=[
                  assorthead.includes(),
              ],
              language="c++",
              extra_compile_args=[
                  "-std=c++17",
              ],
          )
      ],
  )
  ```

  Of course, this is only relevant for developers; all going well, end users should never be aware of these details.

  See [`extern/manifest.csv`](extern/manifest.csv) for the list of vendored libraries and their versions.


pkgId: 7857639719b04c6e1842603e7158989d8a8c795854043843043c311cd6666bc1
name: python-asst
arch: src
version: 2.1.1
epoch: 0
release: 1
summary: ChatGPT shell command
url: https://github.com/Boris-code/chatgpt-cli.git
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-asst-2.1.1-1.src.rpm
checksum_type: sha256
description:
  > ChatGPT shell command
  > Support gpt-4

  ChatGPT 支持终端命令行啦，支持gpt-4

  支持连续对话，在终端输入asst即可开启对话。

  如让它写个feapder的爬虫，实际对答如下：

  ![](media/16788027988798.jpg)



  ```shell
  pip install asst
  ```



  | 变量 | 必须 | 描述                                                                                                        |
  | ----|--|-----------------------------------------------------------------------------------------------------------|
  | OPENAI_API_KEY| 是 | OpenAI的密钥                                                                                                 |
  | OPENAI_BASE_URL |否 | OpenAI的镜像接口地址，如：https://api.openai.com， 注意不需要携带 v1/chat/completions |
  | OPENAI_PROXY| 否 | 代理，如 username:password@ip:port                                                                            |
  | OPENAI_MODEL| 否 |模型， 支持 gpt-4-1106-preview、gpt-3.5-turbo等，默认为 gpt-4-1106-preview |




  > 没有OPENAI_API_KEY，openai官网自己搞

  设置`OPENAI_API_KEY="chatgpt的密钥"`到环境变量

  **mac或linux下**
  临时设置的方式
  ```
  export OPENAI_API_KEY=your key
  ```
  永久设置
  ```
  vim ~/.bash_profile


  export OPENAI_API_KEY="your key"
  ```

  **window下设置为系统环境变量**

  参考：<a href="https://blog.csdn.net/xue_nuo/article/details/114793534" target="_blank">https://blog.csdn.net/xue_nuo/article/details/114793534</a>



  ```shell
  > asst
  You: hello
  Bot: Hi there!
  ```



  国内用户因为墙的原因，无法直接访问chatgpt，需配置镜像api或使用代理

  代理使用方式：

  设置`ASST_PROXY="代理"`到环境变量

  如：

  ```
  export ASST_PROXY="username:password@ip:port"
  ```



  **推荐：brightdata**

  不需要公司、不需要实名，准备好邮箱即可

  地址：<a href="https://brightdata.grsm.io/r0g6zla8seqs" target="_blank">https://brightdata.grsm.io/r0g6zla8seqs</a>

  若提示认证，选择支付宝即可，并不需要真正的认证

  充值支持支付宝

  使用方式：

  1. 选择机房代理，因为便宜。追求稳定选择住宅

      ![](media/16788015593888.jpg)

  2. 配置：

      ![](media/16788016828506.jpg)

  3. 查看访问参数

  ![](media/16788017441719.jpg)

  4. 配置代理

      设置`ASST_PROXY="代理"`到环境变量

      如：

      ```
      export ASST_PROXY="用户名:密码@主机"
      ```



  在chatgpt官网申请


pkgId: 4bb4f8d3352359c16bac215c664397685b31ffb3ba718eda11ac43d8520d97bf
name: python-assume
arch: src
version: 0.4.0
epoch: 0
release: 1
summary: Helper to easily assume IAM roles in AWS
url: http://github.com/SanderKnape/assume
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assume-0.4.0-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://travis-ci.org/SanderKnape/assume.svg?branch=master)](https://travis-ci.org/SanderKnape/assume)

  `assume` is a simple CLI utility that makes it easier to switch between different AWS roles. This is helpful when you work with different AWS accounts or users. In addition, this utility is helpful when you develop AWS resources locally (such as an application that will run on EC2 or when running a Lambda function locally using [AWS SAM](https://github.com/awslabs/aws-sam-cli)). You can easily switch to a role that your EC2 instance / Lambda function will assume in AWS.

  What this command actually does is change your AWS credentials file (`~/.aws/credentials`). If there is a `default` role in there, it will be stored in a temporary role. The assumed role is then passed in the `default` role, so you can immediately start using it.



  * [Prerequisites](#prerequisites)
  * [Installation](#installation)
  * [Usage](#usage)
  * [Alternatives](#alternatives)



  [Install Python](https://www.python.org/downloads/). Versions 3.5 and 3.6 are supported.



  Use [pip](https://pypi.org/project/pip/) to install `assume':

  ```bash
  pip install assume
  ```

  Run the following to show all available commands:

  ```bash
  assume --help
  ```



  Add a new role to assume as follows:

  ```bash
  assume add [rolename] --role-arn [arn] --profile [profile]
  ```

  Specifying the profile is optional. When you don't specify this, the default profile is used. The following would `add` a new role "myrole" to be assumed:

  ```bash
  assume add myrole --role-arn arn:aws:iam::012345678912:role/myrole
  ```

  You can now `assume` this role as follows:

  ```bash
  assume switch myrole
  ```

  `assume` keeps a configuration file in `~/.assume/config.yaml`. You can list the contents of the current configuration with the following file:

  ```bash
  assume list
  ```

  When you want to switch back to your initial default role, you can `clear` the assumed role as follows:

  ```bash
  assume clear
  ```

  To `remove` a role to be assumed, run the following command:

  ```bash
  assume remove myrole
  ```

  This command grabs the `default` role that was stored in a temporary location when running the `switch` command. These credentials are then put back in the `default` role.



  I'm aware that a number of alternatives already exist with similar functionality. The reason I decided to build my own functionality is because I wasn't be able to find an existing option that combines all of the following features:

  * Easy switching using shortcuts
  * Easily remove the temporarry role and switch back to the original one


pkgId: 26dc45c49b6f3344d8a0261a0852ab034d71728c392b580fcaeedecbf9716f26
name: python-assume-framework
arch: src
version: 0.4.3
epoch: 0
release: 1
summary: ASSUME - Agent-Based Electricity Markets Simulation Toolbox
url: https://assume-project.de/
rpm_license: AGPL-3.0-or-later
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-assume-framework-0.4.3-1.src.rpm
checksum_type: sha256
description:
  <!--
  SPDX-FileCopyrightText: ASSUME Developers

  SPDX-License-Identifier: AGPL-3.0-or-later
  -->



  ![Lint Status](https://github.com/assume-framework/assume/actions/workflows/lint-pytest.yaml/badge.svg)
  [![Code Coverage](https://codecov.io/gh/assume-framework/assume/branch/main/graph/badge.svg?token=CZ4FO7P57H)](https://codecov.io/gh/assume-framework/assume)
  [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.8088760.svg)](https://doi.org/10.5281/zenodo.8088760)
  [![REUSE status](https://api.reuse.software/badge/github.com/assume-framework/assume)](https://api.reuse.software/info/github.com/assume-framework/assume)

  [![](https://img.shields.io/pypi/v/assume-framework.svg)](https://pypi.org/pypi/assume-framework/)
  [![](https://img.shields.io/pypi/pyversions/assume-framework.svg)](https://pypi.org/pypi/assume-framework/)
  [![](https://img.shields.io/pypi/l/assume-framework.svg)](https://pypi.org/pypi/assume-framework/)
  [![](https://img.shields.io/pypi/status/assume-framework.svg)](https://pypi.org/pypi/assume-framework/)
  [![](https://img.shields.io/readthedocs/assume)](https://assume.readthedocs.io/)

  [![Try examples in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://github.com/assume-framework/assume/tree/main/examples/notebooks)

  **ASSUME** is an open-source toolbox for agent-based simulations of European electricity markets, with a primary focus on the German market setup. Developed as an open-source model, its primary objectives are to ensure usability and customizability for a wide range of users and use cases in the energy system modeling community.



  A unique feature of the ASSUME toolbox is its integration of **Deep Reinforcement Learning** methods into the behavioral strategies of market agents. The model offers various predefined agent representations for both the demand and generation sides, which can be used as plug-and-play modules, simplifying the reinforcement of learning strategies. This setup enables research into new market designs and dynamics in energy markets.




  - [User Documentation](https://assume.readthedocs.io/en/latest/)
  - [Installation Guide](https://assume.readthedocs.io/en/latest/installation.html)



  You can install ASSUME using pip. Choose the appropriate installation method based on your needs:



  To install the core package:

  ```bash
  pip install assume-framework
  ```

  To install with reinforcement learning capabilities:

  ```bash
  pip install 'assume-framework[learning]'
  ```

  We also include network-based market clearing algorithms such as for the re-dispatch or nodal market clearing, which requires the PyPSA library. To install the package with these capabilities, use:

  ```bash
  pip install 'assume-framework[network]'
  ```

  To install with testing capabilities:

  ```bash
  pip install 'assume-framework[test]'
  ```



  If you want to benefit from a supported database and integrated Grafana dashboards for scenario analysis, you can use the provided Docker Compose file.

  Follow these steps:

  1. Clone the repository and navigate to its directory:

  ```bash
  git clone https://github.com/assume-framework/assume.git
  cd assume
  ```

  2. Start the database and Grafana using the following command:

  ```bash
  docker-compose up -d
  ```

  This will launch a container for TimescaleDB and Grafana with preconfigured dashboards for analysis. You can access the Grafana dashboards at `http://localhost:3000`.



  If you intend to use the reinforcement learning capabilities of ASSUME and train your agents, make sure to install Torch. Detailed installation instructions can be found [here](https://pytorch.org/get-started/locally/).





  To ease your way into ASSUME we provided some examples and tutorials. The former are helpful if you would like to get an impression of how ASSUME works and the latter introduce you into the development of ASSUME.



  The tutorials work completely detached from your own machine on google colab. They provide code snippets and task that show you, how you can work with the software package one your own. We have two tutorials prepared, one for introducing a new unit and one for getting reinforcement learning ready on ASSUME.

  How to configure a new unit in ASSUME?
  [![Open Learning Tutorial in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/assume-framework/assume/blob/main/examples/notebooks/03_custom_unit_example.ipynb)

  How to use reinforcement learning for new market participants in ASSUME?

  [![Open Learning Tutorial in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/assume-framework/assume/blob/main/examples/notebooks/04_reinforcement_learning_example.ipynb)

  How to change and adapt reinforcement learning algorithms in ASSUME?

  [![Open Learning Tutorial in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/assume-framework/assume/blob/main/examples/notebooks/04_reinforcement_learning_algorithm_example.ipynb)




  To explore the provided examples, follow these steps:

  1. Clone the repository and navigate to its directory:

  ```bash
  git clone https://github.com/assume-framework/assume.git
  cd assume
  ```

  2. Quick Start:

  There are three ways to run a simulation:

  - Local:

  ```bash
  python examples/examples.py
  ```

  - Using the provided Docker setup:

  If you have installed Docker and set up the Docker Compose file previously, you can select 'timescale' in `examples.py` before running the simulation. This will save the simulation results in a Timescale database, and you can access the Dashboard at `http://localhost:3000`.

  - Using the CLI to run simulations:

  ```bash
  assume -s example_01b -db "postgresql://assume:assume@localhost:5432/assume"
  ```

  For additional CLI options, run `assume -h`.



  If you're contributing to the development of ASSUME, follow these steps:

  1. Install pre-commit:

  ```bash
  pip install pre-commit
  pre-commit install
  ```

  To run pre-commit checks directly, use:

  ```bash
  pre-commit run --all-files
  ```



  To release a new version, increase the version in `pyproject.toml` and create a git tag of the release commit and release notes in GitHub.
  To push to PyPi run:

  ```
  rm -r dist
  python -m build .
  twine upload --repository pypi dist/*
  ```

  See also: https://twine.readthedocs.io/en/stable/index.html#using-twine



  First, create an environment that includes the documentation dependencies:

  ```bash
  conda env create -f environment_docs.yaml
  ```

  To generate or update the automatically created docs in `docs/source/assume*`, run:

  ```bash
  sphinx-apidoc -o docs/source -Fa assume
  ```

  To create and serve the documentation locally, use:

  ```bash
  cd docs/source && python -m sphinx . ../build && cd ../.. && python -m http.server --directory docs/build
  ```



  The project is developed by a collaborative team of researchers from INATECH at the University of Freiburg, IISM at Karlsruhe Institute of Technology, Fraunhofer Institute for Systems and Innovation Research, Fraunhofer Institution for Energy Infrastructures and Geothermal Energy, and FH Aachen - University of Applied Sciences. Each contributor brings valuable expertise in electricity market modeling, deep reinforcement learning, demand side flexibility, and infrastructure modeling.

  ASSUME is funded by the Federal Ministry for Economic Affairs and Climate Action (BMWK). We are grateful for their support in making this project possible.



  Copyright 2022-2024 [ASSUME developers](https://assume.readthedocs.io/en/latest/developers.html).

  ASSUME is licensed under the [GNU Affero General Public License v3.0](./LICENSES/AGPL-3.0-or-later.txt). This license is a strong copyleft license that requires that any derivative work be licensed under the same terms as the original work. It is approved by the [Open Source Initiative](https://opensource.org/licenses/AGPL-3.0).


pkgId: beaae32a1e7a1a6aa7c7c20ee9e1fc8c55286772efb2e6a72c1bf6c1c117676d
name: python-ast-comments
arch: src
version: 1.2.2
epoch: 0
release: 1
summary: please add a summary manually as the author left a blank one
url: https://github.com/t3rn0/ast-comments
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ast-comments-1.2.2-1.src.rpm
checksum_type: sha256
description:
  An extension to the built-in `ast` module.
  Finds comments in source code and adds them to the parsed tree.


  ```
  pip install ast-comments
  ```



  There is no difference in usage between `ast` and `ast-comments`
  ```
  >>> from ast_comments import *
  >>> tree = parse("hello = 'hello' # comment to hello")
  ```
  Parsed tree is an instance of the original `ast.Module` object.
  The only difference is that there is a new type of tree node: `Comment`
  ```
  >>> tree
  <_ast.Module object at 0x7ffba52322e0>
  >>> tree.body
  [<ast.Assign object at 0x10a01d5b0>, <ast_comments.Comment object at 0x10a09e0a0>]
  >>> tree.body[1].value
  '# comment to hello'
  >>> dump(tree)
  "Module(body=[Assign(targets=[Name(id='hello', ctx=Store())], value=Constant(value='hello')), Comment(value='# comment to hello', inline=True)], type_ignores=[])"
  ```
  If you have python3.9 or above it's also possible to unparse the tree object with its comments preserved.
  ```
  >>> print(unparse(tree))
  hello = 'hello'  # comment to hello
  ```
  **Note**: Python `compile()` cannot be run on the tree output from parse. The included `pre_compile_fixer()` function can be used to fix the tree (stripping
  comment nodes) if it will be necessary to compile the output.

  More examples can be found in test_parse.py and test_unparse.py.


  You are welcome to open an issue or create a pull request


pkgId: 693b11e4b3c1d4e53d1a36259ee470d4357b41293133d8349904c628215ffd66
name: python-ast-scope
arch: src
version: 0.4.4
epoch: 0
release: 1
summary: Annotates a Python AST with the scope of symbols.
url: https://github.com/kavigupta/ast_scope
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ast-scope-0.4.4-1.src.rpm
checksum_type: sha256
description:
  This package is an implementation of Python's lexical scoping rules. It's interface is simple, you pass in an AST object to the `annotate` function, and it provides a mapping from each node in the tree that represents a symbol to the containing scope.



  Let's say you have the code

  ```
  code = """
  def f():
      x = 3
      lambda z: theta
      return x + y
  """
  ```

  and you want to determine which global variables are referenced by it. All you need to do is run

  ```
  import ast
  import ast_scope
  tree = ast.parse(code)
  scope_info = ast_scope.annotate(tree)
  global_variables = sorted(scope_info.global_scope.symbols_in_frame)
  ```

  Once you have executed this code, `global_variables` will be bound to `['f', 'theta', 'y']`.



  Let's say you have the code

  ```
  code = """
  def hailstone(n):
      if n == 1:
          return 1
      if n % 2 == 0:
          return hailstone(n // 2)
      if n % 2 == 1:
          return hailstone(3 * n + 1)

  def mapper(f, lst):
      return list(map(f, lst))

  def lrange(n):
      return list(range(n))

  def main():
      return mapper(hailstone, lrange(20))
  """
  ```

  and you want to find the dependency graph. You can run

  ```
  import ast
  import ast_scope
  tree = ast.parse(code)
  scope_info = ast_scope.annotate(tree)
  graph = scope_info.static_dependency_graph
  ```

  which results in the following directed graph of dependencies between top-level functions (rendering using networkx):

  <img src="img/dependency_graph_example.png">

  See the documentation for some caveats.



  Take the following code:

  ```
  code = """
  def f(x):
      def g(x): return x()
      return g(lambda: x)
  """
  ```

  First, parse the code and identify the node (in practice, you'd probably have this always).

  ```
  import ast, ast_scope
  tree = ast.parse(code)
  last_x = tree.body[0].body[-1].value.args[0].body
  ```

  If you want to find the scope in which the last `x` could be found, just run the annotator and look up it's scope!

  ```

  scope_info = ast_scope.annotate(tree)
  scope_x = scope_info[last_x]
  ```

  You should get a `FunctionScope` object which contains a bunch of information about the other variables, etc., in the scope, but also `scope_x.function_node`, a pointer to the node containing the `def` statement for `f`.


pkgId: 832da3e3afc3270014288d419e5ef3ada78350e7af8b978126198671af134a1e
name: python-ast-tool-py
arch: src
version: 0.17.2
epoch: 0
release: 1
summary: Asterix data processing tool
url: https://github.com/zoranbosnjak/asterix-tool/tree/master/ast-tool-py#readme
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ast-tool-py-0.17.2-1.src.rpm
checksum_type: sha256
description:
  Features:

  - random asterix data generator
  - asterix decoder to text output
  - UDP receiver and transmitter with multicast mode support
  - asterix category/edition detector
  - stream recorder and replay
  - support for multiple recording file formats
  - simple integration with other standard command line tools via stdin/stdout
  - user defined asterix data processing with custom script



  Install from python package index:

  ``` bash
  pip install ast-tool-py
  ```



  This installation procedures requires `python >= 3.7` and `pip >= 21.3`.
  Tested under `ubuntu-22.04` and `ubuntu-20.04`.

  Prepare virtual environment:

  ```bash
  sudo apt -y install python3-venv
  python3 -m venv env
  source env/bin/activate
  python3 -m pip install wheel # might be required (e.g. under ubuntu 20.04)
  ```

  Under some older OS versions (like ubuntu-18.04) it might be necessary to upgrade the
  the required versions first. In this case, the procedure to prepare the environment
  should be something like:

  ```bash
  sudo apt -y install python3.8 python3.8-venv python3-pip
  python3.8 -m venv env
  source env/bin/activate
  python3 -m pip install --upgrade pip
  python --version # check version
  python3 -m pip --version # check version
  python3 -m pip install wheel
  ```

  Install latest git version of this project and check installation:

  ```bash
  python3 -m pip install "git+https://github.com/zoranbosnjak/asterix-tool.git#subdirectory=ast-tool-py"
  ast-tool-py --version
  ast-tool-py --help
  ```



  If the target server is offline (that is: without internet access), use the
  following installation procedure (tested with `ubuntu-22.04`):

  - prepare installation bundle on auxilary server with internet access
  - transfer files to offline server
  - on the offline server, install from local disk

  **NOTE**:
  At the time of writing, `ubuntu-22.04` contains `pip` version `22.0.2` with a bug.
  For proper operation, `pip` needs to be upgraded on both auxilary and target
  server. Tested with `pip` version `23.3.1`.



  Run on the server with internet access.

  ```bash
  sudo apt -y install python3-pip
  mkdir ast-tool-py-bundle
  cd ast-tool-py-bundle


  python3 -m pip --version
  python3 -m pip install --upgrade pip
  python3 -m pip --version

  python3 -m pip download -d . pip setuptools wheel
  python3 -m pip download -d . "git+https://github.com/zoranbosnjak/asterix-tool.git#subdirectory=ast-tool-py"
  ```



  It is assumed that target server has `python`, `pip` and `venv` installed already.
  If required, install:

  ```bash
  sudo apt -y install python3-pip python3-venv
  ```

  Manually transfer `ast-tool-py-bundle/` to the target server and install.

  ```bash

  cd
  python3 -m venv env
  source env/bin/activate

  cd ast-tool-py-bundle


  python3 -m pip --version
  python3 -m pip install --upgrade --no-index ./pip*
  python3 -m pip --version


  python3 -m pip install --no-index --find-links=./ ./ast-tool*
  ast-tool-py --version
  ast-tool-py --help
  ```





  Some commands (`random`, `decode`...) need selection of asterix categories
  and edition. By default all available categories and the latest editions
  are used. The following command line arguments are available to adjust the
  setting (can be specified multiple times).

  - `--empty-selection` - start with empty selection instead of *all latest*
  - `--cat CAT EDITION` - add/replace category with explicit edition
  - `--ref CAT EDITION` - add/replace expansion with explicit edition
  - `--expand CAT ITEM-NAME` - Use expansion definition with selected topitem,
    for example `--expand 62 RE`



  The following options are available when program is used in a
  *bash pipeline*:

  - `--simple-input` - force simple mode for data input
  - `--simple-output` - force simple mode for data output
  - `-s` or `--simple` - force simple mode for data input and output
    (this is the same as setting `--simple-input` and `--simple-output`)
  - `--no-flush` - do not flush output on each event (use buffering)

  Examples:

  ```bash

  ast-tool-py random


  ast-tool-py --simple-output random


  ast-tool-py --simple-output random | ast-tool-py --simple-input decode

  ast-tool-py -s random | ast-tool-py -s decode
  ```



  ```bash
  ast-tool-py --help                   # general help
  ast-tool-py {subcommand-name} --help # subcommand help
  ```





  *Pseudo random asterix data generator*

  Examples:

  ```bash

  ast-tool-py random


  ast-tool-py random | stdbuf -oL head -n 10



  ast-tool-py -s random | stdbuf -oL head -n 10 | sha1sum



  ast-tool-py -s random --seed 0 | stdbuf -oL head -n 10 | sha1sum


  ast-tool-py manifest | grep "062" # show available editions
  ast-tool-py --empty-selection --cat 062 1.19 random


  ast-tool-py --expand 62 RE random


  ast-tool-py random --sleep 0.5
  ast-tool-py random | while read x; do echo "$x"; sleep 0.5; done
  ast-tool-py random | pv -qL 300


  ast-tool-py -s random | awk '{print "0: "$1}'


  ast-tool-py random --channel ch1 --channel ch2
  ```



  *Asterix decoder to plain text*

  Examples:

  ```bash

  ast-tool-py random | ast-tool-py decode


  ast-tool-py random | ast-tool-py decode --truncate 80


  ast-tool-py random | ast-tool-py decode --truncate 80 --parsing-level 3
  ast-tool-py random | ast-tool-py decode --truncate 80 --parsing-level 4


  ast-tool-py --expand 62 RE random | ast-tool-py --expand 62 RE decode
  ```

  Run simple self-test:

  Check if the tool can decode it's own random data, ignore decoding results.
  This bash pipeline shall run without error until interrupted.

  ```bash
  ast-tool-py random | ast-tool-py decode --stop-on-error > /dev/null

  ```



  *UDP datagram receiver/transmitter*

  Examples:

  ```bash

  ast-tool-py random | ast-tool-py to-udp --unicast "*" 127.0.0.1 56780


  ast-tool-py from-udp --unicast "ch1" 127.0.0.1 56780 \
      | ast-tool-py to-udp --unicast "*" 127.0.0.1 56781


  ast-tool-py from-udp --unicast "ch1" 127.0.0.1 56781 | ast-tool-py decode


  ast-tool-py random --sleep 0.3 --channel ch1 --channel ch2 \
      | ast-tool-py to-udp \
          --unicast "ch1" 127.0.0.1 56001 \
          --unicast "ch2" 127.0.0.1 56002


  ast-tool-py from-udp --unicast "ch1" 127.0.0.1 56001
  ast-tool-py from-udp --unicast "ch2" 127.0.0.1 56002
  ```



  *Detect valid/invalid asterix editions in a stream*

  This command inspects a stream and tryes to decode asterix with all defined
  asterix category/edition combinations. It runs until the stream is exhausted
  or until the process is interrupted.

  Examples:

  ```bash

  ast-tool-py random | stdbuf -oL head -n 1000 | ast-tool-py inspect


  ast-tool-py from-udp --unicast "ch1" 127.0.0.1 56780 | ast-tool-py inspect
  ```



  *Record/replay data to/from a file*

  Examples:

  ```bash

  ast-tool-py random --sleep 0.2 | stdbuf -oL head -n 10 | ast-tool-py record

  ast-tool-py random --sleep 0.2 | stdbuf -oL head -n 10 | ast-tool-py record | tee recording.simple
  ast-tool-py random --sleep 0.2 | stdbuf -oL head -n 10 | ast-tool-py record > recording.simple


  ast-tool-py record --help # check supported recording file formats
  ast-tool-py random --sleep 0.2 | stdbuf -oL head -n 10 \
      | ast-tool-py record --format final > recording.ff


  ast-tool-py replay recording.simple
  ast-tool-py replay recording.simple --full-speed


  ast-tool-py replay --help # check supported replay file formats
  ast-tool-py replay --format final recording.ff


  gzip recording.simple
  cat recording.simple.gz | gunzip | ast-tool-py replay
  zcat recording.simple.gz | ast-tool-py replay # or using 'zcat'
  ```



  *Running custom python script*

  This command dynamically imports a custom `python` script and runs required
  function (custom script entry point). The entry point function shall accept
  the following arguments:

  - `base`, `gen` - base and generated asterix module (encoder/decoder), see
    python asterix library:
    [libasterix](https://github.com/zoranbosnjak/asterix-libs/tree/main/libs/python#readme)
  - `io` - standard input/output instance
  - `args` - program arguments

  Custom script can use:

  - `io.rx` to fetch events as data *consumer*,
    for example to decode and display asterix data in any data-serialization
    format (json, xml, bson...)
  - `io.tx` to generate events as data *producer*,
    for example: reading and parsing non-standard recording file from disk
  - both `io.rx` and `io.tx` to act as custom data *filter* with arbitrary
    data manipulation capabilities



  ```python

  def custom(base, gen, io, args):
      print("Hello from custom script!")
      print(args.args) # explicit arguments
      print(args)      # all program arguments
  ```

  Test:

  ```bash
  ast-tool-py custom --script custom.py --call custom --args "additional arguments, any string"
  ```



  Basic filtering loop (transparent filter), use `io.rx` and `io.tx`.

  ```python

  def custom(base, gen, io, args):
      for event in io.rx():
          io.tx(event)
  ```

  Test:

  ```bash
  ast-tool-py random \
      | ast-tool-py custom --script custom.py --call custom \
      | ast-tool-py decode
  ```



  Drop events unless `channel == "ch1"`.

  ```python

  def custom(base, gen, io, args):
      for event in io.rx():
          (t_mono, t_utc, channel, data) = event
          if channel != "ch1":
              continue
          io.tx(event)
  ```

  ```bash

  ast-tool-py random --channel ch1 --channel ch2 --channel ch3 \
      | ast-tool-py custom --script custom.py --call custom
  ```



  Use `args`.

  ```python

  def custom(base, gen, io, args):
      valid_channels = args.args.strip().split()
      for event in io.rx():
          (t_mono, t_utc, channel, data) = event
          if not channel in valid_channels:
              continue
          io.tx(event)
  ```

  Specify channels with command line argument.

  ```bash

  ast-tool-py random --channel ch1 --channel ch2 --channel ch3 \
      | ast-tool-py custom --script custom.py --call custom --args "ch1 ch2"
  ```



  Note: This project is using
  [libasterix](https://github.com/zoranbosnjak/asterix-libs/tree/main/libs/python#readme)
  for asterix data processing. The `asterix` module is automatically imported
  and available in custom script (it does not require separate installation step).

  In general, if both `rx` and `tx` are used, custom scripts are in the form similar to
  the code snipped below. User might decide to handle exceptions differently.

  ```python



  def custom(base, gen, io, args):
      cfg = setup(base, gen)
      for event in io.rx():
          try:
              result = handle_event(cfg, event)
          except Exception as e:
              raise Exception('problem: ', event, e)
          io.tx(result)


  def setup(base, gen):
      return (base,gen) # for example if complete module is required


  def handle_event(cfg, event):
      (t_mono, t_utc, channel, data) = event
      
      return event # possible modified event
  ```



  ```python



  def custom(base, gen, io, args):
      cfg = setup(base)
      for event in io.rx():
          handle_event(cfg, event)

  def setup(base):
      return (base.RawDatablock, base.Bits)

  def handle_event(cfg, event):
      RawDatablock, Bits = cfg
      (t_mono, t_utc, channel, data) = event
      raw_datablocks = RawDatablock.parse(Bits.from_bytes(data))
      print(t_utc, channel, len(raw_datablocks))
  ```

  Test:

  ```bash
  ast-tool-py random --channel ch1 --channel ch2 --channel ch3 \
      | ast-tool-py custom --script custom.py --call custom
  ```



  ... ignore errors.

  ```python


  def custom(base, gen, io, args):
      manifest = gen.manifest
      specs = {cat: manifest['CATS'][cat][-1] for cat in manifest['CATS']}
      for event in io.rx():
          try: handle_event(base, specs, event)
          except: pass

  def handle_event(base, specs, event):
      (t_mono, t_utc, channel, data) = event
      bits = base.Bits.from_bytes(data)
      raw_datablocks = base.RawDatablock.parse(bits)
      for raw_db in raw_datablocks:
          cat = raw_db.get_category()
          spec = specs.get(cat)
          records = spec.cv_uap.parse(raw_db.get_raw_records())
          for record in spec.cv_uap.parse(raw_db.get_raw_records()):
              i010 = record.get_item('010').variation
              sac = i010.get_item('SAC').as_uint()
              sic = i010.get_item('SIC').as_uint()
              print(t_utc, channel, cat, (sac, sic))
  ```

  Test:

  ```bash
  ast-tool-py random --channel ch1 --channel ch2 --channel ch3 \
      | ast-tool-py custom --script custom.py --call custom
  ```



  ... for example *north marker* and *sector crossing* message in category 034.

  ```python



  def custom(base, gen, io, args):
      cfg = setup((base, gen))
      for event in io.rx():
          handle_event(cfg, event)

  def setup(cfg):
      base, gen = cfg
      return (base, gen.Cat_034_1_29) # use cat 034, explicit edition

  def handle_event(cfg, event):
      base, Spec = cfg
      (t_mono, t_utc, channel, data) = event
      
      bits = base.Bits.from_bytes(data)
      raw_datablocks = base.RawDatablock.parse(bits)
      for raw_db in raw_datablocks:
          
          if raw_db.get_category() != Spec.cv_category:
              continue
          
          records = Spec.cv_uap.parse(raw_db.get_raw_records())
          for rec in records:
              handle_record(t_utc, channel, rec)

  def handle_record(t_utc, channel, rec):
      msg_type = rec.get_item('000')
      if msg_type is None:
          return
      x = msg_type.as_uint()
      s = None
      if x == 1:
          s = 'north marker'
      elif x == 2:
          s = 'sector crossing'
      if s is not None:
          print(t_utc, channel, s)
  ```

  Test:

  ```bash
  ast-tool-py --empty-selection --cat 34 1.29 random --channel ch1 --channel ch2 --channel ch3 \
      | ast-tool-py custom --script custom.py --call custom
  ```



  ```python



  def custom(base, gen, io, args):
      for event in io.rx():
          (t_mono, t_utc, channel, data) = event
          data2 = handle_datagram(base, data)
          event2 = (t_mono, t_utc, channel, data2)
          io.tx(event2)

  def handle_datagram(base, data):
      bits = base.Bits.from_bytes(data)
      raw_datablocks = base.RawDatablock.parse(bits)
      if len(raw_datablocks) <= 1:
          return data
      return b''.join([db.unparse().to_bytes() for db in reversed(raw_datablocks)])
  ```

  Test:

  ```bash
  ast-tool-py random | ast-tool-py custom --script custom.py --call custom
  ```



  Accept category number as argument, drop other categories.

  ```python



  def custom(base, gen, io, args):
      cat = int(args.args.strip())
      for event in io.rx():
          (t_mono, t_utc, channel, data) = event
          bits = base.Bits.from_bytes(data)
          lst = base.RawDatablock.parse(bits)
          lst = [db for db in lst if db.get_category() == cat]
          if not lst:
              continue
          data2 = b''.join([db.unparse().to_bytes() for db in lst])
          event2 = (t_mono, t_utc, channel, data2)
          io.tx(event2)
  ```

  Run custom filter on random data, filte out all categories but `62`.

  ```bash
  ast-tool-py random \
      | ast-tool-py custom --script custom.py --call custom --args 62 \
      | ast-tool-py decode --parsing-level 2 --truncate 80
  ```



  Keep other items unmodified.

  ```python



  def custom(base, gen, io, args):
      Spec = gen.Cat_062_1_20
      for event in io.rx():
          (t_mono, t_utc, channel, data) = event
          bits = base.Bits.from_bytes(data)
          lst = base.RawDatablock.parse(bits)
          lst = [handle_datablock(Spec, db) for db in lst]
          data2 = b''.join([db.unparse().to_bytes() for db in lst])
          event2 = (t_mono, t_utc, channel, data2)
          io.tx(event2)

  def handle_datablock(Spec, raw_db):
      if raw_db.get_category() != Spec.cv_category:
          return raw_db
      records1 = Spec.cv_uap.parse(raw_db.get_raw_records())
      records2 = map(handle_record, records1)
      return Spec.create(records2)

  def handle_record(rec):
      return rec.set_item('010', (('SAC', 0), ('SIC', 0)))
  ```

  Test:

  ```bash
  ast-tool-py --empty-selection --cat 62 1.20 random | \
      ast-tool-py custom --script custom.py --call custom | \
      ast-tool-py decode | grep \'010\' | grep -E 'SAC|SIC'
  ```



  This example fully decodes and converts each *event* to `json` format.
  Obviously, there are multiple ways to perform such conversion, depending
  on user preferences and information that needs to be preserved.
  This is one example.

  ```python


  import json


  def custom(base, gen, io, args):
      cfg = setup(base, gen, args)
      for event in io.rx():
          try:
              obj = convert_event(cfg, event)
          except Exception as e:
              raise Exception('problem: ', event, e)
          print(json.dumps(obj))

  def get_selection(gen, empty, explicit_cats, explicit_refs):
      """Get category selection."""

      manifest = gen.manifest

      
      cats = {cat: manifest['CATS'][cat][-1] for cat in manifest['CATS']} # type: ignore
      refs = {cat: manifest['REFS'][cat][-1] for cat in manifest['REFS']} # type: ignore

      
      if empty:
          cats = {}
          refs = {}

      
      for (a, b, c) in [
          (cats, manifest['CATS'], explicit_cats),
          (refs, manifest['REFS'], explicit_refs),
      ]:
          for (cat_i, ed_s) in c:
              cat = int(cat_i)
              ed1, ed2 = ed_s.split('.')
              ed = (int(ed1), int(ed2))
              for spec in b[cat]: # type: ignore
                  if spec.cv_edition == ed:
                      a.update({cat: spec})
      return {'CATS': cats, 'REFS': refs}

  def get_expansions(base, gen, selection, expansions):
      result = []
      for (cat, name) in expansions:
          cat = int(cat)
          assert cat in selection['REFS'].keys(), 'REF not defined'
          spec = selection['CATS'][cat]
          subitem = spec.cv_record.spec(name)
          assert issubclass(subitem.cv_rule.cv_variation, base.Explicit)
          result.append((cat, name))
      return result

  def setup(base, gen, args):
      
      sel = get_selection(gen, args.empty_selection, args.cat or [], args.ref or [])
      exp = get_expansions(base, gen, sel, args.expand or [])
      return (base, sel, exp)

  def convert_event(cfg, event):
      """Turn 'event' to json-serializable object"""
      (t_mono, t_utc, channel, data) = event
      return {
          'tMono':    t_mono,
          'tUtc':     t_utc.isoformat(),
          'channel':  channel,
          'data':     convert_datagram(cfg, data),
      }

  def convert_datagram(cfg, data):
      (base, sel, exp) = cfg
      
      bits = base.Bits.from_bytes(data)
      raw_datablocks = base.RawDatablock.parse(bits)
      return [convert_datablock(cfg, raw_db) for raw_db in raw_datablocks]

  def convert_datablock(cfg, raw_db):
      (base, sel, exp) = cfg
      cat = raw_db.get_category()
      spec = sel['CATS'].get(cat)
      if spec is None: # asterix category unknown
          return raw_db.unparse().to_bytes().hex()
      records = spec.cv_uap.parse(raw_db.get_raw_records())
      return {
          'cat': cat,
          'records': [convert_record(cfg, cat, rec) for rec in records]
      }

  def convert_record(cfg, cat, rec):
      (base, sel, exp) = cfg

      def convert_content(content):
          if isinstance(content, base.ContentRaw):
              return {'type': 'raw', 'raw': content.as_uint()}
          elif isinstance(content, base.ContentTable):
              return {'type': 'table', 'raw': content.as_uint(), 'str': content.table_value()}
          elif isinstance(content, base.ContentString):
              return {'type': 'string', 'raw': content.as_uint(), 'str': content.as_string()}
          elif isinstance(content, base.ContentInteger):
              return {'type': 'integer', 'raw': content.as_uint(), 'int': content.as_integer()}
          elif isinstance(content, base.ContentQuantity):
              return {'type': 'quantity', 'raw': content.as_uint(), 'float': content._as_quantity()
                      , 'unit': content.__class__.cv_unit}
          elif isinstance(content, base.ContentBds):
              return {'type': 'bds', 'raw': content.as_uint()}
          else:
              raise Exception('internal error, unexpected content', content)

      def convert_rulecontent(rule):
          if isinstance(rule, base.RuleContentContextFree):
              return convert_content(rule.content)
          elif isinstance(rule, base.RuleContentDependent):
              return '(content dependent structure...)'
          else:
              raise Exception('internal error, unexpected rule', rule)

      def convert_variation(var, path):
          if isinstance(var, base.Element):
              return {
                  'type': 'Element',
                  'content': convert_rulecontent(var.rule),
              }
          elif isinstance (var, base.Group):
              return {
                  'type': 'Group',
                  'items': [convert_item(i, path) for i in var.arg]
              }
          elif isinstance (var, base.Extended):
              items = []
              for lists in var.arg:
                  for i in lists:
                      if i is not None:
                          items.append((convert_item(i, path),))
                      else:
                          items.append('(FX)')
              return {
                  'type': 'Extended',
                  'items': items,
              }
          elif isinstance (var, base.Repetitive):
              return {
                  'type': 'Repetitive',
                  'items': [convert_variation(sub, path+[cnt]) for (cnt, sub) in enumerate(var.arg)]
              }
          elif isinstance (var, base.Explicit):
              this_item = (cat, path[0])
              b = var.get_bytes()
              content = b.hex()
              if this_item in exp:
                  sub = sel['REFS'][cat].cv_expansion
                  bits = base.Bits.from_bytes(b)
                  (val, remaining) = sub.parse(bits)
                  assert not len(remaining)
                  content = convert_expansion(val, path)
              return {
                  'type': 'Explicit',
                  'content': content,
              }
          elif isinstance (var, base.Compound):
              return {
                  'type': 'Compound',
                  'items': {name: convert_rulevariation(nsp.rule, path+[name]) for name, nsp in var.arg.items()},
              }
          else:
              raise Exception('internal error, unexpected variation', var.variation, var)

      def convert_item(item, path):
          if isinstance(item, base.Spare):
              return item.as_uint()
          elif isinstance(item, base.Item):
              nsp = item.arg
              name = nsp.__class__.cv_name
              return (name, convert_rulevariation(nsp.rule, path+[name]))
          else:
              raise Exception('internal error, unexpected item', item)

      def convert_rulevariation(rule, path):
          if isinstance(rule, base.RuleVariationContextFree):
              return convert_variation(rule.variation, path)
          elif isinstance(rule, base.RuleVariationDependent):
              return '(content dependent structure...)'
          else:
              raise Exception('internal error, unexpected rule', rule)

      def convert_expansion(var, path):
          return {name: convert_rulevariation(nsp.rule, path+[name]) for name, nsp in var.arg.items()}

      result = {}
      for ui in rec.cv_items_list:
          if not issubclass(ui, base.UapItem):
              continue
          name = ui.cv_non_spare.cv_name
          nsp = rec.get_item(name)
          if nsp is None:
              continue
          result[name] = convert_rulevariation(nsp.rule, [name])
      return result
  ```

  As an example:

  - use random input data
  - use latest edition for each known category
  - in addition, decode cat021 'RE' expansion field

  ```bash
  sudo apt install jq
  ast-tool-py --expand 21 RE random --seed 0 --populate-all-items \
      | ast-tool-py --expand 21 RE custom --script custom.py --call custom \
      | jq
  ```



  Scenario:

  - read data from recording file, filter required channels
  - filter out non-asterix data
  - restamp several asterix categories to current time
  - send to udp destination, according to channel name mapping

  ```python


  import datetime


  def cleanup(base, gen, io, args):
      for event in io.rx():
          (t_mono, t_utc, channel, data) = event
          bits = base.Bits.from_bytes(data)
          result = base.RawDatablock.parse(bits)
          if isinstance(result, ValueError): # skip non-asterix
              continue
          io.tx(event)


  def restamp(base, gen, io, args):
      
      updates = {
          1: (gen.Cat_001_1_4, "141"),
          2: (gen.Cat_002_1_1, '030'),
          19: (gen.Cat_019_1_3, '140'),
          20: (gen.Cat_020_1_10, '140'),
          34: (gen.Cat_034_1_29, '030'),
          48: (gen.Cat_048_1_32, '140'),
          
      }

      for event in io.rx():
          now = datetime.datetime.now(tz=datetime.timezone.utc)
          (t_mono, t_utc, channel, data) = event
          bits = base.Bits.from_bytes(data)
          result = base.RawDatablock.parse(bits)
          if isinstance(result, ValueError):
              continue
          raw_datablocks = [db for db in result if db.get_category() in updates]
          if not raw_datablocks:
              continue
          t2 = seconds_since_midnight(t_utc)
          t3 = seconds_since_midnight(now)
          lst = [handle_datablock(t2, t3, updates, db) for db in raw_datablocks]
          data2 = b''.join([db.unparse().to_bytes() for db in lst])
          event2 = (t_mono, now, channel, data2)
          io.tx(event2)

  def seconds_since_midnight(t):
      """Calculate seconds since midnight."""
      midnight = datetime.datetime.combine(t, datetime.time(0), t.tzinfo)
      dt = t - midnight
      return dt.total_seconds()

  def handle_datablock(t2, t3, updates, raw_db):
      cat = raw_db.get_category()
      (Spec, name) = updates.get(cat)
      result = Spec.cv_uap.parse(raw_db.get_raw_records())
      assert not isinstance(result, ValueError)
      records = [handle_record(t2, t3, rec, name) for rec in result]
      return Spec.create(records)

  def handle_record(t2, t3, rec, name):
      
      def stamp(t1):
          t1 = t1.variation.content.as_quantity()
          original_delay = t2 - t1
          return t3 - original_delay
      x = rec.get_item(name)
      if x is None:
          return rec
      return rec.set_item(name, stamp(x))
  ```

  Test:

  ```bash

  ast-tool-py random --seed 0 --sleep 0.05 --channel ch1 --channel ch2 \
      | stdbuf -oL head -n 100 \
      | ast-tool-py record | tee recording


  cat recording | ast-tool-py replay | ast-tool-py inspect


  cat recording | ast-tool-py replay \
      | ast-tool-py custom --script custom.py --call cleanup \
      | ast-tool-py custom --script custom.py --call restamp \
      | ast-tool-py to-udp \
          --unicast ch1 127.0.0.1 56001 \
          --unicast ch2 127.0.0.1 56002
  ```


pkgId: c206c2f9690495651f1166ed8d912f7543d65c90d3e5beabd76c688abaa3c971
name: python-ast-tools
arch: src
version: 0.1.8
epoch: 0
release: 1
summary: Toolbox for working with the Python AST
url: https://github.com/leonardt/ast_tools
rpm_license: UNKNOWN
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ast-tools-0.1.8-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://travis-ci.com/leonardt/ast_tools.svg?branch=master)](https://travis-ci.com/leonardt/ast_tools)
  [![Coverage Status](https://coveralls.io/repos/github/leonardt/ast_tools/badge.svg?branch=master)](https://coveralls.io/github/leonardt/ast_tools?branch=master)

  Toolbox for working with the Python AST

  ```
  pip install ast_tools
  ```


  * [Green Tree Snakes - the missing Python AST docs](https://greentreesnakes.readthedocs.io/)



  ast_tools provides a number of passes for rewriting function and classes (could
  also work at the module level however no such pass exists). Passes are
  applied with the `apply_passes` decorator:

  ```python
  @apply_passes([pass1(), pass2()])
  def foo(...): ...
  ```
  Each pass takes as arguments an AST, an environment, and metadata and
  returns (possibly) modified versions of each.
  `apply_passes` begins a chain of rewrites by first looking
  up the ast of the decorated object and gather attempts to gather locals
  and globals from the call site to build the environment.

  After all rewrites have run `apply_passes` serializes and
  execute the rewritten ast.



  `apply_passes` relies on `inspect.getsource` to get the
  source of the decorated definition (which is then parsed to get the initial ast).
  However, `inspect.getsource` has many limitations.


  `apply_passes` does its best to infer the environment
  however there is no way to do this in a fully correct way.  Users are
  encouraged to pass environment explicitly:
  ```python
  @apply_passes(..., env=SymbolTable(locals(), globals()))
  def foo(...): ...
  ```


  The `apply_passes` decorator must not be wrapped.

  As decorators are a part of the AST of the object they are applied to
  they must be removed from the rewritten AST before it is executed.  If they
  are not removed rewrites will recurse infinitely as

  ```python
  @apply_passes([...])
  def foo(...): ...
  ```

  would become

  ```python
  exec('''\
  @apply_passes([...])
  def rewritten_foo(...): ...
  ''')
  ```
  Note: this would invoke `apply_passes([...])` on `rewritten_foo`

  To avoid this the `apply_passes` decorator filters itself from the decorator list.  If, however,
  the decorator is wrapped inside another decorator, this will fail.



  Decorators that are applied before a rewrite group will be called multiple times.
  See https://github.com/leonardt/ast_tools/issues/46 for detailed explanation.
  To avoid this users are encouraged to make rewrites the inner most decorators
  when possible.



  Unroll loops using the pattern
  ```python
  for <var> in ast_tools.macros.unroll(<iter>):
      ...
  ```

  `<iter>` should be an iterable object that produces integers (e.g. `range(8)`)
  that can be evaluated at definition time (can refer to variables in the scope
  of the function definition)

  For example,
  ```python
  from ast_tools.passes import apply_passes, loop_unroll

  @apply_passes([loop_unroll()])
  def foo():
      for i in ast_tools.macros.unroll(range(8)):
          print(i)
  ```
  is rewritten into
  ```python
  def foo():
      print(0)
      print(1)
      print(2)
      print(3)
      print(4)
      print(5)
      print(6)
      print(7)
  ```

  You can also use a list of `int`s, here's an example that also uses a reference
  to a variable defined in the outer scope:
  ```python
  from ast_tools.passes import apply_passes, loop_unroll

  j = [1, 2, 3]
  @apply_passes([loop_unroll()])
  def foo():
      for i in ast_tools.macros.unroll(j):
          print(i)
  ```
  becomes
  ```python
  def foo():
      print(1)
      print(2)
      print(3)
  ```


  This macro allows you to evaluate `if` statements at function definition time,
  so the resulting rewritten function will have the `if` statements marked
  "inlined" removed from the final code and replaced with the chosen branch based
  on evaluating the condition in the definition's enclosing scope.  `if`
  statements are marked by using the form `if inline(...):` where `inline` is
  imported from the `ast_tools.macros` package.  `if` statements not matching
  this pattern will be ignored by the rewrite logic.

  Here's an example
  ```python
  from ast_tools.macros import inline
  from ast_tools.passes import apply_passes, if_inline

  y = True

  @apply_passes([if_inline()])
  def foo(x):
      if inline(y):
          return x + 1
      else:
          return x - 1


  import inspect
  assert inspect.getsource(foo) == f"""\
  def foo(x):
      return x + 1
  """
  ```


pkgId: 195e018836e665d4d427007d086cd2ffa06aa5757b638981a597527b5cef19a6
name: python-ast2000tools
arch: src
version: 1.4.0
epoch: 0
release: 1
summary: Tools required for the course AST2000 at the University of Oslo.
url: https://lars-frogner.github.io/ast2000tools/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ast2000tools-1.4.0-1.src.rpm
checksum_type: sha256
description:
  The ast2000tools package contains tools required for the course AST2000 at the University of Oslo. See the documentation [here](https://lars-frogner.github.io/ast2000tools/).


pkgId: 7b05fc8adbcba03109cb9f06147050858afb9b9fffdb6f13f112159ca4fea2cf
name: python-ast2json
arch: src
version: 0.3
epoch: 0
release: 1
summary: convert a python source code into json-dumpable data (dict and lists with strings, ints, ...)
url: https://github.com/Psycojoker/ast2json
rpm_license: BSD
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ast2json-0.3-1.src.rpm
checksum_type: sha256
description:
  ast2json is a small module that will convert any python AST node into its ast
  representation formated in a JSON compatible python representation (list and
  dicts containing string, ints and null).


pkgId: 810e997a017ba5ccf4982060a5122838202ef62f0d120f3d006dcbcd8e4fb161
name: python-ast_monitor
arch: src
version: 0.5.2
epoch: 0
release: 1
summary: AST-Monitor is a wearable Raspberry Pi computer for cyclists
url: https://github.com/firefly-cpp/AST-Monitor
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-ast_monitor-0.5.2-1.src.rpm
checksum_type: sha256
description:
  <p align="center">
    <img width="300" src=".github/img/logo.png" alt="logo.png">
  </p>

  <h1 align="center">
  AST-Monitor --- A wearable Raspberry Pi computer for cyclists
  </h1>

  <p align="center">
    <img alt="PyPI Version" src="https://img.shields.io/pypi/v/ast-monitor.svg" href="https://pypi.python.org/pypi/ast-monitor">
    <img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/ast-monitor.svg">
    <img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dm/ast-monitor.svg">
    <img alt="Fedora package" src="https://img.shields.io/fedora/v/python3-ast-monitor?color=blue&label=Fedora%20Linux&logo=fedora" href="https://src.fedoraproject.org/rpms/python-ast-monitor">
    <img alt="AUR package" src="https://img.shields.io/aur/version/python-ast-monitor?color=blue&label=Arch%20Linux&logo=arch-linux" href="https://aur.archlinux.org/packages/python-ast-monitor">
    <img alt="GitHub license" src="https://img.shields.io/github/license/firefly-cpp/ast-monitor.svg" href="https://github.com/firefly-cpp/AST-Monitor/blob/master/LICENSE">
    <img alt="Check codestyle and test build" src="https://github.com/firefly-cpp/AST-Monitor/actions/workflows/python-app.yml/badge.svg">
    <img alt="Documentation Status" src="https://readthedocs.org/projects/ast-monitor/badge/?version=latest" href="http://ast-monitor.readthedocs.io/en/latest/?badge=latest">
  </p>

  <p align="center">
    <img alt="GitHub commit activity" src="https://img.shields.io/github/commit-activity/w/firefly-cpp/ast-monitor.svg">
    <img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/firefly-cpp/ast-monitor">
    <img alt="GitHub contributors" src="https://img.shields.io/github/contributors/firefly-cpp/ast-monitor.svg">
    <img alt="All Contributors" src="https://img.shields.io/badge/all_contributors-4-orange.svg" href="#-contributors">
  </p>

  <p align="center">
    <img alt="DOI" src="https://img.shields.io/badge/DOI-10.1109/ISCMI53840.2021.9654817-blue" href="https://doi.org/10.3390/app122412741">
    <img alt="DOI" src="https://img.shields.io/badge/DOI-10.3390/app122412741-blue" href="https://doi.org/10.3390/app122412741">
  </p>

  <p align="center">
    <a href="#-graphical-user-interface">💻 Graphical User Interface</a> •
    <a href="#️-hardware">⚙️ Hardware</a> •
    <a href="#️-software">🖥️ Software</a> •
    <a href="#-installation">📦 Installation</a> •
    <a href="#-deployment">📢 Deployment</a> •
    <a href="#-examples">🚀 Examples</a> •
    <a href="#-license">🔑 License</a> •
    <a href="#-cite-us">📄 Cite us</a> •
    <a href="#-further-read">📖 Further read</a> •
    <a href="#-related-packagesframeworks">🔗 Related packages</a> •
    <a href="#-references">📝 References</a> •
    <a href="#-contributors">🫂 Contributors</a>
  </p>

  Welcome to AST-Monitor: Revolutionizing Sport Training Sessions! 🏋️‍♂️ This repository aims to introduce a low-cost, and efficient embedded device that can transform the way you monitor
  cycling training sessions. Allow us to present AST-Monitor.

  To begin, we invite you to explore the paper that introduces the capabilities of AST-Monitor. Dive into the future of artificial sports trainers by reading this [paper](https://arxiv.org/abs/2109.13334). 📄💡

  * **Free software:** MIT license
  * **Python versions:** 3.8.x, 3.9.x, 3.10.x, 3.11.x, 3.12.x
  * **Documentation:** [https://ast-monitor.readthedocs.io/en/latest](https://ast-monitor.readthedocs.io/en/latest)
  * **Tested OS:** Windows, Ubuntu, Fedora, Alpine, Arch, macOS. **However, that does not mean it does not work on others**





  <p align="center">
    <img width="600" src="https://user-images.githubusercontent.com/73126820/179205064-160bdd44-fd67-4d8d-85dd-badea999885c.png" alt="AST-GUI">
  </p>
  The initial page of the AST-Monitor application presents essential parameters, providing real-time insights into an athlete's performance. Gain access to information such as the athlete's current speed and heart rate. After a training session, you'll also receive a comprehensive overview, including total distance covered, session duration, and total ascent conquered. 📱🚴‍♂️



  <p align="center">
    <img width="600" src="https://github.com/alenrajsp/AST-Monitor/blob/main/.github/img/route3.png?raw=true" alt="AST-Map">
  </p>
  As you navigate uncharted territories, this map reveals your precise location in real-time. And allows you to track your progress on the route in real time. 🌍🚴‍♂️🗺️



  <p align="center">
    <img width="600" src="https://user-images.githubusercontent.com/73126820/179205160-edce581c-1ea8-4287-a795-7d05fb7c8ddc.png" alt="AST-Intervals">
  </p>
    Discover the duration of each phase, track your current heart rate, and marvel at the average heart rate achieved. But that's not all—brace yourself for the Digital Twin proposed heart rate and witness the thrilling difference between your current heart rate and the proposed target. Prepare to dominate your workouts with the AST-Monitor! 🏋️‍♀️



  <p align="center">
    <img width="600" src="https://user-images.githubusercontent.com/73126820/189926103-e0895132-9bbc-41bf-8868-51e3e6c23f8a.png" alt="AST-Trainings">
  </p>
   Load up and embark on thrilling interval trainings that await you in the "AST-Monitor/development/trainings" folder. These trainings, meticulously crafted in the domain-specific language <a href="https://github.com/firefly-cpp/ast-tdl">AST-TDL</a>, are designed to take you to the next level. Once successfully loaded, witness the training plan come to life before your eyes. 🚀📋💥




  Prepare to be dazzled by the complete hardware setup featured in AST-Monitor.

  <p align="center">
    <img width="600" src="https://raw.githubusercontent.com/firefly-cpp/AST-Monitor/main/.github/img/complete_small.JPG" alt="AST-Monitor">
  </p>

  Let's take a closer look at the components:

  * **A platform with fixing straps** that securely attach to your bicycle, ensuring a seamless training experience. 🚲🔒
  * **The powerful Raspberry Pi 4 Model B micro-controller**, powered by the dynamic Raspbian OS. 💻
  * **A five-inch LCD touchscreen display**, allowing the interaction with AST-Monitor during the training. ✨🖥️
  * **Equipped with a USB ANT+ stick**, AST-Monitor captures the heartbeat of your training, providing crucial data for your journey to greatness. 📡
  * **Adafruit's Ultimate GPS HAT module** joins the lineup, empowering you with location information and paving the way for GPS integration (coming soon!). 🌐🛰️

  But that's not all:

  A Serial Peripheral Interface (SPI) protocol ensures seamless communication between the Raspberry Pi and the GPS
  peripheral, guaranteeing accurate and timely data. The screen display, connected using a physically shortened HDMI
  cable, ensures a sleek and compact design that doesn't compromise performance.

  During the testing phase, the AST-Monitor prototype was powered by Trust's 5 VDC power bank, providing unparalleled
  endurance. While the current prototype may be a bit bulky, rest assured, our team is hard at work, exploring sleeker and
  more discreet solutions. 💪💦

  For those who crave a glimpse inside AST-Monitor:

  <p align="center">
    <img width="600" src="https://user-images.githubusercontent.com/73126820/189920171-ac946a93-ad78-4e4b-bf09-5de5bf69bef9.png" alt="AST-Monitor">
  </p>

  Welcome to the next stage of sports training. Welcome to AST-Monitor—your ultimate companion on the road to victory!
  🌟🏆🚀





  List of dependencies:

  | Package                   | Version | Platform |
  |---------------------------|:-------:|:--------:|
  | PyQt6                     | ^5.15.6 |   All    |
  | matplotlib                | ^3.5.1  |   All    |
  | geopy                     | ^2.2.0  |   All    |
  | openant                   | ^1.2.0  |   All    |
  | pyqt-feedback-flow        | ^0.1.0  |   All    |
  | tcxreader                 | ^0.4.1  |   All    |
  | sport-activities-features | ^0.3.6  |   All    |

  Additional note: adafruit-circuitpython-gps package must be installed in order to work with the GPS sensor:

  ```sh
  $ pip install adafruit-circuitpython-gps
  ```



  Install AST-Monitor with pip:

  ```sh
  $ pip install ast-monitor
  ```

  In case you want to install directly from the source code, use:

  ```sh
  $ git clone https://github.com/firefly-cpp/AST-Monitor.git
  $ cd AST-Monitor
  $ poetry build
  $ python setup.py install
  ```

  To install AST-Monitor on Fedora Linux, please use:

  ```sh
  $ dnf install python3-ast-monitor
  ```

  To install AST-Monitor on Alpine Linux, please use:

  ```sh
  $ apk add py3-ast-monitor
  ```

  To install AST-Monitor on Arch Linux, please use an [AUR helper](https://wiki.archlinux.org/title/AUR_helpers):

  ```sh
  $ yay -Syyu python-ast-monitor
  ```



  Our project was deployed on a Raspberry Pi device using Raspberry Pi OS.

  The hardware configuration of AST-Monitor using Raspberry Pi OS is described
  in <a href="https://github.com/firefly-cpp/AST-Monitor/blob/main/HARDWARE_CONFIGURATION.md">
  HARDWARE_CONFIGURATION.md</a>.





  ```python
  import os
  import sys

  from PyQt6 import QtWidgets

  try:
      from ast_monitor.model import AST
  except ModuleNotFoundError:
      sys.path.append('../')
      from ast_monitor.model import AST


  hr_data = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'sensor_data', 'hr.txt')
  gps_data = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'sensor_data', 'gps.txt')
  route_data = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'development', 'routes', 'route.json')

  if __name__ == '__main__':
      app = QtWidgets.QApplication(sys.argv)
      window = AST(hr_data, gps_data, route_data)
      window.show()
      sys.exit(app.exec())
  ```



  This package is distributed under the MIT License. This license can be found online
  at <http://www.opensource.org/licenses/MIT>.



  This framework is provided as-is, and there are no guarantees that it fits your purposes or that it is bug-free. Use it
  at your own risk!



  Lukač, L., Fister Jr., I., Fister,
  I. "[Digital Twin in Sport: From an Idea to Realization](https://www.mdpi.com/2076-3417/12/24/12741)." Applied Sciences
  12.24 (2022): 12741, DOI: [10.3390/app122412741](http://dx.doi.org/10.3390/app122412741).


  [1] [Awesome Computational Intelligence in Sports](https://github.com/firefly-cpp/awesome-computational-intelligence-in-sports)



  [1] [sport-activities-features: A minimalistic toolbox for extracting features from sports activity files written in Python](https://github.com/firefly-cpp/sport-activities-features)

  [2] [ast-tdl: Training Description Language for Artificial Sport Trainer](https://github.com/firefly-cpp/ast-tdl)



  Fister Jr, I., Fister, I., Iglesias, A., Galvez, A., Deb, S., & Fister, D. (2021). On deploying the Artificial Sport
  Trainer into practice. arXiv preprint [arXiv:2109.13334](https://arxiv.org/abs/2109.13334).

  Fister Jr, I., Salcedo-Sanz, S., Iglesias, A., Fister, D., Gálvez, A., & Fister, I. (2021). New Perspectives in the
  Development of the Artificial Sport Trainer. Applied Sciences, 11(23), 11452.
  DOI: [10.3390/app112311452](https://doi.org/10.3390/app112311452)



  <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
  <!-- prettier-ignore-start -->
  <!-- markdownlint-disable -->
  <table>
    <tbody>
      <tr>
        <td align="center" valign="top" width="14.28%"><a href="http://www.iztok-jr-fister.eu/"><img src="https://avatars.githubusercontent.com/u/1633361?v=4?s=100" width="100px;" alt="Iztok Fister Jr."/><br /><sub><b>Iztok Fister Jr.</b></sub></a><br /><a href="https://github.com/firefly-cpp/AST-Monitor/issues?q=author%3Afirefly-cpp" title="Bug reports">🐛</a> <a href="https://github.com/firefly-cpp/AST-Monitor/commits?author=firefly-cpp" title="Documentation">📖</a> <a href="https://github.com/firefly-cpp/AST-Monitor/commits?author=firefly-cpp" title="Code">💻</a> <a href="#maintenance-firefly-cpp" title="Maintenance">🚧</a> <a href="#mentoring-firefly-cpp" title="Mentoring">🧑‍🏫</a> <a href="#platform-firefly-cpp" title="Packaging/porting to new platform">📦</a></td>
        <td align="center" valign="top" width="14.28%"><a href="https://github.com/luckyLukac"><img src="https://avatars.githubusercontent.com/u/73126820?v=4?s=100" width="100px;" alt="luckyLukac"/><br /><sub><b>luckyLukac</b></sub></a><br /><a href="https://github.com/firefly-cpp/AST-Monitor/issues?q=author%3AluckyLukac" title="Bug reports">🐛</a> <a href="https://github.com/firefly-cpp/AST-Monitor/commits?author=luckyLukac" title="Documentation">📖</a> <a href="https://github.com/firefly-cpp/AST-Monitor/commits?author=luckyLukac" title="Code">💻</a> <a href="#design-luckyLukac" title="Design">🎨</a></td>
        <td align="center" valign="top" width="14.28%"><a href="http://carlosal1015.github.io"><img src="https://avatars.githubusercontent.com/u/21283014?v=4?s=100" width="100px;" alt="Oromion"/><br /><sub><b>Oromion</b></sub></a><br /><a href="#platform-carlosal1015" title="Packaging/porting to new platform">📦</a></td>
        <td align="center" valign="top" width="14.28%"><a href="https://github.com/alenrajsp"><img src="https://avatars.githubusercontent.com/u/27721714?v=4?s=100" width="100px;" alt="alenrajsp"/><br /><sub><b>alenrajsp</b></sub></a><br /><a href="#content-alenrajsp" title="Content">🖋</a> <a href="https://github.com/firefly-cpp/AST-Monitor/commits?author=alenrajsp" title="Code">💻</a> <a href="#maintenance-alenrajsp" title="Maintenance">🚧</a> <a href="https://github.com/firefly-cpp/AST-Monitor/issues?q=author%3Aalenrajsp" title="Bug reports">🐛</a></td>
        <td align="center" valign="top" width="14.28%"><a href="https://github.com/KukovecRok"><img src="https://avatars.githubusercontent.com/u/33880044?v=4?s=100" width="100px;" alt="Tatookie"/><br /><sub><b>Tatookie</b></sub></a><br /><a href="https://github.com/firefly-cpp/AST-Monitor/commits?author=KukovecRok" title="Documentation">📖</a> <a href="https://github.com/firefly-cpp/AST-Monitor/issues?q=author%3AKukovecRok" title="Bug reports">🐛</a></td>
        <td align="center" valign="top" width="14.28%"><a href="https://github.com/rhododendrom"><img src="https://avatars.githubusercontent.com/u/3198785?v=4?s=100" width="100px;" alt="rhododendrom"/><br /><sub><b>rhododendrom</b></sub></a><br /><a href="#design-rhododendrom" title="Design">🎨</a></td>
        <td align="center" valign="top" width="14.28%"><a href="https://github.com/sertonix"><img src="https://avatars.githubusercontent.com/u/83883937?v=4?s=100" width="100px;" alt="Sertonix"/><br /><sub><b>Sertonix</b></sub></a><br /><a href="https://github.com/firefly-cpp/AST-Monitor/issues?q=author%3Asertonix" title="Bug reports">🐛</a></td>
      </tr>
      <tr>
        <td align="center" valign="top" width="14.28%"><a href="https://github.com/lahovniktadej"><img src="https://avatars.githubusercontent.com/u/57890734?v=4?s=100" width="100px;" alt="Tadej Lahovnik"/><br /><sub><b>Tadej Lahovnik</b></sub></a><br /><a href="https://github.com/firefly-cpp/AST-Monitor/commits?author=lahovniktadej" title="Documentation">📖</a> <a href="https://github.com/firefly-cpp/AST-Monitor/commits?author=lahovniktadej" title="Code">💻</a> <a href="https://github.com/firefly-cpp/AST-Monitor/issues?q=author%3Alahovniktadej" title="Bug reports">🐛</a></td>
      </tr>
    </tbody>
  </table>

  <!-- markdownlint-restore -->
  <!-- prettier-ignore-end -->

  <!-- ALL-CONTRIBUTORS-LIST:END -->
  <!-- prettier-ignore-start -->
  <!-- markdownlint-disable -->

  <!-- markdownlint-restore -->
  <!-- prettier-ignore-end -->

  <!-- ALL-CONTRIBUTORS-LIST:END -->


pkgId: 5f41b5e99832221cedb0fcd1393786c7f4e969cecd587040b317905bc6b77e96
name: python-astabc
arch: src
version: 0.1.12
epoch: 0
release: 1
summary: A Python module for automatic brightness and contrast optimization
url: https://github.com/jgwill/gia-abc
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-astabc-0.1.12-1.src.rpm
checksum_type: sha256
description:
  The `astabc` module is a Python module that provides functions for automatic brightness and contrast optimization of images.



  You can install the `astabc` module using `pip`:

  ```shell
  pip install astabc
  ```



  ```python
  import astabc


  image = astabc._read_image('filename.jpg')


  result, alpha, beta = astabc._automatic_brightness_and_contrast(image)


  astabc.correct('filename.jpg', abc=25, output_filename='output.jpg')
  ```



  This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.


pkgId: 450f76349659ee49113f7ca8624bd5d4a2d10387bb81020083624696737cce20
name: python-astar-utils
arch: src
version: 0.3.1
epoch: 0
release: 1
summary: Contains commonly-used utilities for AstarVienna's projects.
url: https://github.com/AstarVienna/astar-utils
rpm_license: GPL-3.0-or-later
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-astar-utils-0.3.1-1.src.rpm
checksum_type: sha256
description:
  [![Tests](https://github.com/AstarVienna/astar-utils/actions/workflows/tests.yml/badge.svg)](https://github.com/AstarVienna/astar-utils/actions/workflows/tests.yml)
  [![Poetry](https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json)](https://python-poetry.org/)
  ![dev version](https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fraw.githubusercontent.com%2FAstarVienna%2Fastar-utils%2Fmain%2Fpyproject.toml&query=%24.tool.poetry.version&label=dev%20version&color=teal)

  [![codecov](https://codecov.io/gh/AstarVienna/astar-utils/graph/badge.svg)](https://codecov.io/gh/AstarVienna/astar-utils)
  [![PyPI - Version](https://img.shields.io/pypi/v/astar-utils)](https://pypi.org/project/astar-utils/)
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/astar-utils)

  [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)

  This package is devloped and maintained by [Astar Vienna](https://github.com/AstarVienna) and contains commonly-used utilities for the group's projects to avoid both duplicating code and circular dependencies.



  The package currently contains the following public functions and classes:

  - `NestedMapping`: a `dict`-like structure supporting !-style nested keys.
  - `RecursiveNestedMapping`: a subclass of `NestedMapping` also supporting keys that reference other !-style keys.
  - `NestedChainMap`: a subclass of `collections.ChainMap` supporting instances of `RecursiveNestedMapping` as levels and referencing !-style keys across chain map levels.
  - `is_bangkey()`: simple convenience function to check if something is a !-style key.
  - `is_nested_mapping()`: convenience function to check if something is a mapping containing a least one other mapping as a value.
  - `UniqueList`: a `list`-like structure with no duplicate elements and some convenient methods.
  - `Badge` and subclasses: a family of custom markdown report badges. See docstring for details.
  - `BadgeReport`: context manager for collection and generation of report badges. See docstring for details and usage.
  - `get_logger()`: convenience function to get (or create) a logger with given `name` as a child of the universal `astar` logger.
  - `get_astar_logger()`: convenience function to get (or create) a logger with the name `astar`, which serves as the root for all A*V packages and applications.
  - `SpectralType`: a class to parse, store and compare spectral type designations.



  - `loggers.ColoredFormatter`: a subclass of `logging.Formatter` to produce colored logging messages for console output.



  Dependencies are intentionally kept to a minimum for simplicity. Current dependencies are:

  - `more-itertools`
  - `pyyaml`

  Version requirement for these dependencies can be found in the `pyproject.toml` file.


pkgId: ac9e6f2c42ed419f6068ac8043a8b0097efd3ae9d51fd4efc73263c8bf1f3a62
name: python-astarte-device-sdk
arch: src
version: 0.13.4
epoch: 0
release: 1
summary: Astarte device SDK for Python
url: https://pypi.org/project/astarte-device-sdk/
rpm_license: Apache-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-astarte-device-sdk-0.13.4-1.src.rpm
checksum_type: sha256
description:
  <!--
  Copyright 2023 SECO Mind Srl

  SPDX-License-Identifier: Apache-2.0
  -->



  Python device SDK for [Astarte](https://github.com/astarte-platform/astarte). Create Astarte devices
  with Python3.

  It integrates with asyncio to ensure a smooth developer experience and to hide complex details
  regarding threading and MQTT interactions.



  The Astarte device SDK can be obtained by running:
  ```
  pip install astarte-device-sdk
  ```



  Find more informations regarding the Astarte device SDKs in their
  [documentation page](https://docs.astarte-platform.org/device-sdks/index.html).

  There you will find additional resources such as dedicated get started guides for each supported
  language, features specifications and APIs documentation.


pkgId: da264856db2893bbfa8747a339de865d8045909d25e595a426591c7d5bf0240c
name: python-astarte-message-hub-proto
arch: src
version: 0.7.0
epoch: 0
release: 1
summary: Astarte message hub protocol buffers for Python
url: https://pypi.org/project/astarte-message-hub-proto/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-astarte-message-hub-proto-0.7.0-1.src.rpm
checksum_type: sha256
description:
  <!--
  Copyright 2023 SECO Mind Srl

  SPDX-License-Identifier: Apache-2.0
  -->



  This module provides access to the Astarte message hub protocol buffers through a Python API.



  Use `pip` to install the `astarte-message-hub-proto` package.

  Then include and use it in your sources as follows:
  ```Python
  from datetime import datetime, timezone
  import grpc

  from google.protobuf.timestamp_pb2 import Timestamp

  from astarteplatform.msghub.message_hub_service_pb2_grpc import MessageHubStub
  from astarteplatform.msghub.node_pb2 import Node
  from astarteplatform.msghub.astarte_message_pb2 import AstarteMessage
  from astarteplatform.msghub.astarte_type_pb2 import AstarteDataType, AstarteDataTypeIndividual

  grpc_channel = grpc.insecure_channel("server address")
  message_hub_stub = MessageHubStub(grpc_channel)

  message_hub_node = Node(uuid="node uuid", interfaces_json=[b"interface 1 bin", b"interface 2 bin"])
  message_hub_stream = message_hub_stub.Attach(message_hub_node)


  protobuf_value = AstarteDataType(astarte_individual=AstarteDataTypeIndividual(astarte_double=42.1))

  protobuf_timestamp = Timestamp()
  protobuf_timestamp.FromDatetime(datetime.now(tz=timezone.utc))

  msg = AstarteMessage(
      'interface_name'="interface name",
      'path'="path",
      'timestamp'=protobuf_timestamp,
      'astarte_data'=protobuf_value)
  message_hub_stub.Send(msg)


  for astarte_message in message_hub_stream:
      
      print(astarte_message.interface_name)
      print(astarte_message.path)
      print(astarte_message.WhichOneof("payload"))
  ```


pkgId: 142f0c479a55a3cc17d9b8e944ffd1bd17226a6814c9c99143141d976d25c64a
name: python-astartes
arch: src
version: 1.3.0
epoch: 0
release: 1
summary: Train:Test Algorithmic Sampling for Molecules and Arbitrary Arrays
url: https://github.com/JacksonBurns/astartes
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-astartes-1.3.0-1.src.rpm
checksum_type: sha256
description:
  MAE   1.41522   3.13435   2.17091
  RMSE  2.03062   3.73721   2.40041
  R2    0.90745   0.80787   0.78412
  ```
  Additional metrics can be passed to `generate_regression_results_dict` via the `additional_metrics` argument, which should be a dictionary mapping the name of the metric (as a `string`) to the function itself, like this:
  ```python
  from sklearn.metrics import mean_absolute_percentage_error
  add_met = {"mape": mean_absolute_percentage_error}
  grrd(sklearn_model, X, y, additional_metric=add_met)
  ```
  See the docstring for `generate_regression_results_dict` (with `help(generate_regression_results_dict)`) for more information.

  Any of the implemented sampling algorithms whose hyperparameters allow specifying the `metric` or `distance_metric` (effectively `1-metric`) can be co-opted to work with categorical data.
  Simply encode the data in a format compatible with the `sklearn` metric of choice and then call `astartes` with that metric specified:
  ```python
  from sklearn.metrics import jaccard_score
  X_train, X_test, y_train, y_test = train_test_split(
    X,
    y,
    sampler='kennard_stone',
    hopts={"metric": jaccard_score},
  )
  ```
  Other samplers which do not allow specifying a categorical distance metric did not provide a method for doing so in their original inception, though it is possible that they can be adapted for this application.
  If you are interested in adding support for categorical metrics to an existing sampler, consider opening a [Feature Request](https://github.com/JacksonBurns/astartes/issues/new?assignees=&labels=enhancement&projects=&template=feature_request.md&title=%5BFEATURE%5D%3A+)!

  The sampling algorithms implemented in `astartes` can also be directly accessed and run if it is more useful for your applications.
  In the below example, we import the Kennard Stone sampler, use it to partition a simple array, and then retrieve a sample.
  ```python
  from astartes.samplers.interpolation import KennardStone
  kennard_stone = KennardStone([[1, 2], [3, 4], [5, 6]])
  first_2_samples = kennard_stone.get_sample_idxs(2)
  ```
  All samplers in `astartes` implement a `_sample()` method that is called by the constructor (i.e. greedily) and either a `get_sampler_idxs` or `get_cluster_idxs` for interpolative and extrapolative samplers, respectively.
  For more detail on the implementaiton and design of samplers in `astartes`, see the [Developer Notes](#contributing--developer-notes) section.

  This section of the README details some of the theory behind why the algorithms implemented in `astartes` are important and some motivating examples.
  For a comprehensive walkthrough of the theory and implementation of `astartes`, follow [this link](https://github.com/JacksonBurns/astartes/raw/joss-paper/Burns-Spiekermann-Bhattacharjee_astartes.pdf) to read the companion paper (freely available and hosted here on GitHub).
  > **Note**
  > We reference open-access publications wherever possible. For articles locked behind a paywall (denoted with :small_blue_diamond:), we instead suggest reading [this Wikipedia page](https://en.wikipedia.org/wiki/Sci-Hub) and absolutely __not__ attempting to bypass the paywall.

  While much machine learning is done with a random choice between training/validation/test data, an alternative is the use of so-called "rational" splitting algorithms.
  These approaches use some similarity-based algorithm to divide data into sets.
  Some of these algorithms include Kennard-Stone ([Kennard & Stone](https://www.tandfonline.com/doi/abs/10.1080/00401706.1969.10490666) :small_blue_diamond:), Sphere Exclusion ([Tropsha et. al](https://pubs.acs.org/doi/pdf/10.1021/ci300338w) :small_blue_diamond:),as well as the OptiSim as discussed in [Applied Chemoinformatics: Achievements and Future Opportunities](https://www.wiley.com/en-us/Applied+Chemoinformatics%3A+Achievements+and+Future+Opportunities-p-9783527806546) :small_blue_diamond:.
  Some clustering-based splitting techniques have also been incorporated, such as [DBSCAN](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.1016.890&rep=rep1&type=pdf).
  There are two broad categories of sampling algorithms implemented in `astartes`: extrapolative and interpolative.
  The former will force your model to predict on out-of-sample data, which creates a more challenging task than interpolative sampling.
  See the table below for all of the sampling approaches currently implemented in `astartes`, as well as the hyperparameters that each algorithm accepts (which are passed in with `hopts`) and a helpful reference for understanding how the hyperparameters work.
  Note that `random_state` is defined as a keyword argument in `train_test_split` itself, even though these algorithms will use the `random_state` in their own work.
  Do not provide a `random_state` in the `hopts` dictionary - it will be overwritten by the `random_state` you provide for `train_test_split` (or the default if none is provided).

  | Sampler Name | Usage String | Type | Hyperparameters | Reference | Notes |
  |:---:|---|---|---|---|---|
  | Random | 'random' | Interpolative | `shuffle` | [sklearn train_test_split](https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html) Documentation | This sampler is a direct passthrough to `sklearn`'s `train_test_split`. |
  | Kennard-Stone | 'kennard_stone' | Interpolative | `metric` | Original Paper by [Kennard & Stone](https://www.tandfonline.com/doi/abs/10.1080/00401706.1969.10490666) :small_blue_diamond: | Euclidian distance is used by default, as described in the original paper. |
  | Sample set Partitioning based on joint X-Y distances (SPXY) | 'spxy' | Interpolative | `distance_metric` | Saldhana et. al [original paper](https://www.sciencedirect.com/science/article/abs/pii/S003991400500192X) :small_blue_diamond: | Extension of Kennard Stone that also includes the response when sampling distances. |
  | Mahalanobis Distance Kennard Stone (MDKS) | 'spxy' _(MDKS is derived from SPXY)_ | Interpolative | _none, see Notes_ | Saptoro et. al [original paper](https://espace.curtin.edu.au/bitstream/handle/20.500.11937/45101/217844_70585_PUB-SE-DCE-FM-71008.pdf?sequence=2&isAllowed=y) | MDKS is SPXY using Mahalanobis distance and can be called by using SPXY with `distance_metric="mahalanobis"` |
  | Scaffold | 'scaffold' | Extrapolative | `include_chirality` | [Bemis-Murcko Scaffold](https://pubs.acs.org/doi/full/10.1021/jm9602928) :small_blue_diamond: as implemented in RDKit | This sampler requires SMILES strings as input (use the `molecules` subpackage) |
  | Molecular Weight| 'molecular_weight' | Extrapolative | _none_ | ~ | Sorts molecules by molecular weight as calculated by RDKit |
  | Sphere Exclusion | 'sphere_exclusion' | Extrapolative | `metric`, `distance_cutoff` | _custom implementation_ | Variation on Sphere Exclusion for arbitrary-valued vectors. |
  | Time Based | 'time_based' | Extrapolative | _none_ | Papers using Time based splitting: [Chen et al.](https://pubs.acs.org/doi/full/10.1021/ci200615h) :small_blue_diamond:, [Sheridan, R. P](https://pubs.acs.org/doi/full/10.1021/ci400084k) :small_blue_diamond:, [Feinberg et al.](https://pubs.acs.org/doi/full/10.1021/acs.jmedchem.9b02187) :small_blue_diamond:, [Struble et al.](https://pubs.rsc.org/en/content/articlehtml/2020/re/d0re00071j) | This sampler requires `labels` to be an iterable of either date or datetime objects. |
  | Target Property | 'target_property' | Extrapolative | `descending` | ~ | Sorts data by regression target y |
  | Optimizable K-Dissimilarity Selection (OptiSim) | 'optisim' | Extrapolative | `n_clusters`, `max_subsample_size`, `distance_cutoff` | _custom implementation_ | Variation on [OptiSim](https://pubs.acs.org/doi/10.1021/ci025662h) for arbitrary-valued vectors. |
  | K-Means | 'kmeans' | Extrapolative | `n_clusters`, `n_init` | [`sklearn KMeans`](https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html) | Passthrough to `sklearn`'s `KMeans`. |
  | Density-Based Spatial Clustering of Applications with Noise (DBSCAN) | 'dbscan' | Extrapolative | `eps`, `min_samples`, `algorithm`, `metric`, `leaf_size` | [`sklearn DBSCAN`](https://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html) Documentation| Passthrough to `sklearn`'s `DBSCAN`. |
  | Minimum Test Set Dissimilarity (MTSD) | ~ | ~ | _upcoming in_ `astartes` _v1.x_ | ~ | ~ |
  | Restricted Boltzmann Machine (RBM) | ~ | ~ | _upcoming in_ `astartes` _v1.x_ | ~ | ~ |
  | Kohonen Self-Organizing Map (SOM) | ~ | ~ | _upcoming in_ `astartes` _v1.x_ | ~ | ~ |
  | SPlit Method | ~ | ~ | _upcoming in_ `astartes` _v1.x_ | ~ | ~ |

  Below are some field specific applications of `astartes`. Interested in adding a new sampling algorithm or featurization approach? See [`CONTRIBUTING.md`](./CONTRIBUTING.md).

  Machine Learning is enormously useful in chemistry-related fields due to the high-dimensional feature space of chemical data.
  To properly apply ML to chemical data for inference _or_ discovery, it is important to know a model's accuracy under the two domains.
  To simplify the process of partitioning chemical data, `astartes` implements a pre-built featurizer for common chemistry data formats.
  After installing with `pip install astartes[molecules]` one can import the new train/test splitting function like this: `from astartes.molecules import train_test_split_molecules`
  The usage of this function is identical to `train_test_split` but with the addition of new arguments to control how the molecules are featurized:
  ```python
  train_test_split_molecules(
      molecules=smiles,
      y=y,
      test_size=0.2,
      train_size=0.8,
      fingerprint="daylight_fingerprint",
      fprints_hopts={
          "fpSize": 200,
          "numBitsPerFeature": 4,
          "useHs": True,
      },
      sampler="random",
      random_state=42,
      hopts={
          "shuffle": True,
      },
  )
  ```
  To see a complete example of using `train_test_split_molecules` with actual chemical data, take a look in the `examples` directory and the brief [companion paper](https://github.com/JacksonBurns/astartes/raw/joss-paper/Burns-Spiekermann-Bhattacharjee_astartes.pdf).
  Configuration options for the featurization scheme can be found in the documentation for [AIMSim](https://vlachosgroup.github.io/AIMSim/README.html#currently-implemented-fingerprints) though most of the critical configuration options are shown above.

  `astartes` aims to be completely reproducible across different platforms, Python versions, and dependency configurations - any version of `astartes` v1.x should result in the _exact_ same splits, always.
  To that end, the default behavior of `astartes` is to use `42` as the random seed and _always_ set it.
  Running `astartes` with the default settings will always produce the exact same results.
  We have verified this behavior on Debian Ubuntu, Windows, and Intel Macs from Python versions 3.7 through 3.11 (with appropriate dependencies for each version).

  Inevitably external dependencies of `astartes` will introduce backwards-incompatible changes.
  We continually run regression tests to catch these, and will list all _known_ limitations here:
   - `sklearn` v1.3.0 introduced backwards-incompatible changes in the `KMeans` sampler that changed how the random initialization affects the results, even given the same random seed. Different version of `sklearn` will affect the performance of `astartes` and we recommend including the exact version of `scikit-learn` and `astartes` used, when applicable.
  > **Note**
  > We are limited in our ability to test on M1 Macs, but from our limited manual testing we achieve perfect reproducbility in all cases _except occasionally_ with `KMeans` on Apple silicon.
  `astartes` is still consistent between runs on the same platform in all cases, and other samplers are not impacted by this apparent bug.

  If you use `astartes` in your work please follow the link below to our (Open Access!) paper in the Journal of Open Source Software or use the "Cite this repository" button on GitHub.
  [Machine Learning Validation via Rational Dataset Sampling with astartes](https://joss.theoj.org/papers/10.21105/joss.05996)

  See [CONTRIBUTING.md](./CONTRIBUTING.md) for instructions on installing `astartes` for development, making a contribution, and general guidance on the design of `astartes`.


