# packages

pkgId: b2cbfb09439fd67c7b51644a516521bc58d481ba2613a7f90a921d91850991d6
name: python-thousandeyes-sdk-instant-tests-help
arch: noarch
version: 2.4.0
epoch: 0
release: 1
summary: Development documents and examples for thousandeyes-sdk-instant-tests
url: https://pypi.org/project/thousandeyes-sdk-instant-tests/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-thousandeyes-sdk-instant-tests-2.4.0-1.src.rpm
location_href: Packages/python-thousandeyes-sdk-instant-tests-help-2.4.0-1.noarch.rpm
checksum_type: sha256
description:
  *APIInstantTestsApi* | [**create_api_instant_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/APIInstantTestsApi.md#create_api_instant_test) | **POST** /tests/api/instant | Create API instant test
  *AgentToAgentInstantTestsApi* | [**create_agent_to_agent_instant_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/AgentToAgentInstantTestsApi.md#create_agent_to_agent_instant_test) | **POST** /tests/agent-to-agent/instant | Create agent-to-agent instant test
  *AgentToServerInstantTestsApi* | [**create_agent_to_server_instant_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/AgentToServerInstantTestsApi.md#create_agent_to_server_instant_test) | **POST** /tests/agent-to-server/instant | Create agent-to-server instant test
  *DNSSECInstantTestsApi* | [**create_dns_sec_instant_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DNSSECInstantTestsApi.md#create_dns_sec_instant_test) | **POST** /tests/dnssec/instant | Create DNSSEC instant test
  *DNSServerInstantTestsApi* | [**create_dns_server_instant_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DNSServerInstantTestsApi.md#create_dns_server_instant_test) | **POST** /tests/dns-server/instant | Create DNS server instant test
  *DNSTraceInstantTestsApi* | [**create_dns_trace_instant_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DNSTraceInstantTestsApi.md#create_dns_trace_instant_test) | **POST** /tests/dns-trace/instant | Create DNS trace instant test
  *FTPServerInstantTestsApi* | [**create_ftp_server_instant_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/FTPServerInstantTestsApi.md#create_ftp_server_instant_test) | **POST** /tests/ftp-server/instant | Create FTP server instant test
  *HTTPPageLoadInstantTestsApi* | [**create_page_load_instant_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/HTTPPageLoadInstantTestsApi.md#create_page_load_instant_test) | **POST** /tests/page-load/instant | Create HTTP page load instant test
  *HTTPServerInstantTestsApi* | [**create_http_server_instant_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/HTTPServerInstantTestsApi.md#create_http_server_instant_test) | **POST** /tests/http-server/instant | Create HTTP server instant test
  *InstantTestsApi* | [**run_instant_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/InstantTestsApi.md#run_instant_test) | **POST** /tests/{testId}/run | Run instant test
  *SIPServerInstantTestsApi* | [**create_sip_server_instant_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/SIPServerInstantTestsApi.md#create_sip_server_instant_test) | **POST** /tests/sip-server/instant | Create SIP server instant test
  *VoiceInstantTestsApi* | [**create_voice_instant_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/VoiceInstantTestsApi.md#create_voice_instant_test) | **POST** /tests/voice/instant | Create voice instant test
  *WebTransactionInstantTestsApi* | [**create_web_transaction_instant_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/WebTransactionInstantTestsApi.md#create_web_transaction_instant_test) | **POST** /tests/web-transactions/instant | Create web transactions instant test

   - [AgentBase](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/AgentBase.md)
   - [AgentInterfaces](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/AgentInterfaces.md)
   - [AgentResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/AgentResponse.md)
   - [AgentToAgentInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/AgentToAgentInstantTest.md)
   - [AgentToAgentInstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/AgentToAgentInstantTestRequest.md)
   - [AgentToAgentInstantTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/AgentToAgentInstantTestResponse.md)
   - [AgentToAgentProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/AgentToAgentProperties.md)
   - [AgentToAgentTestProtocol](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/AgentToAgentTestProtocol.md)
   - [AgentToServerInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/AgentToServerInstantTest.md)
   - [AgentToServerInstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/AgentToServerInstantTestRequest.md)
   - [AgentToServerInstantTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/AgentToServerInstantTestResponse.md)
   - [AgentToServerProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/AgentToServerProperties.md)
   - [ApiClientAuthentication](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ApiClientAuthentication.md)
   - [ApiInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ApiInstantTest.md)
   - [ApiInstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ApiInstantTestRequest.md)
   - [ApiInstantTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ApiInstantTestResponse.md)
   - [ApiPredefinedVariable](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ApiPredefinedVariable.md)
   - [ApiProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ApiProperties.md)
   - [ApiRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ApiRequest.md)
   - [ApiRequestAssertion](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ApiRequestAssertion.md)
   - [ApiRequestAssertionName](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ApiRequestAssertionName.md)
   - [ApiRequestAssertionOperator](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ApiRequestAssertionOperator.md)
   - [ApiRequestAuthType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ApiRequestAuthType.md)
   - [ApiRequestHeader](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ApiRequestHeader.md)
   - [ApiRequestMethod](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ApiRequestMethod.md)
   - [ApiRequestVariable](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ApiRequestVariable.md)
   - [CloudEnterpriseAgentType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/CloudEnterpriseAgentType.md)
   - [DnsQueryClass](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsQueryClass.md)
   - [DnsSecInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsSecInstantTest.md)
   - [DnsSecInstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsSecInstantTestRequest.md)
   - [DnsSecInstantTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsSecInstantTestResponse.md)
   - [DnsSecProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsSecProperties.md)
   - [DnsServerInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsServerInstantTest.md)
   - [DnsServerInstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsServerInstantTestRequest.md)
   - [DnsServerInstantTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsServerInstantTestResponse.md)
   - [DnsServerProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsServerProperties.md)
   - [DnsServersRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsServersRequest.md)
   - [DnsTraceInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTest.md)
   - [DnsTraceInstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTestRequest.md)
   - [DnsTraceInstantTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTestResponse.md)
   - [DnsTraceProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsTraceProperties.md)
   - [Error](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/Error.md)
   - [ExpandInstantTestOptions](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ExpandInstantTestOptions.md)
   - [FtpServerInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/FtpServerInstantTest.md)
   - [FtpServerInstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/FtpServerInstantTestRequest.md)
   - [FtpServerInstantTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/FtpServerInstantTestResponse.md)
   - [FtpServerProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/FtpServerProperties.md)
   - [FtpServerRequestType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/FtpServerRequestType.md)
   - [HttpServerBaseProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/HttpServerBaseProperties.md)
   - [HttpServerInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/HttpServerInstantTest.md)
   - [HttpServerInstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/HttpServerInstantTestRequest.md)
   - [HttpServerInstantTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/HttpServerInstantTestResponse.md)
   - [HttpServerProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/HttpServerProperties.md)
   - [InstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/InstantTest.md)
   - [InstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/InstantTestRequest.md)
   - [Link](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/Link.md)
   - [OAuth](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/OAuth.md)
   - [PageLoadInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTest.md)
   - [PageLoadInstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTestRequest.md)
   - [PageLoadInstantTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTestResponse.md)
   - [PageLoadProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/PageLoadProperties.md)
   - [RequestMethod](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/RequestMethod.md)
   - [SharedWithAccount](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/SharedWithAccount.md)
   - [SimpleAgent](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/SimpleAgent.md)
   - [SipServerInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/SipServerInstantTest.md)
   - [SipServerInstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/SipServerInstantTestRequest.md)
   - [SipServerInstantTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/SipServerInstantTestResponse.md)
   - [SipServerProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/SipServerProperties.md)
   - [SipTestProtocol](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/SipTestProtocol.md)
   - [TestAgent](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestAgent.md)
   - [TestAuthType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestAuthType.md)
   - [TestCustomHeaders](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestCustomHeaders.md)
   - [TestDirection](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestDirection.md)
   - [TestDnsServer](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestDnsServer.md)
   - [TestDnsTransportProtocol](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestDnsTransportProtocol.md)
   - [TestDscpId](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestDscpId.md)
   - [TestIpv6Policy](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestIpv6Policy.md)
   - [TestLabel](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestLabel.md)
   - [TestLinks](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestLinks.md)
   - [TestPageLoadingStrategy](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestPageLoadingStrategy.md)
   - [TestPathTraceMode](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestPathTraceMode.md)
   - [TestProbeMode](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestProbeMode.md)
   - [TestProtocol](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestProtocol.md)
   - [TestSelfLink](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestSelfLink.md)
   - [TestSipCredentials](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestSipCredentials.md)
   - [TestSslVersionId](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestSslVersionId.md)
   - [TestType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestType.md)
   - [UnauthorizedError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/UnauthorizedError.md)
   - [UnexpandedInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/UnexpandedInstantTest.md)
   - [ValidationError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ValidationError.md)
   - [ValidationErrorItem](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ValidationErrorItem.md)
   - [VoiceInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/VoiceInstantTest.md)
   - [VoiceInstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/VoiceInstantTestRequest.md)
   - [VoiceInstantTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/VoiceInstantTestResponse.md)
   - [VoiceProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/VoiceProperties.md)
   - [WebTransactionInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/WebTransactionInstantTest.md)
   - [WebTransactionInstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/WebTransactionInstantTestRequest.md)
   - [WebTransactionInstantTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/WebTransactionInstantTestResponse.md)
   - [WebTransactionProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/WebTransactionProperties.md)
  <a id="documentation-for-authorization"></a>

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

  - **Type**: Bearer authentication

  <a href="mailto:api-team@thousandeyes.com">ThousandEyes API Team </a>

rpm_license:
[cell repeats an earlier one in this file: 9155 characters]


pkgId: a9b835904284feb6148a1b253376777db39e7d88af291ee71d825c2ce1c2be16
name: python-thousandeyes-sdk-internet-insights-help
arch: noarch
version: 2.4.0
epoch: 0
release: 1
summary: Development documents and examples for thousandeyes-sdk-internet-insights
url: https://pypi.org/project/thousandeyes-sdk-internet-insights/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-thousandeyes-sdk-internet-insights-2.4.0-1.src.rpm
location_href: Packages/python-thousandeyes-sdk-internet-insights-help-2.4.0-1.noarch.rpm
checksum_type: sha256
description:
  *InternetInsightsCatalogProvidersApi* | [**filter_catalog_providers**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/InternetInsightsCatalogProvidersApi.md#filter_catalog_providers) | **POST** /internet-insights/catalog/providers/filter | List catalog providers
  *InternetInsightsCatalogProvidersApi* | [**get_catalog_provider**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/InternetInsightsCatalogProvidersApi.md#get_catalog_provider) | **GET** /internet-insights/catalog/providers/{providerId} | Retrieve a catalog provider
  *InternetInsightsOutagesApi* | [**filter_outages**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/InternetInsightsOutagesApi.md#filter_outages) | **POST** /internet-insights/outages/filter | List network and application outages
  *InternetInsightsOutagesApi* | [**get_app_outage**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/InternetInsightsOutagesApi.md#get_app_outage) | **GET** /internet-insights/outages/app/{outageId} | Retrieve application outage
  *InternetInsightsOutagesApi* | [**get_network_outage**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/InternetInsightsOutagesApi.md#get_network_outage) | **GET** /internet-insights/outages/net/{outageId} | Retrieve network outage

   - [ApiApplicationOutageAffectedLocation](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/ApiApplicationOutageAffectedLocation.md)
   - [ApiApplicationOutageAffectedServer](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/ApiApplicationOutageAffectedServer.md)
   - [ApiApplicationOutageDetails](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/ApiApplicationOutageDetails.md)
   - [ApiAsn](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/ApiAsn.md)
   - [ApiCatalogProvider](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/ApiCatalogProvider.md)
   - [ApiCatalogProviderDetails](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/ApiCatalogProviderDetails.md)
   - [ApiCatalogProviderFilter](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/ApiCatalogProviderFilter.md)
   - [ApiCatalogProviderResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/ApiCatalogProviderResponse.md)
   - [ApiNetworkOutageAffectedLocation](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/ApiNetworkOutageAffectedLocation.md)
   - [ApiNetworkOutageDetails](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/ApiNetworkOutageDetails.md)
   - [ApiOutage](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/ApiOutage.md)
   - [ApiOutageFilter](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/ApiOutageFilter.md)
   - [ApiOutagesResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/ApiOutagesResponse.md)
   - [Error](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/Error.md)
   - [InternetInsightsApiAffectedAgent](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/InternetInsightsApiAffectedAgent.md)
   - [InternetInsightsApiAffectedTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/InternetInsightsApiAffectedTest.md)
   - [Link](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/Link.md)
   - [OutageScope](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/OutageScope.md)
   - [ProviderLocation](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/ProviderLocation.md)
   - [SelfLinks](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/SelfLinks.md)
   - [UnauthorizedError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/UnauthorizedError.md)
   - [ValidationError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/ValidationError.md)
   - [ValidationErrorItem](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-internet-insights/docs/ValidationErrorItem.md)
  <a id="documentation-for-authorization"></a>

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

  - **Type**: Bearer authentication

  <a href="mailto:api-team@thousandeyes.com">ThousandEyes API Team </a>

rpm_license:
[cell repeats an earlier one in this file: 9155 characters]


pkgId: 398f01900a5661689c87bb3956df95d5c79667ef5a0ab399291e8fd7baf6e784
name: python-thousandeyes-sdk-snapshots-help
arch: noarch
version: 2.4.0
epoch: 0
release: 1
summary: Development documents and examples for thousandeyes-sdk-snapshots
url: https://pypi.org/project/thousandeyes-sdk-snapshots/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-thousandeyes-sdk-snapshots-2.4.0-1.src.rpm
location_href: Packages/python-thousandeyes-sdk-snapshots-help-2.4.0-1.noarch.rpm
checksum_type: sha256
description:
  *TestSnapshotsApi* | [**create_test_snapshot**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-snapshots/docs/TestSnapshotsApi.md#create_test_snapshot) | **POST** /tests/{testId}/snapshot | Create test snapshot

   - [AppAndSelfLinks](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-snapshots/docs/AppAndSelfLinks.md)
   - [Error](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-snapshots/docs/Error.md)
   - [Link](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-snapshots/docs/Link.md)
   - [SnapshotLinks](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-snapshots/docs/SnapshotLinks.md)
   - [SnapshotRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-snapshots/docs/SnapshotRequest.md)
   - [SnapshotResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-snapshots/docs/SnapshotResponse.md)
   - [SnapshotTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-snapshots/docs/SnapshotTest.md)
   - [TestInterval](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-snapshots/docs/TestInterval.md)
   - [TestLinks](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-snapshots/docs/TestLinks.md)
   - [TestSelfLink](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-snapshots/docs/TestSelfLink.md)
   - [TestType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-snapshots/docs/TestType.md)
   - [UnauthorizedError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-snapshots/docs/UnauthorizedError.md)
   - [UnexpandedInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-snapshots/docs/UnexpandedInstantTest.md)
   - [UnexpandedTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-snapshots/docs/UnexpandedTest.md)
   - [ValidationError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-snapshots/docs/ValidationError.md)
   - [ValidationErrorItem](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-snapshots/docs/ValidationErrorItem.md)
  <a id="documentation-for-authorization"></a>

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

  - **Type**: Bearer authentication

  <a href="mailto:api-team@thousandeyes.com">ThousandEyes API Team </a>

rpm_license:
[cell repeats an earlier one in this file: 9155 characters]


pkgId: ad8d86db57c182ba11acaf5ef70e30347c5ca74865c4bc67a7f0b6751355ecc1
name: python-thousandeyes-sdk-streaming-help
arch: noarch
version: 2.4.0
epoch: 0
release: 1
summary: Development documents and examples for thousandeyes-sdk-streaming
url: https://pypi.org/project/thousandeyes-sdk-streaming/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-thousandeyes-sdk-streaming-2.4.0-1.src.rpm
location_href: Packages/python-thousandeyes-sdk-streaming-help-2.4.0-1.noarch.rpm
checksum_type: sha256
description:
  *StreamingApi* | [**create_stream**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamingApi.md#create_stream) | **POST** /stream | Create data stream
  *StreamingApi* | [**delete_stream**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamingApi.md#delete_stream) | **DELETE** /stream/{id} | Delete a data stream
  *StreamingApi* | [**get_stream**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamingApi.md#get_stream) | **GET** /stream/{id} | Retrieve data stream
  *StreamingApi* | [**get_streams**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamingApi.md#get_streams) | **GET** /stream | List data streams
  *StreamingApi* | [**update_stream**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamingApi.md#update_stream) | **PUT** /stream/{id} | Update data stream

   - [ApiError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/ApiError.md)
   - [ApiErrorIntegrationLimits](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/ApiErrorIntegrationLimits.md)
   - [AuditOperation](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/AuditOperation.md)
   - [AuditOperationWithUpdate](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/AuditOperationWithUpdate.md)
   - [BadRequestError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/BadRequestError.md)
   - [CreateStreamResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/CreateStreamResponse.md)
   - [DataModelVersion](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/DataModelVersion.md)
   - [EndpointType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/EndpointType.md)
   - [ExporterConfig](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/ExporterConfig.md)
   - [ExporterConfigSplunkHec](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/ExporterConfigSplunkHec.md)
   - [Filters](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/Filters.md)
   - [FiltersTestTypes](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/FiltersTestTypes.md)
   - [GetStreamResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/GetStreamResponse.md)
   - [PutStream](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/PutStream.md)
   - [Signal](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/Signal.md)
   - [Stream](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/Stream.md)
   - [StreamLinks](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamLinks.md)
   - [StreamResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamResponse.md)
   - [StreamSelfLink](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamSelfLink.md)
   - [StreamType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamType.md)
   - [TagMatch](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/TagMatch.md)
   - [TagMatchObjectType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/TagMatchObjectType.md)
   - [TestMatch](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/TestMatch.md)
   - [TestMatchDomain](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/TestMatchDomain.md)
   - [TestType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/TestType.md)
   - [UnauthorizedError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/UnauthorizedError.md)
  <a id="documentation-for-authorization"></a>

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

  - **Type**: Bearer authentication

  <a href="mailto:api-team@thousandeyes.com">ThousandEyes API Team </a>

rpm_license:
[cell repeats an earlier one in this file: 9155 characters]


pkgId: ea39b073e3ea7677bb52eff6fb0d387b034a517be9707faae50a9f7005de86f9
name: python-thousandeyes-sdk-tags-help
arch: noarch
version: 2.4.0
epoch: 0
release: 1
summary: Development documents and examples for thousandeyes-sdk-tags
url: https://pypi.org/project/thousandeyes-sdk-tags/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-thousandeyes-sdk-tags-2.4.0-1.src.rpm
location_href: Packages/python-thousandeyes-sdk-tags-help-2.4.0-1.noarch.rpm
checksum_type: sha256
description:
  *TagAssignmentApi* | [**assign_tag**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagAssignmentApi.md#assign_tag) | **POST** /tags/{id}/assign | Assign tag to multiple objects
  *TagAssignmentApi* | [**assign_tags**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagAssignmentApi.md#assign_tags) | **POST** /tags/assign | Assign multiple tags to multiple objects
  *TagAssignmentApi* | [**unassign_tag**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagAssignmentApi.md#unassign_tag) | **POST** /tags/{id}/unassign | Remove tag from multiple objects
  *TagAssignmentApi* | [**unassign_tags**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagAssignmentApi.md#unassign_tags) | **POST** /tags/unassign | Remove multiple tags from multiple objects
  *TagsApi* | [**create_tag**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagsApi.md#create_tag) | **POST** /tags | Create tag
  *TagsApi* | [**create_tags**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagsApi.md#create_tags) | **POST** /tags/bulk | Create multiple tags
  *TagsApi* | [**delete_tag**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagsApi.md#delete_tag) | **DELETE** /tags/{id} | Delete tag
  *TagsApi* | [**get_tag**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagsApi.md#get_tag) | **GET** /tags/{id} | Retrieve tag
  *TagsApi* | [**get_tags**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagsApi.md#get_tags) | **GET** /tags | List tags
  *TagsApi* | [**update_tag**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagsApi.md#update_tag) | **PUT** /tags/{id} | Update tag

   - [AccessType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/AccessType.md)
   - [ApiError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/ApiError.md)
   - [Assignment](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/Assignment.md)
   - [AssignmentType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/AssignmentType.md)
   - [BulkTagAssignment](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/BulkTagAssignment.md)
   - [BulkTagAssignments](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/BulkTagAssignments.md)
   - [BulkTagResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/BulkTagResponse.md)
   - [Error](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/Error.md)
   - [ExpandTagsOptions](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/ExpandTagsOptions.md)
   - [Link](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/Link.md)
   - [ObjectType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/ObjectType.md)
   - [SelfLinks](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/SelfLinks.md)
   - [Tag](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/Tag.md)
   - [TagAssignment](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagAssignment.md)
   - [TagBulkCreateError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagBulkCreateError.md)
   - [TagInfo](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagInfo.md)
   - [Tags](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/Tags.md)
   - [UnauthorizedError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/UnauthorizedError.md)
   - [ValidationError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/ValidationError.md)
   - [ValidationErrorItem](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/ValidationErrorItem.md)
  <a id="documentation-for-authorization"></a>

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

  - **Type**: Bearer authentication

  <a href="mailto:api-team@thousandeyes.com">ThousandEyes API Team </a>

rpm_license:
[cell repeats an earlier one in this file: 9155 characters]


pkgId: 48e415a43ea2defda6b8a788783cf92b43ea0b6be89f63f9c830c74453ff6d80
name: python-thousandeyes-sdk-tests-help
arch: noarch
version: 2.4.0
epoch: 0
release: 1
summary: Development documents and examples for thousandeyes-sdk-tests
url: https://pypi.org/project/thousandeyes-sdk-tests/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-thousandeyes-sdk-tests-2.4.0-1.src.rpm
location_href: Packages/python-thousandeyes-sdk-tests-help-2.4.0-1.noarch.rpm
checksum_type: sha256
description:
  *APITestsApi* | [**create_api_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/APITestsApi.md#create_api_test) | **POST** /tests/api | Create API test
  *APITestsApi* | [**delete_api_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/APITestsApi.md#delete_api_test) | **DELETE** /tests/api/{testId} | Delete API test
  *APITestsApi* | [**get_api_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/APITestsApi.md#get_api_test) | **GET** /tests/api/{testId} | Get API test
  *APITestsApi* | [**get_api_tests**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/APITestsApi.md#get_api_tests) | **GET** /tests/api | List API tests
  *APITestsApi* | [**update_api_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/APITestsApi.md#update_api_test) | **PUT** /tests/api/{testId} | Update API test
  *AgentToAgentTestsApi* | [**create_agent_to_agent_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToAgentTestsApi.md#create_agent_to_agent_test) | **POST** /tests/agent-to-agent | Create Agent to Agent test
  *AgentToAgentTestsApi* | [**delete_agent_to_agent_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToAgentTestsApi.md#delete_agent_to_agent_test) | **DELETE** /tests/agent-to-agent/{testId} | Delete Agent to Agent test
  *AgentToAgentTestsApi* | [**get_agent_to_agent_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToAgentTestsApi.md#get_agent_to_agent_test) | **GET** /tests/agent-to-agent/{testId} | Get Agent to Agent test
  *AgentToAgentTestsApi* | [**get_agent_to_agent_tests**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToAgentTestsApi.md#get_agent_to_agent_tests) | **GET** /tests/agent-to-agent | List Agent to Agent tests
  *AgentToAgentTestsApi* | [**update_agent_to_agent_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToAgentTestsApi.md#update_agent_to_agent_test) | **PUT** /tests/agent-to-agent/{testId} | Update Agent to Agent test
  *AgentToServerTestsApi* | [**create_agent_to_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToServerTestsApi.md#create_agent_to_server_test) | **POST** /tests/agent-to-server | Create Agent to Server test
  *AgentToServerTestsApi* | [**delete_agent_to_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToServerTestsApi.md#delete_agent_to_server_test) | **DELETE** /tests/agent-to-server/{testId} | Delete Agent to Server test
  *AgentToServerTestsApi* | [**get_agent_to_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToServerTestsApi.md#get_agent_to_server_test) | **GET** /tests/agent-to-server/{testId} | Get Agent to Server test
  *AgentToServerTestsApi* | [**get_agent_to_server_tests**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToServerTestsApi.md#get_agent_to_server_tests) | **GET** /tests/agent-to-server | List Agent to Server tests
  *AgentToServerTestsApi* | [**update_agent_to_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToServerTestsApi.md#update_agent_to_server_test) | **PUT** /tests/agent-to-server/{testId} | Update Agent to Server test
  *BGPTestsApi* | [**create_bgp_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/BGPTestsApi.md#create_bgp_test) | **POST** /tests/bgp | Create BGP test
  *BGPTestsApi* | [**delete_bgp_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/BGPTestsApi.md#delete_bgp_test) | **DELETE** /tests/bgp/{testId} | Delete BGP test
  *BGPTestsApi* | [**get_bgp_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/BGPTestsApi.md#get_bgp_test) | **GET** /tests/bgp/{testId} | Get BGP test
  *BGPTestsApi* | [**get_bgp_tests**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/BGPTestsApi.md#get_bgp_tests) | **GET** /tests/bgp | List BGP tests
  *BGPTestsApi* | [**update_bgp_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/BGPTestsApi.md#update_bgp_test) | **PUT** /tests/bgp/{testId} | Update BGP test
  *DNSSECTestsApi* | [**create_dns_sec_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DNSSECTestsApi.md#create_dns_sec_test) | **POST** /tests/dnssec | Create DNSSEC test
  *DNSSECTestsApi* | [**delete_dns_sec_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DNSSECTestsApi.md#delete_dns_sec_test) | **DELETE** /tests/dnssec/{testId} | Delete DNSSEC test
  *DNSSECTestsApi* | [**get_dns_sec_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DNSSECTestsApi.md#get_dns_sec_test) | **GET** /tests/dnssec/{testId} | Get DNSSEC test
  *DNSSECTestsApi* | [**get_dns_sec_tests**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DNSSECTestsApi.md#get_dns_sec_tests) | **GET** /tests/dnssec | List DNSSEC tests
  *DNSSECTestsApi* | [**update_dns_sec_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DNSSECTestsApi.md#update_dns_sec_test) | **PUT** /tests/dnssec/{testId} | Update DNSSEC test
  *DNSServerTestsApi* | [**create_dns_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DNSServerTestsApi.md#create_dns_server_test) | **POST** /tests/dns-server | Create DNS Server test
  *DNSServerTestsApi* | [**delete_dns_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DNSServerTestsApi.md#delete_dns_server_test) | **DELETE** /tests/dns-server/{testId} | Delete DNS Server test
  *DNSServerTestsApi* | [**get_dns_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DNSServerTestsApi.md#get_dns_server_test) | **GET** /tests/dns-server/{testId} | Get DNS Server test
  *DNSServerTestsApi* | [**get_dns_server_tests**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DNSServerTestsApi.md#get_dns_server_tests) | **GET** /tests/dns-server | List DNS Server tests
  *DNSServerTestsApi* | [**update_dns_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DNSServerTestsApi.md#update_dns_server_test) | **PUT** /tests/dns-server/{testId} | Update DNS Server test
  *DNSTraceTestsApi* | [**create_dns_trace_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DNSTraceTestsApi.md#create_dns_trace_test) | **POST** /tests/dns-trace | Create DNS Trace test
  *DNSTraceTestsApi* | [**delete_dns_trace_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DNSTraceTestsApi.md#delete_dns_trace_test) | **DELETE** /tests/dns-trace/{testId} | Delete DNS Trace test
  *DNSTraceTestsApi* | [**get_dns_trace_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DNSTraceTestsApi.md#get_dns_trace_test) | **GET** /tests/dns-trace/{testId} | Get DNS Trace test
  *DNSTraceTestsApi* | [**get_dns_trace_tests**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DNSTraceTestsApi.md#get_dns_trace_tests) | **GET** /tests/dns-trace | List DNS Trace tests
  *DNSTraceTestsApi* | [**update_dns_trace_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DNSTraceTestsApi.md#update_dns_trace_test) | **PUT** /tests/dns-trace/{testId} | Update DNS Trace test
  *FTPServerTestsApi* | [**create_ftp_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/FTPServerTestsApi.md#create_ftp_server_test) | **POST** /tests/ftp-server | Create FTP Server test
  *FTPServerTestsApi* | [**delete_ftp_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/FTPServerTestsApi.md#delete_ftp_server_test) | **DELETE** /tests/ftp-server/{testId} | Delete FTP Server test
  *FTPServerTestsApi* | [**get_ftp_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/FTPServerTestsApi.md#get_ftp_server_test) | **GET** /tests/ftp-server/{testId} | Get FTP Server test
  *FTPServerTestsApi* | [**get_ftp_server_tests**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/FTPServerTestsApi.md#get_ftp_server_tests) | **GET** /tests/ftp-server | List FTP Server tests
  *FTPServerTestsApi* | [**update_ftp_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/FTPServerTestsApi.md#update_ftp_server_test) | **PUT** /tests/ftp-server/{testId} | Update FTP Server test
  *HTTPServerTestsApi* | [**create_http_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/HTTPServerTestsApi.md#create_http_server_test) | **POST** /tests/http-server | Create HTTP Server test
  *HTTPServerTestsApi* | [**delete_http_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/HTTPServerTestsApi.md#delete_http_server_test) | **DELETE** /tests/http-server/{testId} | Delete HTTP Server test
  *HTTPServerTestsApi* | [**get_http_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/HTTPServerTestsApi.md#get_http_server_test) | **GET** /tests/http-server/{testId} | Get HTTP Server test
  *HTTPServerTestsApi* | [**get_http_server_tests**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/HTTPServerTestsApi.md#get_http_server_tests) | **GET** /tests/http-server | List HTTP Server tests
  *HTTPServerTestsApi* | [**update_http_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/HTTPServerTestsApi.md#update_http_server_test) | **PUT** /tests/http-server/{testId} | Update HTTP Server test
  *PageLoadTestsApi* | [**create_page_load_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PageLoadTestsApi.md#create_page_load_test) | **POST** /tests/page-load | Create Page Load test
  *PageLoadTestsApi* | [**delete_page_load_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PageLoadTestsApi.md#delete_page_load_test) | **DELETE** /tests/page-load/{testId} | Delete Page Load test
  *PageLoadTestsApi* | [**get_page_load_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PageLoadTestsApi.md#get_page_load_test) | **GET** /tests/page-load/{testId} | Get Page Load test
  *PageLoadTestsApi* | [**get_page_load_tests**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PageLoadTestsApi.md#get_page_load_tests) | **GET** /tests/page-load | List Page Load tests
  *PageLoadTestsApi* | [**update_page_load_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PageLoadTestsApi.md#update_page_load_test) | **PUT** /tests/page-load/{testId} | Update Page Load test
  *PathVisualizationInterfaceGroupsApi* | [**create_path_vis_interface_groups**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PathVisualizationInterfaceGroupsApi.md#create_path_vis_interface_groups) | **POST** /network/path-vis/interface-groups | Create interface group for path visualization
  *PathVisualizationInterfaceGroupsApi* | [**delete_path_vis_interface_group**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PathVisualizationInterfaceGroupsApi.md#delete_path_vis_interface_group) | **DELETE** /network/path-vis/interface-groups/{interfaceGroupId} | Delete interface group
  *PathVisualizationInterfaceGroupsApi* | [**get_path_vis_interface_groups**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PathVisualizationInterfaceGroupsApi.md#get_path_vis_interface_groups) | **GET** /network/path-vis/interface-groups | List interface groups for path visualization
  *PathVisualizationInterfaceGroupsApi* | [**update_path_vis_interface_group**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PathVisualizationInterfaceGroupsApi.md#update_path_vis_interface_group) | **PUT** /network/path-vis/interface-groups/{interfaceGroupId} | Update interface group
  *SIPServerTestsApi* | [**create_sip_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SIPServerTestsApi.md#create_sip_server_test) | **POST** /tests/sip-server | Create SIP Server test
  *SIPServerTestsApi* | [**delete_sip_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SIPServerTestsApi.md#delete_sip_server_test) | **DELETE** /tests/sip-server/{testId} | Delete SIP Server test
  *SIPServerTestsApi* | [**get_sip_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SIPServerTestsApi.md#get_sip_server_test) | **GET** /tests/sip-server/{testId} | Get SIP Server test
  *SIPServerTestsApi* | [**get_sip_server_tests**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SIPServerTestsApi.md#get_sip_server_tests) | **GET** /tests/sip-server | List SIP Server tests
  *SIPServerTestsApi* | [**update_sip_server_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SIPServerTestsApi.md#update_sip_server_test) | **PUT** /tests/sip-server/{testId} | Update SIP Server test
  *TestsApi* | [**get_tests**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestsApi.md#get_tests) | **GET** /tests | List configured tests
  *VoiceTestsApi* | [**create_voice_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/VoiceTestsApi.md#create_voice_test) | **POST** /tests/voice | Create Voice test
  *VoiceTestsApi* | [**delete_voice_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/VoiceTestsApi.md#delete_voice_test) | **DELETE** /tests/voice/{testId} | Delete Voice test
  *VoiceTestsApi* | [**get_voice_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/VoiceTestsApi.md#get_voice_test) | **GET** /tests/voice/{testId} | Get Voice test
  *VoiceTestsApi* | [**get_voice_tests**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/VoiceTestsApi.md#get_voice_tests) | **GET** /tests/voice | List Voice tests
  *VoiceTestsApi* | [**update_voice_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/VoiceTestsApi.md#update_voice_test) | **PUT** /tests/voice/{testId} | Update Voice test
  *WebTransactionTestsApi* | [**create_web_transactions_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/WebTransactionTestsApi.md#create_web_transactions_test) | **POST** /tests/web-transactions | Create Web Transactions test
  *WebTransactionTestsApi* | [**delete_web_transactions_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/WebTransactionTestsApi.md#delete_web_transactions_test) | **DELETE** /tests/web-transactions/{testId} | Delete Web Transactions test
  *WebTransactionTestsApi* | [**get_web_transactions_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/WebTransactionTestsApi.md#get_web_transactions_test) | **GET** /tests/web-transactions/{testId} | Get Web Transactions test
  *WebTransactionTestsApi* | [**get_web_transactions_tests**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/WebTransactionTestsApi.md#get_web_transactions_tests) | **GET** /tests/web-transactions | List Web Transactions tests
  *WebTransactionTestsApi* | [**update_web_transactions_test**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/WebTransactionTestsApi.md#update_web_transactions_test) | **PUT** /tests/web-transactions/{testId} | Update Web Transactions test

   - [AgentBase](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentBase.md)
   - [AgentInterfaces](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentInterfaces.md)
   - [AgentResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentResponse.md)
   - [AgentToAgentInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToAgentInstantTest.md)
   - [AgentToAgentProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToAgentProperties.md)
   - [AgentToAgentTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToAgentTest.md)
   - [AgentToAgentTestProtocol](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToAgentTestProtocol.md)
   - [AgentToAgentTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToAgentTestRequest.md)
   - [AgentToAgentTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToAgentTestResponse.md)
   - [AgentToAgentTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToAgentTests.md)
   - [AgentToServerInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToServerInstantTest.md)
   - [AgentToServerProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToServerProperties.md)
   - [AgentToServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToServerTest.md)
   - [AgentToServerTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToServerTestRequest.md)
   - [AgentToServerTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToServerTestResponse.md)
   - [AgentToServerTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AgentToServerTests.md)
   - [AlertDirection](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AlertDirection.md)
   - [AlertRoundsViolationMode](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AlertRoundsViolationMode.md)
   - [AlertRule](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AlertRule.md)
   - [AlertType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/AlertType.md)
   - [ApiClientAuthentication](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiClientAuthentication.md)
   - [ApiInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiInstantTest.md)
   - [ApiPredefinedVariable](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiPredefinedVariable.md)
   - [ApiProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiProperties.md)
   - [ApiRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiRequest.md)
   - [ApiRequestAssertion](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiRequestAssertion.md)
   - [ApiRequestAssertionName](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiRequestAssertionName.md)
   - [ApiRequestAssertionOperator](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiRequestAssertionOperator.md)
   - [ApiRequestAuthType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiRequestAuthType.md)
   - [ApiRequestHeader](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiRequestHeader.md)
   - [ApiRequestMethod](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiRequestMethod.md)
   - [ApiRequestVariable](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiRequestVariable.md)
   - [ApiTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiTest.md)
   - [ApiTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiTestRequest.md)
   - [ApiTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiTestResponse.md)
   - [ApiTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiTests.md)
   - [BaseBgpTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/BaseBgpTest.md)
   - [BaseRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/BaseRequest.md)
   - [BaseTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/BaseTest.md)
   - [BgpTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/BgpTest.md)
   - [BgpTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/BgpTestRequest.md)
   - [BgpTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/BgpTestResponse.md)
   - [BgpTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/BgpTests.md)
   - [CloudEnterpriseAgentType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/CloudEnterpriseAgentType.md)
   - [DnsQueryClass](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsQueryClass.md)
   - [DnsSecInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsSecInstantTest.md)
   - [DnsSecProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsSecProperties.md)
   - [DnsSecTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsSecTest.md)
   - [DnsSecTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsSecTestRequest.md)
   - [DnsSecTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsSecTestResponse.md)
   - [DnsSecTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsSecTests.md)
   - [DnsServerInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsServerInstantTest.md)
   - [DnsServerProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsServerProperties.md)
   - [DnsServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsServerTest.md)
   - [DnsServerTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsServerTestRequest.md)
   - [DnsServerTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsServerTestResponse.md)
   - [DnsServerTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsServerTests.md)
   - [DnsServersRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsServersRequest.md)
   - [DnsTraceInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsTraceInstantTest.md)
   - [DnsTraceProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsTraceProperties.md)
   - [DnsTraceTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsTraceTest.md)
   - [DnsTraceTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsTraceTestRequest.md)
   - [DnsTraceTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsTraceTestResponse.md)
   - [DnsTraceTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsTraceTests.md)
   - [Error](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/Error.md)
   - [ExpandBgpTestOptions](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ExpandBgpTestOptions.md)
   - [ExpandTestOptions](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ExpandTestOptions.md)
   - [FtpServerInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/FtpServerInstantTest.md)
   - [FtpServerProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/FtpServerProperties.md)
   - [FtpServerRequestType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/FtpServerRequestType.md)
   - [FtpServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/FtpServerTest.md)
   - [FtpServerTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/FtpServerTestRequest.md)
   - [FtpServerTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/FtpServerTestResponse.md)
   - [FtpServerTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/FtpServerTests.md)
   - [HttpServerBaseProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/HttpServerBaseProperties.md)
   - [HttpServerInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/HttpServerInstantTest.md)
   - [HttpServerProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/HttpServerProperties.md)
   - [HttpServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/HttpServerTest.md)
   - [HttpServerTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/HttpServerTestRequest.md)
   - [HttpServerTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/HttpServerTestResponse.md)
   - [HttpServerTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/HttpServerTests.md)
   - [InstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/InstantTest.md)
   - [InterfaceGroup](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/InterfaceGroup.md)
   - [InterfaceGroups](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/InterfaceGroups.md)
   - [Link](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/Link.md)
   - [Monitor](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/Monitor.md)
   - [MonitorType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/MonitorType.md)
   - [MonitorsRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/MonitorsRequest.md)
   - [OAuth](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/OAuth.md)
   - [PageLoadInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PageLoadInstantTest.md)
   - [PageLoadProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PageLoadProperties.md)
   - [PageLoadTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PageLoadTest.md)
   - [PageLoadTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PageLoadTestRequest.md)
   - [PageLoadTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PageLoadTestResponse.md)
   - [PageLoadTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PageLoadTests.md)
   - [RequestMethod](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/RequestMethod.md)
   - [SelfLinks](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SelfLinks.md)
   - [SensitivityLevel](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SensitivityLevel.md)
   - [Severity](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/Severity.md)
   - [SharedWithAccount](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SharedWithAccount.md)
   - [SimpleAgent](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SimpleAgent.md)
   - [SimpleTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SimpleTest.md)
   - [SipServerInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SipServerInstantTest.md)
   - [SipServerProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SipServerProperties.md)
   - [SipServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SipServerTest.md)
   - [SipServerTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SipServerTestRequest.md)
   - [SipServerTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SipServerTestResponse.md)
   - [SipServerTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SipServerTests.md)
   - [SipTestProtocol](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SipTestProtocol.md)
   - [TestAgentRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestAgentRequest.md)
   - [TestAuthType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestAuthType.md)
   - [TestCustomHeaders](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestCustomHeaders.md)
   - [TestDirection](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestDirection.md)
   - [TestDnsServer](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestDnsServer.md)
   - [TestDnsTransportProtocol](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestDnsTransportProtocol.md)
   - [TestDscpId](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestDscpId.md)
   - [TestHttpInterval](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestHttpInterval.md)
   - [TestInterval](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestInterval.md)
   - [TestIpv6Policy](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestIpv6Policy.md)
   - [TestLabel](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestLabel.md)
   - [TestLinks](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestLinks.md)
   - [TestMonitorsProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestMonitorsProperties.md)
   - [TestPageLoadingStrategy](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestPageLoadingStrategy.md)
   - [TestPathTraceMode](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestPathTraceMode.md)
   - [TestProbeMode](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestProbeMode.md)
   - [TestProtocol](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestProtocol.md)
   - [TestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestRequest.md)
   - [TestSelfLink](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestSelfLink.md)
   - [TestSipCredentials](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestSipCredentials.md)
   - [TestSslVersionId](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestSslVersionId.md)
   - [TestSubInterval](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestSubInterval.md)
   - [TestType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestType.md)
   - [Tests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/Tests.md)
   - [UnauthorizedError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnauthorizedError.md)
   - [UnexpandedAgentToAgentTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedAgentToAgentTest.md)
   - [UnexpandedAgentToServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedAgentToServerTest.md)
   - [UnexpandedApiTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedApiTest.md)
   - [UnexpandedBgpTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedBgpTest.md)
   - [UnexpandedDnsSecTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedDnsSecTest.md)
   - [UnexpandedDnsServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedDnsServerTest.md)
   - [UnexpandedDnsTraceTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedDnsTraceTest.md)
   - [UnexpandedFtpServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedFtpServerTest.md)
   - [UnexpandedHttpServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedHttpServerTest.md)
   - [UnexpandedInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedInstantTest.md)
   - [UnexpandedPageLoadTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedPageLoadTest.md)
   - [UnexpandedSipServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedSipServerTest.md)
   - [UnexpandedTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedTest.md)
   - [UnexpandedVoiceTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedVoiceTest.md)
   - [UnexpandedWebTransactionTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedWebTransactionTest.md)
   - [UpdateBgpTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UpdateBgpTestRequest.md)
   - [UpdateSipServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UpdateSipServerTest.md)
   - [ValidationError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ValidationError.md)
   - [ValidationErrorItem](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ValidationErrorItem.md)
   - [VoiceInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/VoiceInstantTest.md)
   - [VoiceProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/VoiceProperties.md)
   - [VoiceTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/VoiceTest.md)
   - [VoiceTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/VoiceTestRequest.md)
   - [VoiceTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/VoiceTestResponse.md)
   - [VoiceTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/VoiceTests.md)
   - [WebTransactionInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/WebTransactionInstantTest.md)
   - [WebTransactionProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/WebTransactionProperties.md)
   - [WebTransactionTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/WebTransactionTest.md)
   - [WebTransactionTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/WebTransactionTestRequest.md)
   - [WebTransactionTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/WebTransactionTestResponse.md)
   - [WebTransactionTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/WebTransactionTests.md)
  <a id="documentation-for-authorization"></a>

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

  - **Type**: Bearer authentication

  <a href="mailto:api-team@thousandeyes.com">ThousandEyes API Team </a>

rpm_license:
[cell repeats an earlier one in this file: 9155 characters]


pkgId: 56fe87ce1c3cc33dabedad6121448fd0ba849ebc22894604fb644b5ea9407dfa
name: python-thousandeyes-sdk-usage-help
arch: noarch
version: 2.4.0
epoch: 0
release: 1
summary: Development documents and examples for thousandeyes-sdk-usage
url: https://pypi.org/project/thousandeyes-sdk-usage/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-thousandeyes-sdk-usage-2.4.0-1.src.rpm
location_href: Packages/python-thousandeyes-sdk-usage-help-2.4.0-1.noarch.rpm
checksum_type: sha256
description:
  *QuotasApi* | [**assign_organizations_account_groups_quotas**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/QuotasApi.md#assign_organizations_account_groups_quotas) | **POST** /quotas/account-groups/assign | Create or update accout group quotas
  *QuotasApi* | [**assign_organizations_quotas**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/QuotasApi.md#assign_organizations_quotas) | **POST** /quotas/assign | Create or update organizations quotas
  *QuotasApi* | [**get_quotas**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/QuotasApi.md#get_quotas) | **GET** /quotas | Get organization and account group usage quota
  *QuotasApi* | [**unassign_organizations_account_groups_quotas**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/QuotasApi.md#unassign_organizations_account_groups_quotas) | **POST** /quotas/account-groups/unassign | Remove account group quotas from organizations
  *QuotasApi* | [**unassign_organizations_quotas**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/QuotasApi.md#unassign_organizations_quotas) | **POST** /quotas/unassign | Remove organization quotas
  *UsageApi* | [**get_enterprise_agents_units_usage**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/UsageApi.md#get_enterprise_agents_units_usage) | **GET** /usage/units/enterprise-agents | Get enterprise agent usage
  *UsageApi* | [**get_tests_units_usage**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/UsageApi.md#get_tests_units_usage) | **GET** /usage/units/tests | Get cloud and enterprise agents units usage
  *UsageApi* | [**get_usage**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/UsageApi.md#get_usage) | **GET** /usage | Get usage information for the last month

   - [AccountGroupQuota](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/AccountGroupQuota.md)
   - [EndpointAgentsEmbedded](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/EndpointAgentsEmbedded.md)
   - [EndpointAgentsEssentials](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/EndpointAgentsEssentials.md)
   - [EndpointAgentsUsage](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/EndpointAgentsUsage.md)
   - [EnterpriseAgentUnits](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/EnterpriseAgentUnits.md)
   - [EnterpriseAgentUnitsByTestOwnerAccountGroup](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/EnterpriseAgentUnitsByTestOwnerAccountGroup.md)
   - [EnterpriseAgents](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/EnterpriseAgents.md)
   - [EnterpriseAgentsUsage](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/EnterpriseAgentsUsage.md)
   - [Error](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/Error.md)
   - [ExpandUsageOptions](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/ExpandUsageOptions.md)
   - [Link](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/Link.md)
   - [OrganizationQuota](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/OrganizationQuota.md)
   - [OrganizationQuotaAssignment](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/OrganizationQuotaAssignment.md)
   - [OrganizationQuotaUnassignment](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/OrganizationQuotaUnassignment.md)
   - [OrganizationsQuotasAssign](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/OrganizationsQuotasAssign.md)
   - [OrganizationsQuotasUnassign](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/OrganizationsQuotasUnassign.md)
   - [PaginationLinks](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/PaginationLinks.md)
   - [Quota](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/Quota.md)
   - [Quotas](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/Quotas.md)
   - [QuotasAssignRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/QuotasAssignRequest.md)
   - [QuotasAssignResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/QuotasAssignResponse.md)
   - [QuotasUnassign](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/QuotasUnassign.md)
   - [SelfLinks](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/SelfLinks.md)
   - [TestUsage](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/TestUsage.md)
   - [TestsUsage](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/TestsUsage.md)
   - [UnauthorizedError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/UnauthorizedError.md)
   - [UnitsByTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/UnitsByTests.md)
   - [Usage](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/Usage.md)
   - [UsageDetails](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/UsageDetails.md)
   - [UsageQuota](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/UsageQuota.md)
   - [ValidationError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/ValidationError.md)
   - [ValidationErrorItem](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-usage/docs/ValidationErrorItem.md)
  <a id="documentation-for-authorization"></a>

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

  - **Type**: Bearer authentication

  <a href="mailto:api-team@thousandeyes.com">ThousandEyes API Team </a>

rpm_license:
[cell repeats an earlier one in this file: 9155 characters]


pkgId: ab24f0d9bcbd80ba02881f3ab954a42c54e3bd8c4de283be1ab73f528a41014c
name: python-threadfluent-help
arch: noarch
version: 0.1
epoch: 0
release: 1
summary: Development documents and examples for threadfluent
url: https://threadfluent.readme.org/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-threadfluent-0.1-1.src.rpm
location_href: Packages/python-threadfluent-help-0.1-1.noarch.rpm
checksum_type: sha256
description:
  You can use http requests and threading same time with additional features


  install threadfluent using `pip`:

  ```bash
  $ pip install threadfluent
  ```


pkgId: 010ea939de241d7fdf5f4ca56c4a36e3e8b2b2642172606583d4dbd01cdd9478
name: python-threed-optix-help
arch: noarch
version: 5.0.32
epoch: 0
release: 1
summary: Development documents and examples for threed-optix
url: https://3doptix.com
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-threed-optix-5.0.32-1.src.rpm
location_href: Packages/python-threed-optix-help-5.0.32-1.noarch.rpm
checksum_type: sha256
description:
  3DOptix’s innovative GPU and cloud-based ray tracing engine can trace billions of rays per second, faster than any other simulation software on the market.
  Our easy-to-use application enables you to easily design both simple and complex optical systems and make smart decisions based on real data.
  3DOptix Warehouse is the first ever cloud-based workspace for sharing optical designs. With numerous designs available, the 3DOptix Warehouse offers engineers an unparalleled resource for exploring new ideas, discovering innovative solutions, and finding great starting points for their own designs.



  Our SDK is released in a beta version and has only limited features support at the moment.
  We are working on supporting more features and you can expect new versions to come out soon.

  Complete manual can be found in 3DOptix application:
  https://simulation.3doptix.com/ > "help" > "API"



  3DOptix python package installation is available using PyPi:

  ```bash
  pip install threed-optix
  ```



  ```python
  import threed_optix as tdo


  api_key = '<your_api_key>'


  api = tdo.Client(api_key)

  ```

  > **Note**
  > The rest of the usage instructions can be found in 3DOptix simulation interface under "Help > API"



  Get your API key from 3DOptix user interface (under "user settings"):

  - Click on your email, and choose **"user settings"** in the drop-down
    ![User settings](https://i.yourimageshare.com/MyBdTqNzyQ.webp "User settings")
  - On the buttom of the settings manu, click on **"API"**
    ![API settings](https://i.yourimageshare.com/IbcB26QfJh.webp "API settings")
  - **Copy** your API key
    ![Get API key](https://i.yourimageshare.com/tPq7LC8Qfy.webp "Get API key")



  3DOptix API is available with [MIT License](https://choosealicense.com/licenses/mit/).


pkgId: 34e436a030e7b310dc07fd2db5ee27ced1e56ef62231927d0ee583644d75a2c0
name: python-threedi-cmd-help
arch: noarch
version: 0.2
epoch: 0
release: 1
summary: Development documents and examples for threedi-cmd
url: https://pypi.org/project/threedi-cmd/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-threedi-cmd-0.2-1.src.rpm
location_href: Packages/python-threedi-cmd-help-0.2-1.noarch.rpm
checksum_type: sha256
description:
  The 3Di command line client allows for

   - Defining and running 3Di scenarios from the command line.
   - Assembling different scenarios as a "suite" that will be run in batch.
   - Management commands, for instance to list currently running simulations.



  There are different entry points for the 3Di command line client. The main one being

  ```shell script
  $ 3Di_cmd --help

  Usage: 3Di_cmd [OPTIONS] COMMAND [ARGS]...

  Options:
    --install-completion [bash|zsh|fish|powershell|pwsh]
                                    Install completion for the specified shell.
    --show-completion [bash|zsh|fish|powershell|pwsh]
                                    Show completion for the specified shell, to
                                    copy it or customize the installation.

    --help                          Show this message and exit.

  Commands:
    api        Interact with with the 3Di API
    live       Get real time updates of running simulations
    scenarios  Manage your local scenarios

  ```
  The output above shows the three sub-commands `api`, `live` and `scenarios`. Those are all commands from
  the main client. Whenever you install plugins this list can be appended. You can even append this list yourself
  by writing your own plugin! How to go about doing that, explains the plugins section.


  You can invoke the sub-commands also directly, e.g.

  ```shell script
  $ api --help
  Usage: api [OPTIONS] COMMAND [ARGS]...

  Options:
    --endpoint [localhost|staging|production]
                                    [default: production]
    --install-completion [bash|zsh|fish|powershell|pwsh]
                                    Install completion for the specified shell.
    --show-completion [bash|zsh|fish|powershell|pwsh]
                                    Show completion for the specified shell, to
                                    copy it or customize the installation.

    --help                          Show this message and exit.

  Commands:
    models         List available threedimodels
    organisations  List available organisations
    results        Download results of a simulation
    run-scenario   Run a scenario
    settings       Set default settings
    simulations    List simulations
   ```




  `python >= 3.10`





  ```
  pip install --user threedi-cmd
  ```



  The 3Di command client has it's own plugin ecosystem. The commands described above are the client core that can
  be extended by installing 3Di command client packages into the same environment.

  An example: You have a virtual environment `/home/you/.virtualenvs/3di/bin/python` and you install the 3Di command client
  using pip

  ```shell script
  pip install threedi-cmd
  ```


  If you want to add the statistics commands, you'll install the threedi-cmd-statistics package

  ```shell script
  pip install threedi-cmd-statistics
  ```

  Now run `3Di_cmd api` again. Notice the `statistics` and `customers` commands that has been added to the commands
  overview; they have added through the plugin you just installed.

  ```shell script
  Usage: 3Di_cmd api [OPTIONS] COMMAND [ARGS]...

    Interact with with the 3Di API

  Options:
    --endpoint [localhost|staging|production]
                                    [default: production]
    --help                          Show this message and exit.

  Commands:
    customers      List 3Di customers
    models         List available threedimodels
    organisations  List available organisations
    results        Download results of a simulation
    run-scenario   Run a scenario
    settings       Set default settings
    simulations    List simulations
    statistics     3Di API statistics, like session counts etc
  ```




    - https://github.com/nens/threedi-cmd-statistics/




  The first thing to know is that the plugin discovering mechanism is [based on a naming convention](https://packaging.python.org/guides/creating-and-discovering-plugins/).
  All plugin packages must start with **threedi_cmd_**, otherwise the main programme will not be able to discover the
  package and add the commands to the client.


  The commands of the plugin package itself must be [typer](https://typer.tiangolo.com/) apps.

  The threedi-cmd packages ships with two objects that are used to define and register the plugin apps.

  ```python
  @dataclass
  class AppMeta:
      app: typer.Typer
      name: str
      help: str
      add_to: Optional[str] = ""


  @dataclass
  class AppRegistry:
      apps: Dict[str, AppMeta]
    ```

  So let's say you have an plugin package that is called `threedi-cmd-queue` that implements a single app called `queue_app`.
  You would need to the following for the threedi-cmd client to pick the command up.



  ```python
  """threedi_cmd_queue/app_definitions.py"""


  from threedi_cmd.plugins.models import AppMeta, AppRegistry

  from threedi_cmd_queue.commands.apps import queue_app


  queues_meta = AppMeta(
      app=queue_app,
      name="queues",
      help="3Di API queues",
      add_to="api"
  )


  registry = AppRegistry(
      apps={queues_meta.name : queues_meta}
  )

  ```

  Lastly, make sure the registry is available through your **top level** `__init__.py`. Following our example the
  method would reside in  `threedi-cmd-queue/threedi_cmd_queue/__init__.py`

  ```python
  """Top-level package for threedi_cmd_queue."""

  from threedi_cmd_queue.app_definitions import registry

  ````


  That's it. Publish your package to [pypi](https://pypi.org/) so that is pip installable.

rpm_license:
  MIT License  Copyright (c) 2020, Lars Claussen  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: 1db185fa315a0e2953776e03afd72a0efedd7d0ffa1233ee900151bfa883e933
name: python-threedi-schema-help
arch: noarch
version: 0.228.3
epoch: 0
release: 1
summary: Development documents and examples for threedi-schema
url: https://pypi.org/project/threedi-schema/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-threedi-schema-0.228.3-1.src.rpm
location_href: Packages/python-threedi-schema-help-0.228.3-1.noarch.rpm
checksum_type: sha256
description:
  The schema of 3Di schematisation files.
  This project exposes:
  - A ``ThreediDatabase`` object to interact with schematisation files.
  - A ``ModelSchema`` object (``ThreediDatabase().schema``) for adapting
    schema versions (called "migration").
  - The 3Di schema as SQLAlchemy models and python Enum classes.\*
  \*This package exposes SQLAlchemy models of the
  schematisation files directly. A minor release of this package may
  change these models and will be backwards incompatible.
  If the SQLAlchemy models are used, we strongly advise to fix the
  minor version as follows: ``threedi-schema==0.214.*``. Otherwise, just
  fixing the major version is sufficient.


pkgId: 70715eb6b32db8937d479a5ad2786024e2368ff7ce162509bea24a8947325639
name: python-threefive3-help
arch: noarch
version: 3.0.3
epoch: 0
release: 1
summary: Development documents and examples for threefive3
url: https://github.com/superkabuki/scte35
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-threefive3-3.0.3-1.src.rpm
location_href: Packages/python-threefive3-help-3.0.3-1.noarch.rpm
checksum_type: sha256
description:
  threefive continued.  SCTE-35 for the People.

  * Does not generate Fatal errors, it won't break your process.
  * Displays what is in error and how to correct it.
  * Works in the cli
  * Works in code.
  ![image](https://github.com/user-attachments/assets/581e0081-0c9d-4f9c-87a2-dd7f4cf3ce8c)






  * python3 via pip
  ```rebol
  python3 -mpip install threefive3
  ```
  * pypy3
  ```rebol
  pypy3 -mpip install threefive3
  ```
  * from the git repo
  ```rebol
  git clone https://github.com/superkabuki/scte35.git
  cd  scte35
  make install
  ```
  ___



  > The cli audetects data being available on stdin and that allows it to autodetect the SCTE-35 format as well as MPEGTS steams. Now every SCTE-35 data format, except hls, is autodetected on the commandline, as well as stdin.HLS requires the `hls` ketyword.



  * [__SCTE-35 Inputs__](#inputs)
  * [__SCTE-35 Outputs__](#outputs)
  * [__Parse __MPEGTS__ streams for __SCTE-35__](#streams)
  * [Parse __SCTE-35__ in __hls__](#hls)
  * [Display __MPEGTS__ __iframes__](#iframes)
  * [Display raw __SCTE-35 packets__ from __video streams__](#packets)
  * [__Repair SCTE-35 streams__ changed to __bin data__ by __ffmpeg__](#sixfix)



  * the cli can __decode SCTE-35__ from
   * [__Base64__](#base64)
   * [__Hex,__](#hex)
   * [__HLS,__](#hls)
   * [__JSON,__](#json)
   * [__Xml,__](#xml)
   * [__Xml+Bin__](#xmlbin)
   * [__MPEGTS Streams__](#streams)

  * Most __inputs__ are __auto-detected.__
  * __stdin__ is __auto selected__ and __auto detected.__
  * __SCTE-35 data is printed to stderr__
  * __stdout is used when piping video__

  * parse SCTE-35 encoded in Base64
  ```rebol
  threefive3 '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU='
  ```


  * parse SCTE-35 encoded in Hex
  ```rebol
  threefive3 0xfc302c00000003289800fff00a05000000017f5f999901010011020f43554549000000007f8001003500002d974195
  ```



  * parse SCTE-35 from HLS manifests and segments
  ```rebol
  threefive3 hls https://example.com/master.m3u8
  ```



  ```rebol
  cat json.json | threefive3
  ```

  * you can make a xml.xml file like this:
    * redirect 2 (stderr) to the file
  ```awk
  ./threefive3  '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU=' xml 2> xml.xml
  ```
  * pass in
  ```rebol
  threefive3  < xml.xml
  ```


  ```rebol
  threefive3 < xmlbin.xml
  ```
  ___


   * the cli can __encode SCTE-35__ to
   * [__Base64__](#base64-1)
   * [__Bytes__](#bytes)
   * [__Hex,__](#hex-1)
   * [__HLS,__](#hls-1)
   * [__JSON,__](#json-1)
   * [__Xml,__](#xml-1)
   * [__Xml+Bin__](#xmlbin-1)

  * default output is `json`


  ```rebol
  threefive3 '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU='
  ```


  ```rebol
  threefive3 '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU=' base64
  ```

  ```rebol
  threefive3 '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU=' bytes
  ```

  ```rebol
  threefive3 '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU=' hex
  ```

  ```rebol
  threefive3 '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU=' int
  ```

  ```rebol
  threefive3 '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU=' xml
  ```

  ```rebol
  threefive3 '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU=' xmlbin
  ```
  ___




  ```rebol
  threefive3 video.ts
  ```

  ```rebol
  threefive3 https://example.com/master.m3u8
  ```

  ```rebol
  threefive3 udp://@235.35.3.5:9999
  ```

  ```rebol
  cat video.ts | threefive3
  ```

  ```rebol
  threefive3 udp://10.0.0.7:5555
  ```
  ___


  * parse hls manifests and segments for SCTE-35
  ```rebol
  threefive3 hls https://example.com/master.m3u8
  ```
  ___

  * Show iframes PTS in an MPEGTS video
  ```rebol
  threefive3 iframes https://example.com/video.ts
  ```
  ___

  * Print raw SCTE-35 packets from multicast mpegts video
  ```rebol
  threefive3 packets udp://@235.35.3.5:3535
  ```
  ___

  * Parse a https stream and write raw video to stdout
  ```rebol
  threefive3 proxy video.ts
  ```
  ___

  * Print PTS from mpegts video
  ```rebol
   threefive3 pts video.ts
  ```
  ___

  * Parse a stream, write pts,write SCTE-35 Cues to sidecar.txt
  ```rebol
    threefive3 sidecar video.ts
  ```
  ___

  * Fix SCTE-35 data mangled by ffmpeg
  ```rebol
   threefive3 sixfix video.ts
  ```
  ___


  * Probe mpegts video _( kind of like ffprobe )_
  ```rebol
   threefive3 show video.ts
  ```
  ___

  * Show version
  ```rebol
   threefive3 version
  ```
  ___

  * Help
  ```rebol
   threefive3 help
  ```
  ___


pkgId: 31d0a5b35e222fc888f4cee0facf4679c7f0c5b6e0da41af5dc804700ea67a31
name: python-thumbny-help
arch: noarch
version: 1.0.1
epoch: 0
release: 1
summary: Development documents and examples for thumbny
url: https://github.com/maltarouti/thumbny
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-thumbny-1.0.1-1.src.rpm
location_href: Packages/python-thumbny-help-1.0.1-1.noarch.rpm
checksum_type: sha256
description:
  A social media simple thumbnails creator




  Help command:
  ```bash
  thumbny --help
  usage: thumbny [-h] {create,delete,generate,templates} ...

  positional arguments:
    {create,delete,generate,templates}
      create              Create a new template
      delete              Delete a template
      generate            Generate a thumbnail
      templates           List all templates

  options:
    -h, --help            show this help message and exit
  ```

  Create a template:
  ```bash
  thumbny create -d \
  '{
      "key": "youtube",
      "name": "sample thumbnail",
      "width": 1280,
      "height": 720,
      "background_color": "#ffffff",
      "labels": [
          {
              "key": "title",
              "content": "Sample",
              "position": {
                  "key": "relative",
                  "value": "top-center"
              },
              "alignment": "center",
              "font_color": "#333333",
              "font_size": 36
          }
      ]
  }'
  ```

  Use a template:
  ```bash
  thumbny generate -d \
  '{
    "name": "Test",
    "template-key": "youtube",
    "labels": [
      {
        "key": "title",
        "value": "Hello YouTube"
      }
    ]
  }'
  ```

  To remove a template:
  ```bash
  thumbny delete -d '{"name": "template-name"}'
  ```

  To list all templates info:
  ```bash
  thumbny info -d '{"name": "template-name"}'
  ```

  To list all templates:
  ```bash
  thumbny templates
  ```


pkgId: c22fb49a7b367de13de950cf4c01732073c0cd89824cf14c0eea7b221b82c64f
name: python-thunder-ase-help
arch: noarch
version: 0.9.2
epoch: 0
release: 1
summary: Development documents and examples for thunder-ase
url: https://github.com/thunder-dft/thunder-ase
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-thunder-ase-0.9.2-1.src.rpm
location_href: Packages/python-thunder-ase-help-0.9.2-1.noarch.rpm
checksum_type: sha256
description:
  [![Upload Python Package](https://github.com/thunder-dft/thunder-ase/actions/workflows/python-publish.yml/badge.svg)](https://github.com/thunder-dft/thunder-ase/actions/workflows/python-publish.yml)




  The interface of ASE for FIREBALL.

  [FIREBALL](https://fireball-dft.org) is an open source and high efficiency DFT software based on local-orbital ab-initio method, allows for the simulation very large supercells of thousands of atoms. [ASE](https://wiki.fysik.dtu.dk/ase/index.html) is a popular python package for atomic structure modeling. ASE provide interfaces with many QM and MM software. This `thunder-ase` package is not only the ASE interface for FIREBALL, but also provides many other useful functions.

  ![thunder-ase-framework](./Docs/img/thunder-ase-framework.jpeg)



  `pip install -U thunder-ase`



  * ase (version <= 3.22.1, there is a bug for later version.)
  * spglib
  * dftd4 and dftd4-python for DFT-D4 (optional)





  ```Python
  from thunder_ase.fireball import Fireball
  from ase.build import molecule

  atoms = molecule('C6H6')
  Fdata_path = 'YOUR_FDATA_PATH'

  kwargs = {'iwriteout_charges': 1,  # Writing out the charges.
            'efermi_T': 200.0,
            'ipi': 1, # use i-PI socket protocol. Default is 0. Recommended for optimization and MD.
            }

  calc = Fireball(command='YOUR_PATH for fireball-ase.x',
                  Fdata_path=Fdata_path,
                  **kwargs)
  atoms.calc = calc

  e0 = atoms.get_potential_energy()
  efermi = atoms.calc.get_fermi_level()

  print("The energy is {:.3f} eV.".format(e0))
  print("The Fermi Level is {:.3f} eV.".format(efermi))


  calc.minimize(atoms, fmax=0.1, method='MDMin')

  print("The energy for optimized structure is {:.3f} eV.".format(atoms.get_potential_energy()))
  ```



  See
  * [DFT-D3 example](examples/6_Benzene_DFT-D3/Benzene_DFT-D3.ipynb)
  * [DFT-D4 example](examples/6_Benzene_DFT-D4/Benzene_DFT-D4.ipynb).

  More info:
  * [DFT-D3 manual](https://www.chemiebn.uni-bonn.de/pctc/mulliken-center/software/dft-d3/get-the-current-version-of-dft-d3)
  * [DFT-D3 in ASE](https://wiki.fysik.dtu.dk/ase/ase/calculators/dftd3.html)
  * [DFT-D4 with ASE support](https://dftd4.readthedocs.io/en/latest/reference/ase.html)




  * `qstate` : The charge state of the system. Default is 0. Positive values mean add extra electrons, negatives mean remove electrons.
  * `efermi_t`: Smearing temperature at Fermi level. Default is 100.0, which is about 0.0086 eV. For metal system, larger value is recommended.
  * `max_scf_iterations_set`: Scf steps maximum. Default is 50.
  * `scf_tolerance_set`: Scf tolerance of charge. Default is 1.0E-6. Smaller value is recommended for higher precision, e.g. 1.0E-8.
  * `beta_set`: Broyden’s mix factor of charges. Default is 0.08.
  * `ecut_set`: To control mesh grid density. Default is 200.0.
  * `iwriteout_charges`: Write out charges. Default is  0 (False).

  **The following keywords only for Thunder-ASE**

  * `kpt_size`: Size of k point sampling. Default is None for molecules and [1, 1, 1] for crystals.
  * `kpt_offset`: Offset for k point sampling. Default is None for molecules and [0., 0., 0.] for crystals.
  * `kpt_interval`: Define kpoint sampling by the interval. Default is None.
  * `kpt_path`: K points path to obtain band structure. Default is None. See more in [`ase.dft.kpoints.BandPath`](https://wiki.fysik.dtu.dk/ase/ase/dft/kpoints.html#band-path).
  * `nkpt`: Number of kpoints on path. Default is None. Used if `kpt_path` is defined by string.
  * `kpt_reduced`: Whether reduce the k points. Default is True.
  * `kpt_gamma`: . Gamma centre mesh. Default is True.



  * `iconstraint_rcm`: Whether shifts molecule to center of mass (COM) before the simulation. Default is 1 (True).
  * `ifix_neighbors`: Fix the neighbor list of the system to initial structure. Default is  0 (False).
  * `ifix_charges`: Fix the charges of the system to initial structure. Default is  0 (False). This is useful sometimes for very unreasonable initial structures.
  * `iwriteout_me_sandh`: Write out overlap (S) and Hamiltonian (H) matrix. Default is 0 (False).
  * `iwriteout_cdcoeffs`: Write out orbital coefficients. Default is 0 (False).
  * `iwriteout_density`: Write out density matrix. Default is  0 (False).
  * `iwriteout_energies`: Write out all energy terms. Default is  0 (False).
  * `iwriteout_populations`: Measure the localization by the entropic quantity W. Default is  0 (False). W is the number of accessible atoms for the given electronic energy and which describes the spatial extent of the electronic state. See more in Refs. H. Wang and J. P. Lewis, J. Phys.: Condens. Matter 18, 421–434 (2005) and  H. Wang and J. P. Lewis, J. Phys.: Condens. Matter 17, L209–L213 (2005).
  * `iwriteout_forces`: Write out all force terms. Default is  0 (False).
  * `iwriteout_neighbors`: Write out all neighbors. Default is  0 (False).
  * `iwriteout_abs`: Write out absorption spectra. Default is  0 (False).
  * `iwriteout_ewf`: Write out wave functions. Default is  0 (False).
  * `iwriteout_dos`: Write out  density of states. Default is  0 (False).
  * `ipi`: open I-PI socket. Default is 0.
  * `inet`: socket protocol, 0: unixsocket, 1: port. Default is 0(unixsocket). inet=1 is under-developing.
  * `host`: name for unixsocket. Default is 'thunder-ase-xxxx', xxxx is random string.



  The following parameters are deprecated due to the usage of thunder-ase. In the future, they will be removed from FIREBALL. Most parameters are for MD simulations.

  * `nstepi`: Initial step number. Default is 1.
  * `iconstraint_rcm`: Shift COM to [0,0,0] before simulation. Default is 0 (False).
  * `iconstraint_vcm`: Constraining the velocities about the COM, it means whether fix  the COM during simulation. Default is 1 (True).
  * `iconstraint_l`: Angular momentum constraint of the whole system. Default is  1 (True).
  * `iconstraint_ke`: Kinetic energy constraint of the whole system. Default is  0 (False).
  * `nstepf`: Final step number. Default is 1. `nstepf - nstepi` is the required MD steps.
  * `t_initial`: Initial temperature of MD simulation. Default is 300.0.
  * `t_final`: Final temperature of MD simulation. Default is 0.0.
  * `iquench`: Quench method. Default is 0.
    * `iquench = n`: quench the velocities on every n’th step;
    * `iquench = -1`: quench whenever the instantaneous temperature `T_instantaneous` is lower than the instantaneous temperature on the previous step `T_previous`;
    * `iquench = -2`: annealing simulation.  `T_want` is the desired annealing temperature and `taurelax` is for specifies how rapidly of quench;
    * `iquench = -3`: Coordinate power quench, quench velocities one coordinate at a time.
  * `t_want`: Annealing temperature to reach.  Default is 300.0 K.
  * `taurelax`: Quench rate. Default is 5.0 fs.
  * `dt`: Time step of MD simulation. Default is 0.25 fs.
  * `iensemble`: Thermodynamic ensemble. Default is 0.
    * `iensemble = 1`: Constant temperature ensemble




  * v0.1: run basic fireball calculation and read basic result from it.
    * jupyter-notebook for examples
    * multiple atoms for one calculator
    * read fireball input to construct calculator
  * v0.2: band structure calculation.
    * DOS calculation.
  * v0.3: fit basis to gaussian basis set, write orbitals to mwfn.
    * interface to multiwfn.
  * v0.4: Read charges and support charged system.
    * add MD simulation examples
    * add Fukui function calculation examples
  * v0.5: interactive running with socket.
  * v0.6: combination with Grimme's DFT-D4 correction.
  * v0.7: new calc.dynamics() function for easy running optimization and MD with socket.
  * v0.8: Use RMS as convergence criteria replace fmax and/or new optimizer for noisy force

  ** TODO **

  * vx.x: Fix the bug for ase version >= 3.23
  * vx.x: fix the phase issue for generating Multiwfn input
  * vx.x: build tests framework for FIREBALL; GitHub support
  * vx.x: set ipi = 1 as default
  * vx.x: Fdata management. Maybe not in this repository.
  * vx.x: support more functionals, add keywords `xc`.
  * vx.x: interface with LODESTAR to do open quantum system simulation.
  * vx.x: support XingChen Liu's nano-reactor


pkgId: ca8391c1f68fd15f33dc579986862466d738ab4ad9bc9e78e97b3c5ffc5185f7
name: python-tickthon-help
arch: noarch
version: 0.2.14
epoch: 0
release: 1
summary: Development documents and examples for tickthon
url: https://pypi.org/project/tickthon/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tickthon-0.2.14-1.src.rpm
location_href: Packages/python-tickthon-help-0.2.14-1.noarch.rpm
checksum_type: sha256
description:
  Yet another unofficial Ticktick API client, it is based on ticktick-py https://pypi.org/project/ticktick-py/


  ```bash
  pip install tickthon
  ```



  ```python
  from tickthon import TicktickClient

  client = TicktickClient(username, password)
  client.get_active_tasks()
  ```


  - get_active_tasks()
  - get_completed_tasks()
  - get_deleted_tasks()
  - get_abandoned_tasks()
  - get_expense_logs()
  - get_day_logs()
  - get_task(task_id)
  - get_overall_focus_time(date)
  - get_habits()
  - complete_task(Task)
  - create_task(Task, column_id)



  This packages uses a custom attrs model to store task data, it has the following attributes:

  Task:
  - title: str
  - status: int, default: 0  # 0: default/open, 2: done, -1: abandoned
  - ticktick_id: str, default: ""
  - focus_time: float, default: 0.0
  - deleted: int, default: 0  # 0: not deleted, 1: deleted
  - tags: List[str], default: []
  - project_id: str, default: ""
  - timezone: str, default: ""
  - due_date: str, default: ""
  - recurrent_id: Optional[str], default: ""


  - TT_USER: Ticktick username
  - TT_PASS: Ticktick password
  - TICKTICK_IDS: This environment variable is a JSON string that specifies the TickTick lists and folders from which
    tasks will be fetched, if you don't set this environment variable all tasks will be fetched. It follows this structure:

  for example:
  ```json
  {
    "FOLDER_IDS": {
      "folder_name-1": "folder_id",
      "folder_name-2": "folder_id",
      ...
    },
    "LIST_IDS": {
      "list_name-1": "list_id",
      "list_name-2": "list_id",
      ...
    }
  }
  ```


pkgId: 89ffd73ec852dbc3070ebaa9187b4c87bbba38ecd203fc5644cf7424e1716efe
name: python-ticktracer-help
arch: noarch
version: 0.0.5
epoch: 0
release: 1
summary: Development documents and examples for ticktracer
url: https://pypi.org/project/ticktracer/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-ticktracer-0.0.5-1.src.rpm
location_href: Packages/python-ticktracer-help-0.0.5-1.noarch.rpm
checksum_type: sha256
description:
  `ticktracer` is a simple Python application that allows you to trace your latency to crypto exchanges, and was developed to run on Alibaba Cloud ECS and analyze the shortest latency for exchanges hosted on Alibaba Cloud. However, any cloud provider can be used.

   When the machine running `ticktracer` and the target exchange use the same NTP service, we can safely assume that the any clock skew between the two instances is negligible. If your instance has `chronyc` installed, you can verify the time synchronization status of the machine through the command `chronyc sources`.

  Currently only websocket data feed latency can be extracted. It works by establishing a websocket connection to a crypto exchange API endpoint, decrypting the session with Wireshark, and comparing the arrival timestamp of packets with the payload timestamps provided by the exchange itself. Packet timestamps are received by `libpcap` from the kernel and are not generated by `ticktracer` itself, unlike other projects. See [here](https://wiki.wireshark.org/Timestamps) for more information.

  ![Architecture overview](architecture.png)

  - Binance
  - Bybit
  - OKX


  Ticktracer has been tested on the following operating systems:
  - macOS >= 14.0
  - Debian >= 12.0
  - Ubuntu >= 22.0

  In addition, the following external dependencies are required:
  - `wireshark` or `tshark` >= 4.0.7
  - `libssl-dev` for Debian-based systems or `openssl` for MacOS



  **Install dependencies**

  ```
  brew install wireshark openssl
  ```
  **Install ticktracer with pipx (recommended)**
  ```
  brew install pipx
  pipx ensurepath
  pipx install ticktracer
  ```
  **Install ticktracer with pip**

  Install `ticktracer` with pip:
  ```
  python3 -m pip install ticktracer
  ```

  **Install dependencies**
  ```
  sudo apt update && sudo apt install -y tshark libssl-dev
  ```
  **Install ticktracer with pipx (recommended)**
  ```
  sudo apt install pipx
  pipx ensurepath
  pipx install ticktracer
  ```
  **Install ticktracer with pip**
  ```
  python3 -m pip install ticktracer
  ```
  *Root permissions*

  Note that Wireshark requires the user to either have root privileges or to be part of the `wireshark` group in order to trace packets. To enable non-root access to wireshark, run the following command and select `yes`:

  `sudo dpkg-reconfigure wireshark-common`

   To add your user to the `wireshark` group, run the following command:

  `sudo adduser <YOUR-USER> wireshark`

  Create a new session in your terminal, and verify that you are part of the `wireshark` group with the following  command:

  `groups`

  *Automated environments*

  For automated environments, like a userdata script, use the following commands to install wireshark:
  ```
  export DEBIAN_FRONTEND=noninteractive
  apt update && apt install -y libssl-dev tshark
  ```


  ```
  usage: ticktracer [-h] -e EXCHANGE -p PAIR -d DURATION [-i INTERFACE]

  options:
    -h, --help            show this help message and exit
    -e, --exchange_id {okx,binance,bybit}
                          The exchange to connect with.
    -p, --pair PAIR       The trading pair to monitor. Look up the specific format on the exchange's API documentation.
    -d, --duration DURATION
                          Duration in seconds to monitor.
    -i, --interface INTERFACE
                          The network interface to listen on. Default is eth0 for Linux or en0 for macOS.
  ```
  Example: `ticktracer -e okx -p BTC/USDT -d 60`

  After the monitoring duration has elapsed, the script will output the latency in milliseconds across different percentiles:
  ```
  Total samples taken: 11567
  Latency report:
  +------------+-------------------------+
  | Percentile | Latency in milliseconds |
  +------------+-------------------------+
  |    MIN     |          3.104          |
  |    25%     |          9.151          |
  |    50%     |          10.401         |
  |    75%     |          11.762         |
  |    90%     |          13.08          |
  |    95%     |          14.102         |
  |    99%     |          19.474         |
  |   99.9%    |          32.975         |
  |    MAX     |          48.023         |
  +------------+-------------------------+
  ```

rpm_license:
  Apache License Version 2.0, January 2004 http://www.apache.org/licenses/  TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION  1. Definitions.  "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.  "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.  "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.  "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.  "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.  "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.  "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).  "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.  "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."  "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.  2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.  3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.  4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:  (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and  (b) You must cause any modified files to carry prominent notices stating that You changed the files; and  (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and  (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.  You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.  5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.  6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.  7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.  8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.  9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.  END OF TERMS AND CONDITIONS  APPENDIX: How to apply the Apache License to your work.  To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!)  The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.  Copyright [2024] [Daniel Molenaars]  Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0  Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


pkgId: 5216432ea72a17a35af95cd0043be44d57a8e6bc2e71899ab1684076b13fea8c
name: python-tidal-dl-ng-help
arch: noarch
version: 0.21.4
epoch: 0
release: 1
summary: Development documents and examples for tidal-dl-ng
url: https://github.com/exislow/tidal-dl-ng
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tidal-dl-ng-0.21.4-1.src.rpm
location_href: Packages/python-tidal-dl-ng-help-0.21.4-1.noarch.rpm
checksum_type: sha256
description:
  [![Release](https://img.shields.io/github/v/release/exislow/tidal-dl-ng)](https://img.shields.io/github/v/release/exislow/tidal-dl-ng)
  [![Build status](https://img.shields.io/github/actions/workflow/status/exislow/tidal-dl-ng/main.yml?branch=main)](https://github.com/exislow/tidal-dl-ng/actions/workflows/main.yml?query=branch%3Amain)
  [![Commit activity](https://img.shields.io/github/commit-activity/m/exislow/tidal-dl-ng)](https://img.shields.io/github/commit-activity/m/exislow/tidal-dl-ng)
  [![License](https://img.shields.io/github/license/exislow/tidal-dl-ng)](https://img.shields.io/github/license/exislow/tidal-dl-ng)

  This tool allows to download songs and videos from TIDAL. A paid plan is required! Audio quality varies up to HiRes Lossless / TIDAL MAX 24 Bit, 192 kHz depending on the song available. You can use the command line or GUI version of this tool.

  ![App Image](assets/app.png)

  ```bash
  $ tidal-dl-ng --help

   Usage: tidal-dl-ng [OPTIONS] COMMAND [ARGS]...

  ╭─ Options ────────────────────────────────────────────────────────────────────╮
  │ --version  -v                                                                │
  │ --help     -h        Show this message and exit.                             │
  ╰──────────────────────────────────────────────────────────────────────────────╯
  ╭─ Commands ───────────────────────────────────────────────────────────────────╮
  │ cfg    Print or set an option. If no arguments are given, all options will   │
  │        be listed. If only one argument is given, the value will be printed   │
  │        for this option. To set a value for an option simply pass the value   │
  │        as the second argument                                                │
  │ dl                                                                           │
  │ gui                                                                          │
  │ login                                                                        │
  ╰──────────────────────────────────────────────────────────────────────────────╯
  ```

  If you like this projects and want to support it, you can buy me a coffee :-)

  <a href="https://www.buymeacoffee.com/exislow" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/arial-orange.png" alt="Buy Me A Coffee" style="height: 51px !important;width: 217px !important;" ></a>
  <a href="https://ko-fi.com/exislow" target="_blank" rel="noopener noreferrer"><img src="https://help.ko-fi.com/hc/article_attachments/11833788361117" alt="61e11d430afb112ea33c3aa5_Button-1-p-500"></a>



  **Requirements**: Python 3.11 or 3.12 (other versions might work but are not tested!)

  ```bash
  pip install --upgrade tidal-dl-ng

  pip install --upgrade tidal-dl-ng[gui]
  ```

  You can use the command line (CLI) version to download media:

  ```bash
  tidal-dl-ng dl https://tidal.com/browse/track/46755209

  tdn dl https://tidal.com/browse/track/46755209
  ```

  But also the GUI:

  ```bash
  tidal-dl-ng-gui

  tdng

  tidal-dl-ng gui
  ```

  If you like to have the GUI version only, have a look at the
  [release page](https://github.com/exislow/tidal-dl-ng/releases) and download the correct version for your platform.



  - Download Tracks, Videos, Albums, Playlists
  - Metadata for songs
  - Adjustable audio and video download quality.





  Clone this repository and install the dependencies:

  ```bash
  poetry install --all-extras --with dev,docs
  ```

  The main entry points are:

  ```bash
  tidal_ng_dl/cli.py
  tidal_ng_dl/gui.py
  ```



  The GUI is build with `PySide6` using the [Qt Designer](https://doc.qt.io/qt-6/qtdesigner-manual.html):

  ```bash
  PYSIDE_DESIGNER_PLUGINS=tidal_dl_ng/ui pyside6-designer
  ```

  After all changes are saved you need to translate the Qt Designer `*.ui` file into Python code:

  ```
  pyside6-uic tidal_dl_ng/ui/main.ui -o tidal_dl_ng/ui/main.py
  ```



  To build the project use this command:

  ```bash
  make install
  ```

  The CI/CD pipeline will be triggered when you open a pull request, merge to main, or when you create a new release.

  To finalize the set-up for publishing to PyPi or Artifactory, see [here](https://fpgmaas.github.io/cookiecutter-poetry/features/publishing/#set-up-for-pypi).
  For activating the automatic documentation with MkDocs, see [here](https://fpgmaas.github.io/cookiecutter-poetry/features/mkdocs/#enabling-the-documentation-on-github).
  To enable the code coverage reports, see [here](https://fpgmaas.github.io/cookiecutter-poetry/features/codecov/).



  - For educational purposes only. I am not liable and responsible for any damage that happens.
  - You should not use this method to distribute or pirate music.
  - It may be illegal to use this app in your country.



  Thanks to all, who have contributed to this project!

  This project is based on:

  - https://fpgmaas.github.io/cookiecutter-poetry/

  <a href="https://github.com/exislow/tidal-dl-ng/graphs/contributors"><img src="https://contributors-img.web.app/image?repo=exislow/tidal-dl-ng" /></a>


pkgId: e2db3251ff318a427fdbcccd9d2a3b7c197d5683ca8a6f5b7c094a36085e7a32
name: python-tidal2tidal-help
arch: noarch
version: 0.0.0.1
epoch: 0
release: 1
summary: Development documents and examples for tidal2tidal
url: https://github.com/victorcabre/tidal2tidal
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tidal2tidal-0.0.0.1-1.src.rpm
location_href: Packages/python-tidal2tidal-help-0.0.0.1-1.noarch.rpm
checksum_type: sha256
description:
  A command line tool for transferring liked tracks, albums, artists and playlists between Tidal accounts.



  From PyPI:

  ```bash
  pip install tidal2tidal
  ```



  1. Run `tidal2tidal` in your terminal.
  2. A link will appear, open it and follow the instructions to log in with account A (source).
  3. Log in to account B (destination), the same way as in step 2.
  4. Wait for data to be transferred over from account A to account B.


pkgId: e63fd8cac2d4dc958854197feb369c7852ec8af33d4aab050bb7f053ea68f538
name: python-tidy3d-help
arch: noarch
version: 2.7.8
epoch: 0
release: 1
summary: Development documents and examples for tidy3d
url: https://github.com/flexcompute/tidy3d
rpm_license: LGPLv2+
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tidy3d-2.7.8-1.src.rpm
location_href: Packages/python-tidy3d-help-2.7.8-1.noarch.rpm
checksum_type: sha256
description:
  [![PyPI
  Name](https://img.shields.io/badge/pypi-tidy3d-blue?style=for-the-badge)](https://pypi.python.org/pypi/tidy3d)
  [![PyPI version shields.io](https://img.shields.io/pypi/v/tidy3d.svg?style=for-the-badge)](https://pypi.python.org/pypi/tidy3d/)
  [![Documentation Status](https://readthedocs.com/projects/flexcompute-tidy3ddocumentation/badge/?version=latest&style=for-the-badge)](https://flexcompute-tidy3ddocumentation.readthedocs-hosted.com/?badge=latest)
  ![Tests](https://img.shields.io/github/actions/workflow/status/flexcompute/tidy3d/run_tests.yml?style=for-the-badge)
  ![License](https://img.shields.io/github/license/flexcompute/tidy3d?style=for-the-badge)
  [![Black](https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge)](https://github.com/psf/black)
  ![Coverage](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/daquinteroflex/4702549574741e87deaadba436218ebd/raw/tidy3d_extension.json)

  [![Notebooks](https://img.shields.io/badge/Demo-Live%20notebooks-8A2BE2?style=for-the-badge)](https://github.com/flexcompute/tidy3d-notebooks)

  ![](https://raw.githubusercontent.com/flexcompute/tidy3d/main/img/Tidy3D-logo.svg)

  Tidy3D is a software package for solving extremely large electrodynamics problems using the finite-difference time-domain (FDTD) method. It can be controlled through either an [open source python package](https://github.com/flexcompute/tidy3d) or a [web-based graphical user interface](https://tidy3d.simulation.cloud).

  This repository contains the python API to allow you to:

  * Programmatically define FDTD simulations.
  * Submit and manage simulations running on Flexcompute's servers.
  * Download and postprocess the results from the simulations.


  ![](https://raw.githubusercontent.com/flexcompute/tidy3d/main/img/snippet.png)





  Note that while this front end package is open source, to run simulations on Flexcompute servers requires an account with credits.
  You can sign up for an account [here](https://tidy3d.simulation.cloud/signup).
  After that, you can install the front end with the instructions below, or visit [this page](https://docs.flexcompute.com/projects/tidy3d/en/latest/install.html) in our documentation for more details.



  To install the Tidy3D Python API locally, the following instructions should work for most users.

  ```
  pip install --user tidy3d
  tidy3d configure --apikey=XXX
  ```

  Where `XXX` is your API key, which can be copied from your [account page](https://tidy3d.simulation.cloud/account) in the web interface.

  In a hosted jupyter notebook environment (eg google colab), it may be more convenient to install and configure via the following lines at the top of the notebook.

  ```
  !pip install tidy3d
  import tidy3d.web as web
  web.configure("XXX")
  ```

  **Advanced installation instructions for all platforms is available in the [documentation installation guides](https://docs.flexcompute.com/projects/tidy3d/en/latest/install.html).**



  To test the authentication, you may try importing the web interface via.

  ```
  python -c "import tidy3d; tidy3d.web.test()"
  ```

  It should pass without any errors if the API key is set up correctly.

  To get started, our documentation has a lot of [examples](https://docs.flexcompute.com/projects/tidy3d/en/latest/notebooks/docs/index.html) for inspiration.



  | API Resource       | URL                                                                              |
  |--------------------|----------------------------------------------------------------------------------|
  | Installation Guide | https://docs.flexcompute.com/projects/tidy3d/en/latest/install.html              |
  | Documentation      | https://docs.flexcompute.com/projects/tidy3d/en/latest/index.html                |
  | Example Library    | https://docs.flexcompute.com/projects/tidy3d/en/latest/notebooks/docs/index.html |
  | FAQ                | https://docs.flexcompute.com/projects/tidy3d/en/latest/faq/docs/index.html       |




  | Name              | Repository                                      |
  |-------------------|-------------------------------------------------|
  | Source Code       | https://github.com/flexcompute/tidy3d           |
  | Notebooks Source  | https://github.com/flexcompute/tidy3d-notebooks |
  | FAQ Source Code   | https://github.com/flexcompute/tidy3d-faq       |




  Your feedback helps us immensely!

  If you find bugs, file an [Issue](https://github.com/flexcompute/tidy3d/issues).
  For more general discussions, questions, comments, anything else, open a topic in the [Discussions Tab](https://github.com/flexcompute/tidy3d/discussions).



  [GNU LGPL](https://github.com/flexcompute/tidy3d/blob/main/LICENSE)


pkgId: f4dc7fa47ceb74ba0cc80082bc7b0d114e6501886f0efd22d47e5cdbcdcfc5d1
name: python-tierkreis-help
arch: noarch
version: 0.7.3
epoch: 0
release: 1
summary: Development documents and examples for tierkreis
url: https://pypi.org/project/tierkreis/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tierkreis-0.7.3-1.src.rpm
location_href: Packages/python-tierkreis-help-0.7.3-1.noarch.rpm
checksum_type: sha256
description:
  Tierkreis is a higher-order dataflow graph program representation and runtime
  designed for compositional, quantum-classical hybrid algorithms.

  For a detailed introduction read the paper:
   [Tierkreis: a Dataflow Framework for Hybrid Quantum-Classical Computing](https://arxiv.org/abs/2211.02350).

  This repository contains the source for the `tierkreis` python package, and the
  protocol buffer definitions for Tierkreis data types and gRPC services (in the `protos` directory) which define the protocols for the system.

  The python package provides a complete development and testing environment for writing and running Tierkreis program, and allows you to write extensions ("workers") in python. By implementing the gRPC services you can also implement runtimes and workers in other languages.



  To install the python package run:
  ```bash
  pip install tierkreis
  ```

  This package is pure python and is compatible with Python 3.10 and above. Tierkreis has a strong, static type system, and full automated type inference is available as an extension on supported platforms via the `typecheck` optional feature. To install that run:

  ```bash
  pip install tierkreis[typecheck]
  ```

  You can now build a graph (Tierkreis program), optionally type check it and execute it. The recommended environment for this is a Jupyter notebook (especially given some operations are async).

  First we need the runtime we are going to execute on and a handle to the primitive functions available on that runtime.
  The python package comes with the `PyRuntime` which runs locally in your python environment.

  ```python
  from tierkreis.builder import graph, Namespace, Output, ValueSource
  from tierkreis.pyruntime import PyRuntime

  cl = PyRuntime([]) # empty list for no extra workers
  sig = await cl.get_signature()
  ns = Namespace(sig) # get a handle to all functions
  print(ns.iadd)
  print(ns.unpack_pair)
  ```

  The output shows the type signatures of the two functions we will use to add two integers together and unpack a pair. Note Tierkreis functions have named inputs _and_ outputs.
  ```
  iadd(a: Int, b: Int) -> (value: Int)
  unpack_pair(pair: Pair[VarType(a), VarType(b)]) -> (first: VarType(a), second: VarType(b))
  ```



  The `@graph` decorator allows you to build graphs using python functions.

  ```python
  @graph()
  def sum_pair(pair: ValueSource) -> Output:
      first, second = ns.unpack_pair(pair) # tierkreis functions can have multiple outputs
      return Output(ns.iadd(first, second))
  ```

  Calling the decorated function with no arguments (`sum_pair()`) returns a `TierkreisGraph`.


  In an Jupyter notebook this is immediately visualised, as long as you have [Graphviz](https://graphviz.org/download/) installed. In a script you can write the image to file with `render_graph`:

  ```python
  from tierkreis import render_graph

  render_graph(sum_pair, "filename", "pdf")
  ```

  ![sum_pair graph](https://user-images.githubusercontent.com/12997250/199997054-8cc815e2-39d3-4a9c-95d0-411510cb5465.svg )


  If you have the `typecheck` extension installed, you can replace `@graph` with `@graph(type_check_sig=sig)`, providing the signature retrieved from the client as above, and the graph will be type checked when you call the building function. A graph is well-typed if type annotations can be inferred for every edge of the graph. If type check fails, the error message will try to indicate the location of your error.

  The type checked version of the graph above looks like:

  ![sum_pair graph](https://user-images.githubusercontent.com/12997250/199996763-e0431127-1e6d-402c-acde-7711e12eb0ee.svg)




  We can now run the graph using the client set up earlier:

  ```python
  from tierkreis.core.types import TierkreisPair

  await cl.run_graph(sum_pair, pair=TierkreisPair(1, 2))
  ```

  The inputs to the graph are provided via keyword argument, and most of the time
  you can just provide python values that are auto converted (for example
  integers, floats, strings).
  But here, since there is no exact Python equivalent for "Pair" we use the
  tierkreis utility type `TierkreisPair`.
   The output is given
  in Tierkreis form:
  ```
  {'value': IntValue(value=3)}
  ```


  For a more involved example see [variational.ipynb](examples/variational.ipynb)




  _Workers_ are standalone servers which implement a set of functions which can connect to a Tierkreis runtime to add extra primitives.
  They do this by implementing the `worker` gRPC service. The `tierkreis` python package makes it easy to do this by taking care of all the server logic, and the conversion to and from Tierkreis data types. Note that workers are intended to be deployed as part of remote Tierkreis runtimes, but we can use the PyRuntime to test and develop them without any networking code.

  For example, we could define a custom function to sum a list:

  ```python
  from tierkreis.worker.namespace import Namespace as WorkerNS
  from tierkreis.builder import Const
  root = WorkerNS()
  custom_ns = root["custom"]

  @custom_ns.function()
  async def sum_list(lst: list[int]) -> int:
      return sum(lst)

  cl = PyRuntime([root])
  ns = Namespace(await cl.get_signature())["custom"]

  @graph()
  def runsum() -> Output:
      return Output(ns.sum_list(Const([1, 2, 3])))
  await cl.run_graph(runsum)
  ```


pkgId: 3612cd442c37653a12d96944e36186d66c049bbf02525f0daee15ee07417adc1
name: python-tieval-help
arch: noarch
version: 0.1.4
epoch: 0
release: 1
summary: Development documents and examples for tieval
url: https://pypi.org/project/tieval/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tieval-0.1.4-1.src.rpm
location_href: Packages/python-tieval-help-0.1.4-1.noarch.rpm
checksum_type: sha256
description:
  [![PyPI](https://img.shields.io/pypi/v/tieval)](https://pypi.org/project/tieval/)
  [![Documentation Status](https://readthedocs.org/projects/tieval/badge/?version=latest)](https://tieval.readthedocs.io/en/latest/?badge=latest)
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/tieval)
  [![PyPI - License](https://img.shields.io/pypi/l/tieval)](LICENSE)
  ![GitHub repo size](https://img.shields.io/github/repo-size/LIAAD/tieval)

  [![Paper](https://img.shields.io/badge/-paper-9cf)](https://dl.acm.org/doi/abs/10.1145/3539618.3591892)

  A framework for evaluation and development of temporally aware models.

  ![](imgs/tieval.png)



  The package is available on [PyPI](https://pypi.org/project/tieval/):

  ```shell
  pip install tieval
  ```

  It requires Python 3.8 or above.



  To understand its usability refer to the notebooks available [here]().



  Throughout the last two decades many datasets have been developed to train this task.
  tieval provides an easy interface to download the available corpus.

  To know more about the module run the following code on the terminal.

  ```shell
  python -m tieval download --help
  ```



  In this section, we summarize how to perform the most useful operations in tieval.



  ```python
  from pathlib import Path
  from tieval import datasets

  data_path = Path("data/")
  datasets.download("TimeBank", data_path)
  ```



  ```python
  from tieval import datasets

  te3 = datasets.read("tempeval_3")
  ```



  ```python
  from tieval import models

  model = models.TimexIdentificationBaseline()
  ```



  ```python
  pred = model.predict(te3.test)
  ```



  ```python
  from tieval import evaluate

  annot = {doc.name: doc.timexs for doc in te3.test}
  results = evaluate.timex_identification(annot, pred)
  ```



  1. Fork it (https://github.com/LIAAD/tieval)
  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



  Hugo Sousa - hugo.o.sousa@inesctec.pt

  This framework is part of the [Text2Story](https://text2story.inesctec.pt/) project which is financed by the ERDF –
  European Regional Development Fund through the North Portugal Regional Operational Programme (NORTE 2020), under the
  PORTUGAL 2020 and by National Funds through the Portuguese funding agency, FCT - Fundação para a Ciência e a Tecnologia
  within project PTDC/CCI-COM/31857/2017 (NORTE-01-0145-FEDER-03185)



  If you use `tieval` in your work please site the following article:


  ```bibtex
  @inproceedings{10.1145/3539618.3591892,
      author = {Sousa, Hugo and Campos, Ricardo and Jorge, Al\'{\i}pio M\'{a}rio},
      title = {Tieval: An Evaluation Framework for Temporal Information Extraction Systems},
      year = {2023},
      isbn = {9781450394086},
      publisher = {Association for Computing Machinery},
      address = {New York, NY, USA},
      url = {https://doi.org/10.1145/3539618.3591892},
      doi = {10.1145/3539618.3591892},
      booktitle = {Proceedings of the 46th International ACM SIGIR Conference on Research and Development in Information Retrieval},
      pages = {2871–2879},
      numpages = {9},
      keywords = {temporal information extraction, evaluation, python package},
      location = {Taipei, Taiwan},
      series = {SIGIR '23}
  }
  ```

rpm_license:
  MIT License  Copyright (C) 2023, INESC TEC  tieval: An Evaluation Framework for Temporal Information Extraction Systems  This software is authored by: Hugo Sousa  You can reach INESC TEC Technology Licensing Office (TLO) at info.sal@inesctec.pt, or Campus da Faculdade de Engenharia da Universidade do Porto Rua Dr. Roberto Frias 4200-465 Porto Portugal  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: cab5700dadbb4682609ad53bde1ddd3de3a1e75dd92d2537d23e0a5c63e5c5a7
name: python-tigeropen-help
arch: noarch
version: 3.3.0
epoch: 0
release: 1
summary: Development documents and examples for tigeropen
url: https://github.com/tigerbrokers/openapi-python-sdk
rpm_license: Apache License v2
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tigeropen-3.3.0-1.src.rpm
location_href: Packages/python-tigeropen-help-3.3.0-1.noarch.rpm
checksum_type: sha256
description:
  ```
  pip install tigeropen
  或者
  git clone https://github.com/tigerfintech/openapi-python-sdk.git
  python setup.py install
  ```

  - 接入前需要在[开放平台](https://quant.itiger.com/#openapi)登记开发者信息
  - 详情查看[接入说明](https://quant.itiger.com/openapi/zh/python/overview/introduction.html)


pkgId: 6b738195e7812b9bcf17ba6b4c760800939ac9c5635c4f7f14448997442f8f5f
name: python-tika-client-help
arch: noarch
version: 0.8.1
epoch: 0
release: 1
summary: Development documents and examples for tika-client
url: https://pypi.org/project/tika-client/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tika-client-0.8.1-1.src.rpm
location_href: Packages/python-tika-client-help-0.8.1-1.noarch.rpm
checksum_type: sha256
description:
  - [Features](#features)
  - [Installation](#installation)
  - [Usage](#usage)
  - [Why](#why)
  - [License](#license)

  - Simplified: No need to worry about XML or JSON responses, downloading a Tika jar file or Python 2
  - Support for Tika 2+ only (including Tika v3, which didn't change the API)
  - Based on the modern [httpx](https://github.com/encode/httpx) library
  - Full support for type hinting
  - Nearly full test coverage run against an actual Tika server for multiple Python and PyPy versions
  - Uses HTTP multipart/form-data to stream files to the server (instead of reading into memory)
  - Optional compression for parsing from a file content already in a buffer (as opposed to a file)

  ```console
  pip3 install tika-client
  ```

  ```python3
  from pathlib import Path
  from tika_client import TikaClient
  test_file = Path("sample.docx")
  with TikaClient("http://localhost:9998") as client:
      
      metadata = client.metadata.from_file(test_file)
      
      data = client.tika.as_html.from_file(test_file)
      
      text = client.tika.as_text.from_file(test_file)
      
      data = client.rmeta.as_text.from_file(test_file)
      
      
      text = client.tika.as_text.from_file(test_file,
                                           "application/vnd.openxmlformats-officedocument.wordprocessingml.document")
  ```
  The Tika REST API documentation can be found [here](https://cwiki.apache.org/confluence/display/TIKA/TikaServer).
  At the moment, only the metadata, tika and recursive metadata endpoints are implemented.
  Unfortunately, the set of possible return values of the Tika API are not very well documented. The library makes
  a best effort to extract relevant fields into type properties where it understands more about the mime type
  of the document (as returned by Tika). This includes information like created/modified information as time zone
  aware `datetime` objects. The full JSON response is always available to the user under the `.data`
  attribute.
  When a particular key is not present in the response, all properties will return `None` instead.

  Only one other library for interfacing with Tika exists that I know of. I find it too complicated, trying to handle
  a lot of differing uses.
  The biggest issue I have with the library is its downloading and running of a jar file if needed. To me, an
  API client should only interface to the API and not try to provide functionality to start
  the API as well. The user is responsible for providing the server with the Tika version they desire.
  The library also provides a lot of knobs to turn, but I argue most developers will not want to configure XML as
  the response type, they just want the data, already parsed to the maximum extend possible.
  This library attempts to provide a simpler interface, minimal lines of code and typing of the parsed response.

  `tika-client` is distributed under the terms of the [Mozilla Public License 2.0](https://spdx.org/licenses/MPL-2.0.html) license.


pkgId: 6ce5fecb6285cf18c3262b3858b9011d0aebf3892c0d761a495f2a9684e0b524
name: python-tikit-help
arch: noarch
version: 1.8.5.241213
epoch: 0
release: 1
summary: Development documents and examples for tikit
url: https://cloud.tencent.com/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tikit-1.8.5.241213-1.src.rpm
location_href: Packages/python-tikit-help-1.8.5.241213-1.noarch.rpm
checksum_type: sha256
description:
  TiKit是一套对接腾讯云TI平台各模块的python SDK工具。
  Tikit的核心作用是为了让算法类研发人员在使用Notebook功能时，能够更好地进行交互，打通Notebook和本地环境访问平台的路径，进行从训练到推理的闭环。


  '''bash

  make publish
  '''


  '''bash
  yum install -y cyrus-sasl cyrus-sasl-devel cyrus-sasl-lib krb5-devel
  pip install -r requirements.txt
  '''

  pip install tikit -U -i https://pypi.org/simple
  '''


pkgId: d07fd381d36d412df6952b472258a008ad0b7c343aede14972adb10d73668d1e
name: python-tiktok-captcha-solver-help
arch: noarch
version: 0.6.2
epoch: 0
release: 1
summary: Development documents and examples for tiktok-captcha-solver
url: https://www.sadcaptcha.com
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tiktok-captcha-solver-0.6.2-1.src.rpm
location_href: Packages/python-tiktok-captcha-solver-help-0.6.2-1.noarch.rpm
checksum_type: sha256
description:
  This project is the [SadCaptcha TikTok Captcha Solver](https://www.sadcaptcha.com?ref=ghclientrepo) API client.
  The purpose is to make integrating SadCaptcha into your Selenium, Playwright, or Async Playwright app as simple as one line of code.
  Instructions for integrating with Selenium, Playwright, and Async Playwright are described below in their respective sections.
  This API also works on mobile devices (Appium, etc.).

  This tool works on both TikTok and Douyin and can solve any of the four captcha challenges pictured below:

  <div align="center">
      <img src="https://sadcaptcha.b-cdn.net/tiktok3d.webp" width="100" alt="TikTok Captcha Solver">
      <img src="https://sadcaptcha.b-cdn.net/tiktokrotate.webp" width="100" alt="TikTok Captcha Solver">
      <img src="https://sadcaptcha.b-cdn.net/tiktokpuzzle.webp" width="100" alt="TikTok Captcha Solver">
      <img src="https://sadcaptcha.b-cdn.net/tiktokicon.webp" width="100" alt="TikTok Captcha Solver">
      <br/>
  </div>


  - Python >= 3.10
  - **If using Selenium** - Selenium properly installed and in `PATH`
  - **If using Playwright** - Playwright must be properly installed with `playwright install`
  - **If using mobile** - Appium and opencv must be properly installed
  - **Stealth plugin** - You must use the appropriate `stealth` plugin for whichever browser automation framework you are using.
      - For Selenium, you can use [undetected-chromedriver](https://github.com/ultrafunkamsterdam/undetected-chromedriver)
      - For Playwright, you can use [playwright-stealth](https://pypi.org/project/playwright-stealth/)


  This project can be installed with `pip`. Just run the following command:
  ```
  pip install tiktok-captcha-solver
  ```


  Import the package, set up the `SeleniumSolver` class, and call it whenever you need.
  This turns the entire captcha detection, solution, retry, and verification process into a single line of code.
  It is the recommended method if you are using selenium.

  ```py
  from tiktok_captcha_solver import SeleniumSolver
  from selenium_stealth import stealth
  import undetected_chromedriver as uc

  driver = uc.Chrome(headless=False) # Use default undetected_chromedriver configuration!
  api_key = "YOUR_API_KEY_HERE"
  sadcaptcha = SeleniumSolver(
      driver,
      api_key,
      mouse_step_size=1, # Adjust to change mouse speed
      mouse_step_delay_ms=10 # Adjust to change mouse speed
  )



  sadcaptcha.solve_captcha_if_present()
  ```

  It is crucial that you use `undetected_chromedriver` with the default configuration, instead of the standard Selenium chromedriver.
  Failure to use the `undetected_chromedriver` will result in "Verification failed" when attempting to solve the captcha.


  Import the package, set up the `PlaywrightSolver` class, and call it whenever you need.
  This turns the entire captcha detection, solution, retry, and verification process into a single line of code.
  It is the recommended method if you are using playwright.


  ```py
  from tiktok_captcha_solver import PlaywrightSolver
  from playwright.sync_api import Page, sync_playwright
  from playwright_stealth import stealth_sync, StealthConfig

  api_key = "YOUR_API_KEY_HERE"

  with sync_playwright() as p:
      browser = p.chromium.launch(headless=False)
      page = browser.new_page()
      config = StealthConfig(navigator_languages=False, navigator_vendor=False, navigator_user_agent=False)
      stealth_sync(page, config) # Use correct playwright_stealth configuration!

      

      sadcaptcha = PlaywrightSolver(
          page,
          api_key,
          mouse_step_size=1, # Adjust to change mouse speed
          mouse_step_delay_ms=10 # Adjust to change mouse speed
      )
      sadcaptcha.solve_captcha_if_present()
  ```
  It is crucial that users of the Playwright client also use `playwright-stealth` with the configuration specified above.
  Failure to use the `playwright-stealth` plugin will result in "Verification failed" when attempting to solve the captcha.


  Import the package, set up the `AsyncPlaywrightSolver` class, and call it whenever you need.
  This turns the entire captcha detection, solution, retry, and verification process into a single line of code.
  It is the recommended method if you are using async playwright.



  ```py
  import asyncio
  from tiktok_captcha_solver import AsyncPlaywrightSolver
  from playwright.async_api import Page, async_playwright
  from playwright_stealth import stealth_async, StealthConfig

  api_key = "YOUR_API_KEY_HERE"

  async def main()
      async with async_playwright() as p:
          browser = await p.chromium.launch(headless=False)
          page = await browser.new_page()
          config = StealthConfig(navigator_languages=False, navigator_vendor=False, navigator_user_agent=False)
          await stealth_async(page, config) # Use correct playwright_stealth configuration!

          

          sadcaptcha = AsyncPlaywrightSolver(
              page,
              api_key,
              mouse_step_size=1, # Adjust to change mouse speed
              mouse_step_delay_ms=10 # Adjust to change mouse speed
          )
          await sadcaptcha.solve_captcha_if_present()

  asyncio.run(main())
  ```
  It is crucial that users of the Playwright client also use `playwright-stealth` with the stealth configuration specified above.
  Failure to use the `playwright-stealth` plugin will result in "Verification failed" when attempting to solve the captcha.


  Currently there is no premade solver for Mobile/appium, but you can implement the API with relative ease.
  The idea is that you take a screenshot using the mobile driver, crop the images, and then send the images to the API.
  Once you've done that, you can consume the response.
  Here is a working example for Puzzle and Rotate captcha.
  keep in mind, you will need to adjust the `captcha_box` and `offset_x` varaibles according to your particular mobile device.

  ```py
  from PIL import Image, ImageDraw
  import base64
  import requests


  BASE_URL = 'https://www.sadcaptcha.com/api/v1'
  LICENSE_KEY = ''
  puzzle_url = f'{BASE_URL}/puzzle?licenseKey={LICENSE_KEY}'

  def solve_puzzle():
      
      driver.save_screenshot('puzzle.png')
      full_image = Image.open('puzzle.png')

      
      captcha_box1 = (165, 1175, 303, 1330)
      captcha_image1 = full_image.crop(captcha_box1)

      
      draw = ImageDraw.Draw(captcha_image1)
      draw.ellipse([(0, 0), (captcha_image1.width / 4, captcha_image1.height)], fill="blue", outline="blue")
      captcha_image1.save('puzzle_screenshot.png')

      
      captcha_box2 = (300, 945, 1016, 1475)
      captcha_image2 = full_image.crop(captcha_box2)
      captcha_image2.save('puzzle_screenshot1.png')


      with open('puzzle_screenshot.png', 'rb') as f:
          puzzle = base64.b64encode(f.read()).decode()
      with open('puzzle_screenshot1.png', 'rb') as f:
          piece = base64.b64encode(f.read()).decode()

      data = {
          'puzzleImageB64': puzzle,
          'pieceImageB64': piece
      }

      r = requests.post(puzzle_url, json=data)

      slide_x_proportion = r.json().get('slideXProportion')

      offset_x = 46 + (46 * float(slide_x_proportion))

      driver.swipe(start_x=55, start_y=530, end_x=55 + int(offset_x), end_y=530, duration=1000)
      time.sleep(3)



  BASE_URL = 'https://www.sadcaptcha.com/api/v1'
  LICENSE_KEY = ''
  rotate_url = f'{BASE_URL}/rotate?licenseKey={LICENSE_KEY}'

  def solve_rotate():
      driver.save_screenshot('full_screenshot.png')

      full_image = Image.open('full_screenshot.png')

      captcha_box1 = (415, 1055, 755, 1395)
      captcha_image1 = full_image.crop(captcha_box1)

      mask = Image.new('L', captcha_image1.size, 0)
      draw = ImageDraw.Draw(mask)
      circle_bbox = (0, 0, captcha_image1.size[0], captcha_image1.size[1])
      draw.ellipse(circle_bbox, fill=255)

      captcha_image1.putalpha(mask)
      captcha_image1.save('captcha_image_circular.png')

      captcha_box2 = (318, 958, 852, 1492)
      captcha_image2 = full_image.crop(captcha_box2)

      mask2 = Image.new('L', captcha_image2.size, 0)
      draw = ImageDraw.Draw(mask2)
      draw.ellipse((captcha_box1[0] - captcha_box2[0], captcha_box1[1] - captcha_box2[1],
                    captcha_box1[2] - captcha_box2[0], captcha_box1[3] - captcha_box2[1]), fill=255)

      captcha_image_with_hole = captcha_image2.copy()
      captcha_image_with_hole.paste((0, 0, 0, 0), (0, 0), mask2)
      captcha_image_with_hole.save('captcha_image_with_hole.png')

      with open('captcha_image_with_hole.png', 'rb') as f:
          outer = base64.b64encode(f.read()).decode('utf-8')
      with open('captcha_image_circular.png', 'rb') as f:
          inner = base64.b64encode(f.read()).decode('utf-8')

      data = {
          'outerImageB64': outer,
          'innerImageB64': inner
      }

      r = requests.post(rotate_url, json=data)
      r.raise_for_status()
      response = r.json()
      angle = response.get('angle', 0)

      result = ((286 - 55) * angle) / 360
      start_x = 55
      start_y = 530
      offset_x = result

      driver.swipe(start_x, start_y, start_x + int(offset_x), start_y, duration=1000)
  ```


  SadCaptcha supports using proxies and custom headers such as user agent.
  This is useful to avoid detection.
  To implement this feature, pass your proxy URL and headers dictionary as a keyword argument to the constructor of the solver.
  ```py
  api_key = "YOUR_API_KEY_HERE"
  proxy = "http://username:password@123.0.1.2:80"
  headers = {"User-Agent": "Chrome"}


  driver = uc.Chrome(headless=False) # Use default undetected_chromedriver configuration!
  api_key = "YOUR_API_KEY_HERE"
  sadcaptcha = SeleniumSolver(driver, api_key, proxy=proxy, headers=headers)


  with sync_playwright() as p:
      browser = p.chromium.launch(headless=False)
      page = browser.new_page()
      stealth_sync(page) # Use default playwright_stealth configuration!
      sadcaptcha = PlaywrightSolver(page, api_key, proxy=proxy, headers=headers)
      sadcaptcha.solve_captcha_if_present()


  async def main()
      async with async_playwright() as p:
          browser = await p.chromium.launch(headless=False)
          page = await browser.new_page()
          await stealth_async(page) # Use default playwright_stealth configuration!
          sadcaptcha = AsyncPlaywrightSolver(page, api_key, headers=headers, proxy=proxy)
          await sadcaptcha.solve_captcha_if_present()
  ```


  If you are not using Selenium or Playwright, you can still import and use the API client to help you make calls to SadCaptcha
  ```py
  from tiktok_captcha_solver import ApiClient

  api_key = "YOUR_API_KEY_HERE"
  client = ApiClient(api_key)


  res = client.rotate("base64 encoded outer", "base64 encoded inner")


  res = client.puzzle("base64 encoded puzzle", "base64 encoded piece")


  res = client.shapes("base64 encoded shapes image")


  res = client.icon("Which of these objects... ?", base64 encoded icon image")
  ```



  This common problem is due to your browser settings.
  If using Selenium, you must use `undetected_chromedriver` with the **default** settings.
  If you are using Playwright, you must use the `playwright_stealth` package with the **default** settings.
  Do not change the user agent, or modify any other browser characteristics as this is easily detected and flagged as suspicious behavior.


  - Homepage: https://www.sadcaptcha.com/
  - Email: greg@sadcaptcha.com
  - Telegram @toughdata


pkgId: fd7b8eef234070b22f56749e63bc425033aa1cbad6e23888f062bc611712757f
name: python-tiktok_research_api_helper-help
arch: noarch
version: 0.1.3
epoch: 0
release: 1
summary: Development documents and examples for tiktok_research_api_helper
url: https://github.com/CybersecurityForDemocracy/tiktok-library
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tiktok_research_api_helper-0.1.3-1.src.rpm
location_href: Packages/python-tiktok_research_api_helper-help-0.1.3-1.noarch.rpm
checksum_type: sha256
description:
  [![PyPI - Version](https://img.shields.io/pypi/v/tiktok_research_api_helper.svg)](https://pypi.org/project/tiktok_research_api_helper)

  This package provides both a CLI application and python library for querying
  video information from the TikTok Research API.

  **This library requires TikTok Research API access. It does not provide any access by itself.**



  Python3.11+ is **required**. Some newer features are directly used and earlier versions won't work (e.g. Walrus, type hinting chaining "|", etc., StrEnum)




  You need to put your API credentials in yaml file which the client code will use for authentication.
  Expected fields (no quotes):
  ```yaml
  client_secret: abc
  client_key: abc
  ```




  A query is a combination of a "type (and, or, not)" with multiple Conditions ("Cond")

  Each condition is a combination of a "field" (Fields, F), "value" and a operation ("Operations", "Op").
  ```python
  from tiktok_research_api_helper.query import VideoQuery, Cond, Fields, Op

  query = VideoQuery(
          and_=[
              Cond(Fields.hashtag_name, "garfield", Op.EQ),
              Cond(Fields.region_code, "US", Op.EQ),

              
              
              
          ],
      )
  ```


  ```python
  from pathlib import Path
  from datetime import datetime
  from tiktok_research_api_helper.query import VideoQuery, Cond, Fields, Op
  from tiktok_research_api_helper.api_client import ApiClientConfig, TikTokApiClient, VideoQueryConfig

  client_config = ApiClientConfig(engine=None, # No database engine configured, so
                                               
                                  api_credentials_file=Path("./secrets.yaml"))
  api_client = TikTokApiClient.from_config(client_config)


  query_config = VideoQueryConfig(query=query,
                                  start_date=datetime.fromisoformat("2024-03-01"),
                                  end_date=datetime.fromisoformat("2024-03-02"))



  for result in api_client.api_results_iter(query_config):
      
      print(result.videos)



  api_client.fetch_all(query_config)



  api_client.fetch_and_store_all(query_config) # or equivalent call: fetch_all(query_config, store_results_after_each_response=True)
  ```

  You can also fetch user info and comments for videos that match the qurey:
  ```python
  query_config = VideoQueryConfig(query=query,
                                  start_date=datetime.fromisoformat("2024-03-01"),
                                  end_date=datetime.fromisoformat("2024-03-02"),
                                  fetch_comments=True,
                                  fetch_user_info=True)


  results = api_client.fetch_all(query_config)
  print('Videos: ", results.videos)
  print('User info: ", results.user_info)
  print('Comments: ", results.comments)
  ```




  ```python
  from pathlib import Path
  from tiktok_research_api_helper.api_client import TikTokApiRequestClient, TikTokVideoRequest


  request_client = TikTokApiRequestClient.from_credentials_file(Path("./secrets.yaml"))
  from tiktok_research_api_helper.query import VideoQuery, Cond, Fields, Op

  query = VideoQuery(or_=Cond(Fields.video_id, ["7345557461438385450", "123456"], Op.IN))


  video_req = TikTokVideoRequest(
      query=query,
      start_date="20240301",
      end_date="20240329",
  )


  result = request_client.fetch_videos(video_req)


  new_video_req = TikTokVideoRequest(query=query,
                  cursor=result.data['cursor'],
                  search_id=result.data['search_id'],
              )
  result = request_client.fetch_videos(new_video_req)
  ```


  ```python
  from tiktok_research_api_helper.api_client import TikTokCommentsRequest

  video_id = "7345557461438385450"
  comments_req = TikTokCommentsRequest(video_id=video_id)

  result = request_client.fetch_comments(comments_req)
  for comment in result.coments:
    print(comment)
  ```


  ```python
  from tiktok_research_api_helper.api_client import TikTokUserInfoRequest

  username = "example"
  user_info_req = TikTokUserInfoRequest(username=username)

  result = request_client.fetch_user_info(user_info_req)
  print(username, " user info: ", result.user_info[username])
  ```




  1. This library requires TikTok Research API access. It does not provide any access by itself.
  2. Create a new file `secrets.yaml` in the root folder you are running code from (you can specify a different file with `--api-credentials-file`). View the `sample_secrets.yaml` file for formatting. The client_secret and client_key are required. The library automatically manages the access token and refreshes it when needed.
  3. View the `ExampleInterface.ipynb` for a quick example of interfacing with it for small queries.


  You can query the API for videos that include and/or exclude hashtags and/or
  keywords with the following flags:


  - `--include-any-hashtags`
  - `--include-all-hashtags`
  - `--exclude-any-hashtags`
  - `--exclude-all-hashtags`


  - `--include-any-keywords`
  - `--include-all-keywords`
  - `--exclude-any-keywords`
  - `--exclude-all-keywords`

  These flags take a comma separated list of values (eg `--include-all-hashtags butter,cheese`, `--only-from-usernames amuro,roux`)

  flags with `any` in the name will query the API for videos that have one or more
  of the provided values. for example `--include-any-hashtags butter,cheese` would
  match videos with hashtags `#butter`, `#cheese`, and/or `#butter #cheese` (ie
  both). The same applies for keyword variants of these flags

  flags with `all` in the name will query the API for videos that have all the
  provided values, and would not match videos which only a subset of the provided
  values.  for example `--include-all-hashtags butter,cheese` would match videos
  with hashtags `#butter #cheese`, but would not match videos with only `#butter`
  but not `#cheese` and vice versa. The same applies for keyword variants of these
  flags


  You can also limit results by username. Either querying for videos only from
  specific usernames or excluding videos from specific usernames. NOTE: these
  flags are mutually exclusive:
  - `--only-from-usernames`
  - `--exclude-from-usernames`



  You can also limit the videos by the region in which the use registered their
  account with `--region` (this flag can be provided multiple times to include
  multiple regions). See tiktok API documentation for more info about this field
  https://developers.tiktok.com/doc/research-api-specs-query-videos/


  If you know the ID(s) of the video(s) you want, you can query for it directly
  with `--video-id`. This can be used multiple times to query for multiple video
  IDs. NOTE: you will still have to provide start and end dates (due to TikTok
  Research API design).


  `--fetch-user-info` For each video the API returns user info is fetched for the video's creator.  (for more about what TikTok research API provides and how it is structured see https://developers.tiktok.com/doc/research-api-specs-query-user-info)

   
  `--fetch-comments` For each video the API returns comments (up to the first 1000
  due to API limitations) are fetched. (for more about what the API provides for comments and how the responses are structured see https://developers.tiktok.com/doc/research-api-specs-query-video-comments)
  **NOTE: fetching comments can significantly increase API quota consumption beacuse potentially every video will used 10 extra API requests.**


  by default tool has no limit on API requests. When the API indicates quota has
  been exceed the tool sleeps and retries until quota resets at UTC midnight. If
  you wish to limit the number of requests, say to preserve precious little API
  quota, you can use the `--max-api-requests` flag which take a positive int. Once
  that many requests have been made crawling will stop even if the API indicates
  more results are available.


  If you would like to preview the query that would be sent to the API (without
  actually sending a request to the API) you can use the command `print-query`
  like so:
  ```
  $ tiktok-lib print-query --include-all-keywords cheese,butter --exclude-any-hashtags pasta,tomato --region US --region FR --exclude-from-usernames carb_hater,only-vegetables
  ```
  This prints the JSON query to stdout.


  If the provided querying functionality does not meet your needs or you want to
  provide your own query use the `--query-file-json` flag. This takes a path to a
  JSON file that will be used as the query for requests to the API, and can be
  used multiple times in the same command to run those queries serially. NOTE: the
  provided file is NOT checked for validity.
  See tiktok documentation for more info about crafting queries https://developers.tiktok.com/doc/research-api-get-started/

  You can use the `print-query` command to create a starting point. For example if you
  wanted to match videos about shoes with more specific search criteria you could
  create a base onto which you would build with something like:
  ```
  $ tiktok-lib print-query --include-any-keywords shoe,shoes,sneakers,pumps,heels,boots > shoes-query.json
  ```
  then edit `shoes-query.json` as desired, and use it with
  ```
  $ tiktok-lib run --query-json-file shoes-query.json ...
  ```



  1. For larger queries, first install [SQLite](https://www.sqlite.org/).
  2. Run a test query with `tiktok-lib test`
  3. Edit the `query.yaml` file to include the query you want to run.
  4. View the available commands in the run command with `tiktok-lib run --help`

  You can also store files in a postgresql database. Use the `--db-url` flag to
  specify the connection string.



  - Currently only video data ("Query Videos"), user info, and video comments is supported directly.



  - Long running queries are automatically split into smaller 7 days chunks. This is to avoid the 30 day limit on the TikTok API.
  - The library automatically manages the access token and refreshes it when needed.
  - TikTok research API quota is 1000 requests per day (https://developers.tiktok.com/doc/research-api-faq). When the API indicates that limit has been reached this library will retry (see `--rate-limit-wait-strategy` flag for available strategies) until quota limit resets and continue collection.
  - `TikTokApiClient` provides a high-level interface for querying TikTok Research
    API
      - Handles API pagination (ie requesting results from API until API indicates
        query results have been completely delivered), access token
        fetch/refresh, and retry on request failures.
      - Client provides an iterator (`api_results_iter`) which yields each parsed
        API response, or `fetch_all` which returns all parsed results in one
        object.
      - `store_fetch_result` stores crawl and videos data to the database
      - `fetch_and_store_all` does all the above (fetching all results from API
        and storing them in database as responses are received).
      - `fetch_comments` and `fetch_user_info` cache responses (using video ID,
        and username respectively) to reduce API requests at the cost of
        additional memory usage. This done via rudimentary dict storage with the
        video ID or username mapping to the response.

  - Database
      - All "Crawls" (really each request to the API) are stored in a seperate table `crawl` and the data itself in `video`.
      - Mapping of video <-> crawl is stored in `videos_to_crawls`.
      - Hashtags are stored in a separate table (with an internal ID, NOT from the
        API) `hashtag`, and the mapping of hashtags <-> videos is stored in
        `videos_to_hashtags`
      - Effect IDs are stored simimarly to Hashtags with an associtation table
        `videos_to_effect_ids`. The naming in `effect` table can be little
        confusing because `id` is the internal database ID, and `effect_id` is the
        value from the API (which is a string, but this author has only ever seen
        ints (as strings) from API).
      - Data is written to DB after every TikTokRequest, by default containing up to 100 instances.
      - If a query tag (via the `--query-tag` flag) is provided, crawls and videos
        are associated to the query tag in `crawls_to_query_tags` and
        `videos_to_query_tags` tables respectively.


  - Fix warning when retrying - Only show if the retry is unsuccessful
  - Add code docs
  - Allow for continuing a query directly from the last run.
  - Support for other data types (e.g. "User reposted videos", "User followers",
    etc)


  - Having a query as python code inside a file?
      - To make facilitate not having to write extensive json queries in the CLI.
  - Not [tiktok-research-client](https://github.com/AndersGiovanni/tiktok-research-client/tree/main)?
      - At the time of creation, the library was not available.





  Install with pip:

  ```bash
  git clone <this repo>
  cd tiktok-library
  pip install .
  ```
  OR you can install `hatch` (see https://hatch.pypa.io/latest/install/) and run code/tests from that:
  ```bash
  git clone <this repo>
  cd tiktok-library
  hatch --env test run run # run unit tests
  hatch run tiktok-lib run --db-url ... # query API
  ```



  To run unit tests locally (requires pytest installed):
  `python3 -m pytest` OR use hatch `hatch run test:run`

  To run postgresql integration test (requires docker installed, may have to run
  as sudo):
  ```
  docker compose build && docker compose run postgres-integration-test && docker compose down
  ```
  OR run with hatch (this runs above docker commands as sudo):
  ```
  hatch run test:postgres-integration-test-docker-as-sudo
  ```


  To check if ruff would change code (but not actually make changes):

  `hatch fmt --check`

  To apply changes from ruff:

  `hatch fmt`

  NOTE: formatting fixes will not be applied if linter finds errors, if this
  happens you can run the formatter only with `hatch fmt --formatter` (good for
  when there is a linter issue the formatter can fix).


  `hatch run jupyter:notebook`


  *ghcr.io/cybersecurityfordemocracy/tiktok_research_api_helper* is a very minimal
  wrapper to run `tiktok-lib` in a docker container. Currently the image is built
  by installing the specified version of this package from pypi (for simplicity
  and transparency).

  To build the image you can use the following command:
  ```shell
  bash -c 'VERSION=<PIP VERSION SPECIFIER HERE>; docker build -t ghcr.io/cybersecurityfordemocracy/tiktok_research_api_helper:${VERSION} --build-arg VERSION=${VERSION} .'
  ```
  This will make sure that the image is tagged with the same version specifier as
  is used to install from pypi.


  Alembic is a tool/framework for database schema migrations. For instructions on
  how to use and and create revisions see https://alembic.sqlalchemy.org/en/latest/tutorial.html

  There is hatch env
  for this which can be invoked like so:
  ```
  $ hatch --env alembic run alembic ...
  ```
  The alembic config in this repo `alembic.ini` is a basic config barely modified
  from generic default. To use it you will need to define `sqlalchemy.url`. If you
  want to operate on different database URLs you can use a technique documented in
  https://alembic.sqlalchemy.org/en/latest/cookbook.html#run-multiple-alembic-environments-from-one-ini-file
  briefly you would add something like the following to `alembic.ini`:
  ```
  [test]
  sqlalchemy.url = driver://user:pass@localhost/test_database_name

  [prod]
  sqlalchemy.url = driver://user:pass@localhost/prod_database_name
  ```

  Then you can specify which database to use via the config section name:
  ```
  $ hatch --env alembic run alembic --name test <alembic command>
  ```

  NOTE: if a database has not had alembic run against it, but nonetheless has
  up-to-date schema, alembic commands will fail saying it is not on the latest
  version. You can "stamp" the database as being at HEAD (refering here to alembic
  versions, NOT git commits) with the following:
  ```
  $ hatch --env alembic run alembic --name test stamp head
  ```


  When we are ready to publish a new version of this pacakge we do the following:
  1. Update the version spec in `pyproject.toml` (kudos for make doing this process with an alpha, or release candidate first)
  2. Create a release via github using the version with a preceeding `v` as the tag name (ie `v0.0.3-rc4`). If this is an alpha, release candidate, etc make sure to check "pre-release" when creating the release (see https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository)
  3. Open a shell in the root of this repo for the remaing steps.
  4. run `git checkout <version tag>` (this will put you in a detached HEAD state at the commit where you tagged the version in the previous step)
  5. build the wheel and sdist packages: `hatch build --clean`
  6. make sure the wheel and sdist files have the intended version. for example, for version `v0.0.3-rc4` the wheel file will be `dist/tiktok_research_api_helper-0.0.3rc4-py3-none-any.whl`
  7. publish the packages: `hatch publish` (see https://hatch.pypa.io/1.12/publish/ for more info on how to configure)
  8. build new version of docker image (NOTE: omit the leading "v" as pip does not
     accept that in a version specifier):
      ```shell
      bash -c 'VERSION=<PIP VERSION SPECIFIER HERE>; docker build -t ghcr.io/cybersecurityfordemocracy/tiktok_research_api_helper:${VERSION} -t ghcr.io/cybersecurityfordemocracy/tiktok_research_api_helper:v${VERSION} --build-arg VERSION=${VERSION} .'
      ```
      if this is the latest release (ie not an alpha, beta, or release candidate) also tag it as latest:
      ```shell
       bash -c 'VERSION=<PIP VERSION SPECIFIER HERE>; docker tag ghcr.io/cybersecurityfordemocracy/tiktok_research_api_helper:${VERSION} ghcr.io/cybersecurityfordemocracy/tiktok_research_api_helper:latest'
      ```
  9. push docker image to container registery
      ```shell
      docker push ghcr.io/cybersecurityfordemocracy/tiktok_research_api_helper:${VERSION}
      ```


pkgId: f098febe5c7a8acc55425011d336db18b2c2ef2f620c2b4bba15188cccef1dce
name: python-tikzify-help
arch: noarch
version: 1.1.3
epoch: 0
release: 1
summary: Development documents and examples for tikzify
url: https://pypi.org/project/tikzify/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tikzify-1.1.3-1.src.rpm
location_href: Packages/python-tikzify-help-1.1.3-1.noarch.rpm
checksum_type: sha256
rpm_license:
  MIT License  Copyright (c) 2017 Neil Girdhar  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: 065cb14befa6defe83edb85ba0723d9a890abf5118426fa67e2897bf1c438959
name: python-tilecloud-help
arch: noarch
version: 1.12.4
epoch: 0
release: 1
summary: Development documents and examples for tilecloud
url: https://github.com/camptocamp/tilecloud
rpm_license: BSD-2-Clause
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tilecloud-1.12.4-1.src.rpm
location_href: Packages/python-tilecloud-help-1.12.4-1.noarch.rpm
checksum_type: sha256
description:
  A powerful utility for generating, managing, transforming, and visualizing map tiles in multiple formats.



  TileCloud is a powerful utility for generating, managing, transforming, visualizing and map tiles in multiple
  formats. It can create, read update, delete tiles in multiple back ends, called TileStores. Existing
  TileStores include:

  - HTTP/REST in any layout
  - WMTS
  - Amazon [S3](http://aws.amazon.com/s3/) and [SQS](http://aws.amazon.com/sqs/)
  - [MBTiles](https://github.com/mapbox/mbtiles-spec)
  - [TileJSON](https://github.com/mapbox/TileJSON)
  - [Mapnik](http://mapnik.org/) (via [mapnik2](http://pypi.python.org/pypi/mapnik2))
  - [Memcached](http://memcached.org/)
  - Local file system
  - Log files in any format

  TileCloud is not limited to image tiles, it can also handle other tile data such as
  [UTFGrid](https://github.com/mapbox/utfgrid-spec), or elevation data in JSON format.

  TileCloud uses Python's generators and iterators to efficiently stream tens of millions of tiles, and can
  handle multiple tiles in parallel using Python's
  [multiprocessing](http://docs.python.org/library/multiprocessing.html) library.

  Example tasks that TileCloud makes easy include:

  - Visualize tiles stored in any TileStore with [OpenLayers](http://www.openlayers.org/), [Google
    Maps](http://maps.google.com/), [jQuery Geo](http://www.jquerygeo.com/),
    [Leaflet](http://leaflet.cloudmade.com/), [Polymaps](http://polymaps.org/), [Modest
    Maps](http://www.modestmaps.com/), and [OpenWebGlobe](http://www.openwebglobe.org/).
  - Convert sixty million PNG tiles stored in S3 to JPEG format with different quality settings at different
    zoom levels.
  - Transform image formats and perform arbitrary image transformations on the fly, including PNG
    optimization.
  - Generate semi-transparent tiles with embedded tile coordinates for debugging.
  - Pack multiple tile layers into a single tile on the server.
  - Efficiently calculate bounding boxes and detect missing tiles in existing tile datasets.
  - Simulate fast and slow tile servers.
  - Efficiently delete millions of tiles in S3.
  - Read JSON tiles from a tarball, compress them, and upload them.



  TileCloud depends on some Python modules. It's easiest to install them with `pip` in a `virtualenv`:

      $ pip install poetry
      $ poetry install

  For a quick demo, run

      $ poetry run tc-viewer --root=3/4/2 'http://gsp2.apple.com/tile?api=1&style=slideshow&layers=default&lang=en_GB&z=d&x=d&y=d&v=9'

  and point your browser at <http://localhost:8080/>. Type `Ctrl-C` to terminate `tc-viewer`.

  Next, download an example MBTiles file from [MapBox](http://mapbox.com/), such as [OSM map](https://wiki.openstreetmap.org/wiki/MBTiles#Offline-Karten). We can quickly find out more about this tile set
  with the `tc-info` command. For example, to count the number of tiles:

      $ poetry run tc-info -t count OSM-OpenCPN2-MagellanStrait.mbtiles
      51672

  To calculate the bounding pyramid:

      $ poetry run tc-info -t bounding-pyramid -r OSM-OpenCPN2-MagellanStrait.mbtiles
      8/72/168:+16/+16
      10/296/680:+40/+32
      12/1184/2728:+144/+104
      14/4760/10935:+536/+393
      16/19048/43760:+2112/+1552

  To check for missing tiles against a bounding pyramid:

      $ poetry run tc-info -b 8/72/168:16/*/* -t completion OSM-OpenCPN2-MagellanStrait.mbtiles
      8 256/65536 (0%)
      9 0/262144 (0%)
      10 832/1048576 (0%)
      11 0/4194304 (0%)
      12 4392/16777216 (0%)
      13 0/67108864 (0%)
      14 21408/268435456 (0%)
      15 0/1073741824 (0%)
      16 24784/4294967296 (0%)

  This shows, for each zoom level, the number of tiles at that zoom level, the total number of tiles expected at
  that zoom level for the specified bounding pyramid (`8/0/0:16/*/*` means all tiles from level 8 to level 16),
  and a percentage completion. This can be useful for checking that a tile set is complete.

  Now, display this MBTiles tile set on top of the [OpenStreetMap](http://www.openstreetmap.org/) tiles and a
  debug tile layer:

      $ poetry run tc-viewer tiles.openstreetmap_org OSM-OpenCPN2-MagellanStrait.mbtiles tiles.debug.black

  You'll need to point your browser at <http://localhost:8080/> and choose your favorite library.

  `tc-info` and `tc-viewer` are utility programs. Normally you use TileCloud by writing short Python programs
  that connect the TileCloud's modules to perform the action that you want.

  As a first example, run the following:

      $ poetry run examples/download.py

  This will download a few tiles from [OpenStreetMap](http://www.openstreetmap.org/) and save them in a local
  MBTiles file called `local.mbtiles`. Look at the source code to `examples/download.py` to see how it works. If
  there are problems with the download, just interrupt it with `Ctrl-C` and re-run it: the program will
  automatically resume where it left off.

  Once you have downloaded a few tiles, you can view them directly with `tc-viewer`:

      $ poetry run tc-viewer --root=4/8/5 local.mbtiles tiles.debug.black

  Point your browser at <http://localhost:8080> as usual. The `--root` option to `tc-viewer` instructs the
  viewer to start at a defined tile, rather than at 0/0/0, so you don't have to zoom in to find the tiles that
  you downloaded.





  - Add the following extra dependencies `azure`, `aws`, `wsgi`, `redis`, `all`.



  TileCloud always represents tile coordinates as strings like `z/x/y`. TileCloud primarily works in tile
  coordinates, although geographic coordinates can be used in some places.

  Tile layouts convert tile coordinates to and from strings for use in paths, URLs, keys, etc.

  Tile grids are used to convert tile coordinates to and from geographic coordinates, and to relate tiles with
  different z values.

  Bounding pyramids represent a range of tiles in the x, y and z directions. The format is basically
  `minz/minx/miny:maxz/maxx/maxy` but `maxz` is optional and `maxz`, `maxx` and `maxy` can be prefixed with an
  `+` sign to indicate that they are relative to the corresponding `min` value. This is probably best
  demonstrated by a few examples:

  `4/10/20:15/25`

  : This corresponds to a range of tiles with z=4, x=10..15 and y=20..25

  `4/10/20:+5/+5`

  : This is the same range (z=4, x=10..15, y=20..25) but expressed using relative sizes.

  `4/10/20:5/15/20`

  : This is the same range of tiles above, but also includes all the tiles at level z=5 which overlap the
  above range. TileCloud uses the tile grid to calculate which tiles from level z=5 to include.

  `4/10/20:+1/+5/+5`

  : This represents the range same as the previous example using a relative `maxz`.



  The `tc-copy` command can be used to copy tiles between different TileStores. If a TileStore has the side
  effect of generating tiles, then it functions as a quick tile generation utility. First, some quick examples.

  To convert from one tile format to another, just copy from source to destination. For example, to convert an
  MBTiles file in to a ZIP file, just run:

      $ poetry run tc-copy OSM-OpenCPN2-MagellanStrait.mbtiles geography-class.zip

  You can check this worked with `unzip`:

      $ unzip -t geography-class.zip

  Equally, `tc-copy` can be used to download multiple tiles:

      $ poetry run tc-copy --bounding-pyramid 4/0/0:0/16/16 tiles.openstreetmap_org osm-up-to-z4.mbtiles

  Here we downloaded zoom levels 0 to 4 of the OpenStreetMap tiles into a local MBTiles file. The
  `--bounding-pyramid` option is required because otherwise we would download _all_ OpenStreetMap tiles -- which
  might take some time (and also contravene OpenStreetMap's tile usage policy). Note that, by default, `tc-copy`
  won't overwrite tiles if they already exist in the destination. This means that you can interrupt the above
  command and restart it, and it will resume where it was interrupted. If you want to overwrite tiles in the
  destination then pass the `--overwrite` option to `tc-copy`.

  In the same way, `tc-copy` can also be used to upload tiles. For example, to upload an MBTiles file to S3,
  just use:

      $ poetry run tc-copy osm-up-to-z4.mbtiles s3://bucket/prefix/d/d/d.jpg

  `bucket` is the name of your S3 bucket. You'll need to have set the `AWS_ACCESS_KEY_ID` and
  `AWS_SECRET_ACCESS_KEY` environment variables to have permission to upload to S3. The rest of the destination
  (`prefix/d/d/d.jpg`) is a template describing the layout of the tiles in S3. It's a normal Python
  format string: `d` means substitute the tile's `x` coordinate as a decimal integer.

  You can pass the same `s3://` URL to `tc-viewer`. This allows you to visualize your tiles stored in S3 with
  your favorite mapping library. For example:

      $ poetry run tc-viewer s3://bucket/prefix/d/d/d.jpg

  Here, `tc-viewer` is acting as a proxy, serving tiles stored in S3 over HTTP, bypassing any caches or access
  controls (assuming you have the correct credentials, of course). This allows you to visualize the exact tiles
  that you've stored.



  At [FOSS4G-NA](http://foss4g-na.org/), [MapBox](http://mapbox.com/) presented an excellent strategy for
  [rendering the world](http://mapbox.com/blog/rendering-the-world/). TileCloud supports the subdivision
  strategy. To run the demo, execute:

      $ poetry run examples/renderingtheworld.py

  This will generate tiles from a WMTS tile server and save them in a local MBTiles tiles. When the above
  command is complete, you can see the bounding pyramid of the generated tiles:

      $ poetry run tc-info -t bounding-pyramid -r medford_buildings.mbtiles
      0/0/0:+1/+1
      1/0/0:+1/+1
      2/0/1:+1/+1
      3/1/2:+1/+1
      4/2/5:+1/+1
      5/5/11:+1/+1
      6/10/23:+1/+1
      7/20/47:+1/+1
      8/40/94:+2/+2
      9/80/189:+2/+1
      10/162/378:+1/+2
      11/324/757:+2/+2
      12/649/1514:+3/+3
      13/1299/3028:+4/+5
      14/2598/6057:+7/+8
      15/5196/12114:+13/+15

  You can look at these tiles (which show buildings in Medford, OR) with the command:

      ./tc-viewer --root=7/20/47 tiles.openstreetmap_org medford_buildings.mbtiles



  `tc-viewer` can be used as a lightweight tile server, which can be useful for development, debugging and
  off-line demos. The TileStores passed as arguments to `tc-viewer` are available at the URL:

      http://localhost:8080/tiles/{index}/tiles/{z}/{x}/{y}

  where `{index}` is the index of the TileStore on the command line (starting from 0 for the first tile store),
  and `{z}`, `{x}` and `{y}` are the components of the tile coordinate. The second `tiles` in the URL is present
  to work around assumptions made by OpenWebGlobe. This layout is directly usable by most mapping libraries, see
  the code in `tilecloud/views/*.tpl` for examples. The host and port can be set with the `--host` and `--port` command
  line options, respectively.

  Note that there is no file extension. `tc-viewer` will automatically set the correct content type and content
  encoding headers if it can determine them, and, failing this, most browsers will figure it out for themselves.

  For convenience, `tc-viewer` serves everything in the `static` directory under the URL `/static`. This can be
  used to serve your favorite mapping library and/or application code directly for testing purposes.

  By default, `tc-viewer` will use [Tornado](http://www.tornadoweb.org/) as a web server, if it is available,
  otherwise it will fall back to [WSGIRef](http://docs.python.org/library/wsgiref.html). Tornado has reasonably
  good performance, and is adequate for local development and off-line demos, especially when used with a
  MBTiles TileStore. WSGIRef has very poor performance (it handles only one request at a time) and as such can
  be used as a "slow" tile server, ideal for debugging tile loading code or testing how your web application
  performs over a slow network connection. `tc-viewer` is particularly slow when used to proxy tiles being
  served by a remote server. You can set the server explicitly with the `--server` option.

  `tc-viewer` sets the `Access-Control-Allow-Origin` header to `*` for all the tiles it serves, this allows the
  tiles to be used as textures for WebGL applications running on different hosts/ports. For more information,
  see [Cross-Domain Textures](https://developer.mozilla.org/en/WebGL/Cross-Domain_Textures).

  `tc-viewer` is designed as a development tool, and the power that it offers comes at the expense of fragility.
  It makes many assumptions - including the benevolence of the user - that make it entirely unsuitable as a
  generic tile server. It should only be used in development or demonstration environments.



  `tc-viewer` supports most popular web mapping libraries out-of-the box. This can be very useful for quick,
  practical comparisons. If your favorite mapping library is missing, please submit an
  [issue](https://github.com/camptocamp/tilecloud/issues), or, even better, a [pull
  request](https://github.com/camptocamp/tilecloud/pulls).



  Please report bugs and feature requests using the [GitHub issue
  tracker](https://github.com/camptocamp/tilecloud/issues).

  If you'd like to contribute to TileCloud, please install the development requirements:

      $ pip install -r dev-requirements.txt

  TileCloud comes with unit tests in the `tilecloud/tests` directory. You can run these with the command:

      $ make test

  This is equivalent to:

      $ python setup.py nosetests

  For pull requests, it is very much appreciated if your code passes `prospector` without warnings. You can run
  prospector on the codebase with the command:

      $ make prospector



  Copyright (c) 2012, Tom Payne <twpayne@gmail.com> All rights reserved.
  Copyright (c) 2012, Camptocamp All rights reserved.

  Redistribution and use in source and binary forms, with or without modification, are permitted provided that
  the following conditions are met:

  - Redistributions of source code must retain the above copyright notice, this list of conditions and the
    following disclaimer.
  - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
    following disclaimer in the documentation and/or other materials provided with the distribution.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
  PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
  DAMAGE.

  vim: set filetype=rst spell spelllang=en textwidth=0:



  Install the pre-commit hooks:

  ```bash
  pip install pre-commit
  pre-commit install --allow-missing-config
  ```


pkgId: ed6e82b225216468d178dd1e0d052712557fa75f0fd5fadd2a2717168727f756
name: python-tiledb-cloud-help
arch: noarch
version: 0.13.0
epoch: 0
release: 1
summary: Development documents and examples for tiledb-cloud
url: https://pypi.org/project/tiledb-cloud/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tiledb-cloud-0.13.0-1.src.rpm
location_href: Packages/python-tiledb-cloud-help-0.13.0-1.noarch.rpm
checksum_type: sha256
description:
  This repository contains the Python client for the TileDB Cloud Service.





  See [Installation Instructions](https://docs.tiledb.com/cloud/client-api/installation)



  See [Quickstart](https://docs.tiledb.com/cloud/quickstart) section of the docs.



  See https://tiledb-inc.github.io/TileDB-Cloud-Py/



  Documentation uses [Quarto](https://quarto.org/) style documentation.

  - Install [Quarto for your OS](https://quarto.org/docs/get-started/)
  - Install documentation dependencies: `pip install .[docs]`
  - Update the [docs/\_quarto.yaml](docs/_quarto.yaml) file accordingly ([read the quartodoc documentation on how to do that](https://quarto.org/docs/get-started/))
  - Build the docs: `quartodoc build --config docs/_quarto.yaml`
  - Preview the generated docs: `quarto preview docs/`
  - Create a relevant PR



  - Selection:
    - All tests: `pytest`
    - All tests with verbosity: `pytest -vs`
    - Tests with `taskgraphs` in their names: `pytest -vsk taskgraphs`
  - Credentials:
    - These tests run on TileDB Cloud using your current environment variable `TILEDB_REST_TOKEN` -- you will need a valid API token for the tests to pass
    - For continuous integration, the token is configured for the `unittest` user and all tests should pass
    - For interactive use, if your `TILEDB_REST_TOKEN` points to your own account, most tests will run, except for those that explicitly check against contents of the `unittest` account which are skipped



  This package contains modules and functions that will be run in the TileDB Cloud as UDFs. Local ingestor changes can be tested in the cloud by using a feature of [cloudpickle](https://github.com/cloudpipe/cloudpickle?tab=readme-ov-file#overriding-pickles-serialization-mechanism-for-importable-constructs). Below is a runnable example. `TILEDB_NAMESPACE` is your TileDB namespace ("TileDB-Inc", for example). `TILEDB_ACCESS_CREDENTIAL_NAME` is the name of the stored credentials for accessing `AWS_BUCKET`. `IMAGE_FILE_KEY` is the key for an object in that bucket and `OUTPUT_GROUP_KEY` is the key to be used for the group that the `ingest()` UDF will create in `AWS_BUCKET`.

  ```python
  from tiledb.cloud._vendor import cloudpickle

  import tiledb.cloud.bioimg

  cloudpickle.register_pickle_by_value(tiledb.cloud.bioimg)

  tiledb.cloud.bioimg.ingest(
      source="s3://AWS_BUCKET/IMAGE_FILE_KEY",
      output="s3://AWS_BUCKET/OUTPUT_GROUP_KEY",
      config=None,
      namespace="TILEDB_NAMESPACE",
      acn="TILEDB_ACCESS_CREDENTIAL_NAME",
      ingest_resources={"cpu": "8", "memory": "32Gi"},
  )
  ```

  In this case `tiledb.cloud.bioimg.ingest()` uses cloudpickle to send a local function to TileDB Cloud, and `tdbcp.register_pickle_by_value(tiledb.cloud.bioimg)` directs cloudpickle to bring the currently imported `tiledb.cloud.bioimg` module along with the function. Your local version of the module will be used instead of the version currently deployed in TileDB Cloud.

  Note: your local changes to the Cloud-Py package will need to be installed in order for cloudpickle to serialize them, as cloudpickle needs to find them at runtime.



  Releasing is entirely automated. Releases made on GitHub using tags that start with "v", like "v0.12.28", trigger sdist and wheel builds and upload of those distributions to the Python Package Index.


pkgId: 65e7bc59d8473fb9ee4ce2edb251444b9f82445ad0b42dbdf80c6778fa868e72
name: python-timemate-help
arch: noarch
version: 0.0.12
epoch: 0
release: 1
summary: Development documents and examples for timemate
url: https://github.com/dagraham/timemate
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-timemate-0.0.12-1.src.rpm
location_href: Packages/python-timemate-help-0.0.12-1.noarch.rpm
checksum_type: sha256
description:
  This is the *TimeMate* user manual. It is best viewed at [GitHub.io](https://dagraham.github.io/timemate/).

  *TimeMate* is intended to help you keep track of where your time goes. It provides both a CLI and Shell interface with methods for

  - creating an *account*:
  The account could be the name of an *activity* or a *client* that occupies your time and for which a record would be useful.
  - creating a *timer* for an account:
  The timer provides an option for entering a "memo" as well as the account name and keeps a record of both the duration and the datetime for the time spent.
  - starting and pausing a timer:
  Automatically updates the timer for time spent and, when starting a timer on a new day, automatically creates a copy of the original timer for the new date.
  - reporting times spent:
      - by week:
      list times spent by day for a specified week for all accounts
      ![report-week](./png/week.png)
      - by account:
      list times spent for specified account(s) and month(s)
      ![report-account](./png/monthly.png)
      - by account tree:
      display aggregates of times spent for specified account(s) and month(s) in a tree diagram
      ![report-acount --tree](./png/tree.png)

      These reports reflect the setting `MINUTES=6` which causes all times to be rounded up to the nearest 6 minutes or 1/10 of an hour.


pkgId: 75974b0b23c71800a053e47799178a4227b8ca99ff2258e58da2ce31761b95f4
name: python-timeout-sampler-help
arch: noarch
version: 1.0.3
epoch: 0
release: 1
summary: Development documents and examples for timeout-sampler
url: https://github.com/RedHatQE/timeout-sampler
rpm_license: Apache-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-timeout-sampler-1.0.3-1.src.rpm
location_href: Packages/python-timeout-sampler-help-1.0.3-1.noarch.rpm
checksum_type: sha256
description:
  Utility class for waiting to any function output and interact with it in given time.



  ```bash
  pip3 install timeout-sampler
  ```



  ```python
  from random import randint
  from timeout_sampler import TimeoutSampler


  def random_number(start, end):
      return randint(start, end)


  samples = TimeoutSampler(
      wait_timeout=60,
      sleep=1,
      func=random_number,
      start=1,
      end=10,
  )
  for sample in samples:
      if sample == 5:
          break
  ```


pkgId: d8e8b4e09580b2c997b593bf680e204e7246a84ef7c3fcea723e6666e28fd5ed
name: python-timestep-help
arch: noarch
version: 12.0.86
epoch: 0
release: 1
summary: Development documents and examples for timestep
url: https://pypi.org/project/timestep/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-timestep-12.0.86-1.src.rpm
location_href: Packages/python-timestep-help-12.0.86-1.noarch.rpm
checksum_type: sha256
description:
  Timestep AI CLI - free, local-first, open-source AI

  **Development Setup**:

  ```console
  $ python3 -m pip install --upgrade pip
  $ python3 -m pip install --user pipx
  $ python3 -m pipx ensurepath
  $ pipx install poetry==1.8.3
  $ cp .env.example .env
  $ direnv allow # See https://direnv.net/#getting-started
  $ make
  $ timestep up --dev
  ```

  **Library Setup**:

  ```console
  $ python3 -m pip install --upgrade pip
  $ python3 -m pip install --user pipx
  $ python3 -m pipx ensurepath
  $ pipx install timestep
  $ timestep up
  ```

  **Usage**:

  ```console
  $ timestep [OPTIONS] COMMAND [ARGS]...
  ```

  **Options**:

  * `--install-completion`: Install completion for the current shell.
  * `--show-completion`: Show completion for the current shell, to copy it or customize the installation.
  * `--help`: Show this message and exit.

  **Commands**:

  * `up`: Start up the Timestep AI platform.



  Start up the Timestep AI platform.

  **Usage**:

  ```console
  $ timestep up [OPTIONS]
  ```

  **Options**:

  * `--dev / --no-dev`: [default: no-dev]
  * `--host TEXT`: [default: 0.0.0.0]
  * `--port INTEGER`: [default: 8000]
  * `--help`: Show this message and exit.


pkgId: 79feb1c36b328b866233c326be678c056621badf1cd4f9b6a00b1cd2853b4dba
name: python-timetagger-help
arch: noarch
version: 24.12.2
epoch: 0
release: 1
summary: Development documents and examples for timetagger
url: https://github.com/almarklein/timetagger
rpm_license: GPL-3.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-timetagger-24.12.2-1.src.rpm
location_href: Packages/python-timetagger-help-24.12.2-1.noarch.rpm
checksum_type: sha256
description:
  An open source time tracker with a focus on a simple and interactive user experience.

  * Website: https://timetagger.app
  * Github: https://github.com/almarklein/timetagger

  <br />
  <img src='https://timetagger.app/screenshot1.png' width='400px' />


pkgId: 415a121396591b1959af2213631362254adcf0096154e05970a39f5293aacfa3
name: python-timezone-adapter-help
arch: noarch
version: 0.1.0
epoch: 0
release: 1
summary: Development documents and examples for timezone-adapter
url: https://github.com/miguepoloc/timezone-adapter
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-timezone-adapter-0.1.0-1.src.rpm
location_href: Packages/python-timezone-adapter-help-0.1.0-1.noarch.rpm
checksum_type: sha256
description:
  A Python library that provides an easy-to-use interface for converting and manipulating datetime objects across different time zones.

  [![PyPI version](https://badge.fury.io/py/timezone-adapter.svg)](https://badge.fury.io/py/timezone-adapter)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  [![Python Versions](https://img.shields.io/pypi/pyversions/timezone-adapter.svg)](https://pypi.org/project/timezone-adapter/)



  - Convert between time zones using numeric offset or timezone name
  - Convert to and from UTC
  - Calculate minimum and maximum dates for a specific day
  - Support for both timezone offsets and timezone names (e.g., 'America/Bogota')
  - Type hints support
  - Zero dependencies (except pytz)


  ```bash
  pip install timezone-adapter
  ```



  ```python
  from datetime import datetime
  from timezone_adapter import TimeZoneAdapter


  tz_adapter = TimeZoneAdapter(-5)  # UTC-5


  tz_adapter = TimeZoneAdapter('America/Bogota')


  local_time = datetime.now()
  utc_time = tz_adapter.to_utc(local_time)


  min_date, max_date = tz_adapter.get_min_max_datetime_today()
  ```






  Initialize with either a numeric offset (hours from UTC) or timezone name.


  Convert a local datetime to UTC.


  Convert a UTC datetime to local time.


  Get the minimum and maximum datetime for the current day.


  Get the minimum and maximum datetime for a specific date.





  Clone the repository

  ```bash
  git clone https://github.com/miguepoloc/timezone-adapter.git
  cd timezone-adapter
  ```

  Create and activate virtual environment

  ```bash
  python -m venv .venv
  source .venv/bin/activate # On Windows: .venv\Scripts\activate
  ```

  Install development dependencies

  ```bash
  pip install -e ".[dev]"
  ```

  Run tests

  ```bash
  pytest
  ```




  We use several tools to ensure code quality:

  - `black` for code formatting
  - `isort` for import sorting
  - `mypy` for type checking
  - `flake8` for style guide enforcement

  Run all checks with:

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




  Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
  3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
  4. Push to the branch (`git push origin feature/AmazingFeature`)
  5. Open a Pull Request



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



  Miguel Angel Polo Castañeda - [@miguepoloc](https://github.com/miguepoloc)



  - Thanks to the `pytz` library for timezone support
  - Inspired by the need for simpler timezone handling in Python


pkgId: 06165b7a6ec0a2d8a595e0a2cbbf261d5a154a92c245ebc73d960d680f7d3f44
name: python-tinkoff-investments-help
arch: noarch
version: 0.2.0b109
epoch: 0
release: 1
summary: Development documents and examples for tinkoff-investments
url: https://github.com/RussianInvestments/invest-python
rpm_license: Apache-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tinkoff-investments-0.2.0b109-1.src.rpm
location_href: Packages/python-tinkoff-investments-help-0.2.0b109-1.noarch.rpm
checksum_type: sha256
description:
  [![PyPI](https://img.shields.io/pypi/v/tinkoff-investments)](https://pypi.org/project/tinkoff-investments/)
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/tinkoff-investments)](https://www.python.org/downloads/)
  ![GitHub](https://img.shields.io/github/license/tinkoff/invest-python)
  ![PyPI - Downloads](https://img.shields.io/pypi/dm/tinkoff-investments)

  Данный репозиторий предоставляет клиент для взаимодействия с торговой платформой [Тинькофф Инвестиции](https://www.tinkoff.ru/invest/) на языке Python.

  - [Документация](https://RussianInvestments.github.io/invest-python/)
  - [Документация по Invest API](https://RussianInvestments.github.io/investAPI/)



  <!-- termynal -->

  ```
  $ pip install tinkoff-investments
  ```



  - &#9745; Синхронный и асинхронный GRPC клиент
  - &#9745; Возможность отменить все заявки
  - &#9745; Выгрузка истории котировок "от" и "до"
  - &#9745; Кеширование данных
  - &#9745; Торговая стратегия





  ```python
  from tinkoff.invest import Client

  TOKEN = 'token'

  with Client(TOKEN) as client:
      print(client.users.get_accounts())
  ```



  В Tinkoff Invest API есть два контура - "боевой", предназначенный для исполнения ордеров на бирже и "песочница", предназначенный для тестирования API и торговых гипотез, заявки с которого не выводятся на биржу, а исполняются в эмуляторе.

  Переключение между контурами реализовано через target, INVEST_GRPC_API - "боевой", INVEST_GRPC_API_SANDBOX - "песочница"

  ```python
  from tinkoff.invest import Client
  from tinkoff.invest.constants import INVEST_GRPC_API

  TOKEN = 'token'

  with Client(TOKEN, target=INVEST_GRPC_API) as client:
      print(client.users.get_accounts())
  ```

  > :warning: **Не публикуйте токены в общедоступные репозитории**
  <br/>

  Остальные примеры доступны в [examples](https://github.com/RussianInvestments/invest-python/tree/main/examples).



  Для тех, кто хочет внести свои изменения в проект.

  - [CONTRIBUTING](https://github.com/RussianInvestments/invest-python/blob/main/CONTRIBUTING.md)



  Лицензия [The Apache License](https://github.com/RussianInvestments/invest-python/blob/main/LICENSE).


pkgId: d896988c3f522cdd266b688e5994db4498417b434b440b6b798f859d088ddc9c
name: python-tiny-userpic-help
arch: noarch
version: 0.3.3
epoch: 0
release: 1
summary: Development documents and examples for tiny-userpic
url: https://github.com/shpaker/tiny-userpic/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tiny-userpic-0.3.3-1.src.rpm
location_href: Packages/python-tiny-userpic-help-0.3.3-1.noarch.rpm
checksum_type: sha256
description:
  Oversimplified Github-like userpic (avatar) generator

  [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
  [![PyPI](https://img.shields.io/pypi/v/tiny-userpic.svg)](https://pypi.python.org/pypi/tiny-userpic)
  [![PyPI](https://img.shields.io/pypi/dm/tiny-userpic.svg)](https://pypi.python.org/pypi/tiny-userpic)



  Library can be installed using pip:

  ```bash
  pip install tiny-userpic
  ```



  ```python
  from PIL.Image import Image

  from userpic import make_userpic_image


  image: Image = make_userpic_image(
      size=(7, 5),
      padding=(20, 10),
      mode='RGB',
      image_size=(300, 300),
      background='white',
      foreground='black',
  )


  with open('output.jpeg', 'wb') as fp:
      image.save(fp)
  ```



  ```python

  from userpic import make_userpic_svg


  image: str = make_userpic_svg(
    size=(7, 5),
    padding=(20, 10),
    image_size=(300, 300),
    background='white',
    foreground='black',
  )


  with open('output.svg', 'w') as fp:
    fp.write(image)
  ```



  ![Awesome genearted userpic!](example.png)


pkgId: 1a14b14f4f4676eb204bfce72ad068e8f132a38a48376d7cbc57c40db6cea54a
name: python-tinysync
arch: noarch
version: 0.0.19
epoch: 0
release: 1
url: https://github.com/HengyueLi/tinysync
rpm_license: LICENSE.md
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tinysync-0.0.19-1.src.rpm
location_href: Packages/python-tinysync-0.0.19-1.noarch.rpm
checksum_type: sha256
summary:
  TinySync is a two-path synchronization algorithm implemented in pure Python that can synchronize files between any two kinds of backends.

description:
  TinySync is a two-path synchronization algorithm implemented in pure Python that can synchronize files between any two kinds of **backends**. A **backend** could be a local file system, a WebDAV server, or any other user-defined backend. The synchronization algorithm is abstracted from the project [syncrclone](https://github.com/Jwink3101/syncrclone). In principle, this project is compatible with any operating system, although most testing has been conducted on Ubuntu.



  ```
  pip install tinysync
  ```




  This example demonstrates synchronizing a remote storage (WebDAV) with a local directory.


  ```python

  import tinysync



  backendA = tinysync.backend.LocalFS(dirPath="/home/XXX/Desktop/p1")



  options = {'webdav_hostname': "...",'webdav_login': "...",'webdav_password':"..."}
  backendB = tinysync.backend._WebDAV(dirPath='p2',options=options)



  tinysync.synchronization(backendA,backendB)

  ```


  In this example, files are synchronized between a local directory and a remote directory on an SSH server.

  ```python
  import tinysync


  config={"hostname":'...',"username":'...',"password":'...',}
  remote_path = '/home/user/path'  # the remote directory to list
  backendA = tinysync.backend.NixSSH(dirPath=remote_path,paramikoConfig=config)



  options = {'webdav_hostname':"...",'webdav_login':"...",'webdav_password':"...",}
  backendB = tinysync.backend._WebDAV(dirPath='p2',options=options)



  tinysync.synchronization(backendA,backendB)

  ```


  This functionality allows synchronization between any two remote storage locations. The machine running this code acts as a "working machine" and retains no information about the two backends. All state information is stored on the backend side.




  rclone:

  ```python
  rclone = tinysync.backend.Rclone(dirPath="disk:path/to/here")
  ```





  For general cases, you can define your own backend interface by creating a new backend class. Detailed methods and implementation examples can be found in `tinysync.backend.abc`


  ```python

  from tinysync.backend.abc import Backend

  class YourBackend(Backend):

      def __init__(...):
          ...


      def listPath(self,...):
          ...

      ...

  ```



  Do NOT delete the workdir (the default is .tinysync) on backend-A while keeping it on backend-B. It will delete all files inside backend-B. Personally, I think this is not well-designed in [syncrclone](https://github.com/Jwink3101/syncrclone). However, I will not modify this "property" anymore. If you want to resync, deleting the workdir on both sides is safe.



  - `tinysync.backend.LocalFS`
  - `tinysync.backend._WebDAV`
  - `tinysync.backend.NixSSH`
  - `tinysync.backend.FTP` (example: `FTP(dirPath="",host='127.0.0.1',username='123',password='456')`)
  - `tinysync.backend.Rclone` (consider to use [syncrclone](https://github.com/Jwink3101/syncrclone))


  more ...


pkgId: c6f1c4b9b9417450317a2633324600d087c418736b7420cfdeacf1767f350615
name: python-tipo-kgen-help
arch: noarch
version: 0.1.7
epoch: 0
release: 1
summary: Development documents and examples for tipo-kgen
url: https://github.com/KohakuBlueleaf/KGen
rpm_license: Apache-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tipo-kgen-0.1.7-1.src.rpm
location_href: Packages/python-tipo-kgen-help-0.1.7-1.noarch.rpm
checksum_type: sha256
description:
  KGen is a project that utilizes Large Language Models (LLMs) to generate prompts for Text-to-Image (T2I) models.

  The goal is to enable T2I models to use more complicated and detailed captions during training while maintaining good usability. Which avoid the requirements of multi-level caption or caption dropout for "better flexibility".

  This project contains the implementation of some prompt gen model, framework and sampling method.

  The implemented framework or sampling method can also be used in other domain of field, but this project will only focus in prompt generation at this time.



  Installation:

  ```bash
  pip install tipo-kgen
  ```

  Use in code:
  Read the [Example code](scripts/example.py) or [TIPO-test script](scripts/tipo-test.py) for more informations.



  TGTS: Token Group Tree Sampling for Efficient Multi-Variants Sampling in Language Model

  Implementation can be found in [sampling module](src/kgen/sampling/). <br>
  Experiment scripts can be found in [scrtips](scripts/exp/tgts/)



  TIPO: Text to Image with text Presampling for Optimal prompting

  Arxiv Paper: https://arxiv.org/abs/2411.08127

  TIPO is a LLM model system designed for generating detailed prompt from input tags or caption. Unlike DTG, TIPO can handle both tags and Natural language. In theory, you can also design your own tag in linguistic way. (For example, long blue hair is acceptable tag in TIPO and will not break the model).
  The main difference between TIPO and DTG is:

  1. TIPO is trained with both Natural Language captions and Danbooru tags, the "nl+tags" data are also not only from danbooru but also some general text-image dataset like Coyo-11M
  2. TIPO is trained with better format which achieve some ability on "generate meta infos" such as artists/characters. (or, you can say TIPO have ability to "choose" which artist tag is suitable with current content)
  3. TIPO is trained on 30M entries dataset, with more than 25M entries have NL caption, more than 18M entries have tags



  |                   | TIPO-200M                                                                      | TIPO-200M-ft                                                                         | TIPO-500M                                                                      |
  | ----------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
  | Arch              | LLaMA                                                                          | LLaMA                                                                                | LLaMA                                                                          |
  | Max ctx length    | 1024                                                                           | 1024                                                                                 | 1024                                                                           |
  | Batch Size        | 2048                                                                           | 2048                                                                                 | 3584                                                                           |
  | Training dataset  | Danbooru, GBC10M, 5epoch<br />Danbooru, GBC10M, Coyo11M, 3epoch              | Danbooru(pixtral), Coyo11M, 2epoch                                                   | Danbooru, GBC10M, Coyo11M, 5epoch                                            |
  | Real Token Seen*  | 40B token                                                                      | 50B (10B more from TIPO-200M)                                                       | 30B token                                                                      |
  | Training Hardware | RTX 3090 x 4                                                                   | RTX 3090 x 4                                                                         | H100 x 8                                                                       |
  | Training Time     | 420 hour`                                                                      | 120 hour`                                                                            | 100 hour`                                                                      |
  | Huggingface       | [KBlueLeaf/TIPO-200M · Hugging Face](https://huggingface.co/KBlueLeaf/TIPO-200M) | [KBlueLeaf/TIPO-200M-ft · Hugging Face](https://huggingface.co/KBlueLeaf/TIPO-200M-ft) | [KBlueLeaf/TIPO-500M · Hugging Face](https://huggingface.co/KBlueLeaf/TIPO-500M) |

  *: We only count "non-padding token" in the token seen, since all the training data have very large length range.`<br/>`
  `: Since the training data is pretty short, it cost more time to reach same token seen than general LLM pretraining.<br/>````
  As reference, with 4096 as max ctx length and almost all the data have reach that length, you may only need 2days to reach 10B token seen on RTX 3090 x 4 with 200M model.



  A Simple DEMO for TIPO (with t2i functionality included):
  https://huggingface.co/spaces/KBlueLeaf/TIPO-DEMO

  TIPO-extension: https://github.com/KohakuBlueleaf/z-tipo-extension



  ```bibtex
  @misc{yeh2024tipotextimagetext,
        title={TIPO: Text to Image with Text Presampling for Prompt Optimization},
        author={Shih-Ying Yeh and Sang-Hyun Park and Giyeong Oh and Min Song and Youngjae Yu},
        year={2024},
        eprint={2411.08127},
        archivePrefix={arXiv},
        primaryClass={cs.CV},
        url={https://arxiv.org/abs/2411.08127},
  }
  ```



  DanTagGen is an early project under KGen, trained on the Danbooru tag system. Danbooru tags often have "overlaps" or "duplicates", such as:

  - "long hair" and "very long hair"
  - "thighhighs", "black thighhighs", and "black legwears"

  Although users naturally avoid these duplications, the model may benefit from having the complete set of tags for better results, as that is how they were trained.

  In addition to overlapping tags, "character tags" also need to be mentioned. For simplicity, a "DreamBooth style" prompt can be used to illustrate this:

  - Original: a dog
  - DreamBooth: a \[V\] dog
  - What User wants: \[V\]

  As shown above, users tend to ignore all the "descriptions" that directly point to the character. In this situation, utilizing LLMs to "connect" the "trigger word" and "related description" is a promising approach. DanTagGen is an experimental project to prove this concept.



  DanTagGen uses the LLaMA architecture with 400M parameters.



  DanTagGen is trained on posts with the top 75% favorite count in Danbooru, which amounts to 5 million entries.

  More details about the architecture and training can be found on the Hugging Face page: [KBlueLeaf/DanTagGen-beta · Hugging Face](https://huggingface.co/KBlueLeaf/DanTagGen-beta)



  * Hugging Face Space: [DTG Demo - a Hugging Face Space by KBlueLeaf](https://huggingface.co/spaces/KBlueLeaf/DTG-demo)
  * SD-WebUI Extension: [KohakuBlueleaf/z-a1111-sd-webui-dtg: A sd-webui extension for utilizing DanTagGen to &#34;upsample prompts&#34;. (github.com)](https://github.com/KohakuBlueleaf/z-a1111-sd-webui-dtg)
  * ComfyUI Node: [toyxyz/a1111-sd-webui-dtg_comfyui: A sd-webui extension for utilizing DanTagGen to &#34;upsample prompts&#34;. (github.com)](https://github.com/toyxyz/a1111-sd-webui-dtg_comfyui)


pkgId: e981f2287a93d5589f38eb24bc19c64017a0499fee0a0a0e8155517034b5f43f
name: python-titan-core-help
arch: noarch
version: 0.11.0
epoch: 0
release: 1
summary: Development documents and examples for titan-core
url: https://github.com/Titan-Systems/titan
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-titan-core-0.11.0-1.src.rpm
location_href: Packages/python-titan-core-help-0.11.0-1.noarch.rpm
checksum_type: sha256
description:
  Titan Core helps you provision, deploy, and secure resources in Snowflake. It replaces tools like Terraform, Schemachange, or Permifrost.

  Deploy any Snowflake resource, including users, roles, schemas, databases, integrations, pipes, stages, functions, stored procedures, and more. Convert adhoc, bug-prone SQL management scripts into simple, repeatable configuration.

  Titan Core is for:

  * DevOps engineers looking to automate and manage Snowflake infrastructure.
  * Analytics engineers working with dbt who want to manage Snowflake resources without macros.
  * Data platform teams who need to reliably manage Snowflake with CI/CD.
  * Organizations that prefer a git-based workflow for infrastructure management.
  * Teams seeking to replace Terraform for Snowflake-related tasks.

  ```
      ╔══════════╗                                           ╔═══════════╗
      ║  CONFIG  ║                                           ║ SNOWFLAKE ║
      ╚══════════╝                                           ╚═══════════╝
    ┏━━━━━━━━━━━┓                                        ┏━━━━━━━━━━━┓
  ┌─┫ WAREHOUSE ┣─────┐                                ┌─┫ WAREHOUSE ┣───────────┐
  │ ┗━━━━━━━━━━━┛     │                    ALTER       │ ┗━━━━━━━━━━━┛           │
  │ name:         ETL │─────┐           ┌─ WAREHOUSE ─▶│ name:         ETL       │
  │ auto_suspend: 60  │     │           │              │ auto_suspend: 300 -> 60 │
  └───────────────────┘  ╔══▼═══════════╩═╗            └─────────────────────────┘
                         ║                ║
                         ║   TITAN CORE   ║
    ┏━━━━━━┓             ║                ║              ┏━━━━━━┓
  ┌─┫ ROLE ┣──────────┐  ╚══▲═══════════╦═╝            ┌─┫ ROLE ┣────────────────┐
  │ ┗━━━━━━┛          │     │           │              │ ┗━━━━━━┛                │
  │ name: TRANSFORMER │─────┘           └─ CREATE ────▶│ name: TRANSFORMER       │
  └───────────────────┘                    ROLE        └─────────────────────────┘
  ```




   * **Declarative** » Generates the right SQL to make your config and account match

   * **Comprehensive** » Nearly every Snowflake resource is supported

   * **Flexible** » Write resource configuration in YAML or Python

   * **Fast** » Titan Core runs 50-90% faster than Terraform and Permifrost

   * **Migration-friendly** » Generate config automatically with the export CLI



  This project is licensed under the Apache 2.0 License - see [LICENSE](LICENSE) for details. The source code for Titan Core is available on [Github](https://github.com/Titan-Systems/titan).



  You can find comprehensive [Titan Core documentation on GitBook](https://titan-core.gitbook.io/titan-core).



  If you're new, the best place to start is with the Python package.



  ```sh
  python -m venv .venv
  source .venv/bin/activate
  python -m pip install titan-core
  ```



  ```bat
  python -m venv .venv
  .\.venv\Scripts\activate
  python -m pip install titan-core
  ```



  ```Python
  import os
  import snowflake.connector

  from titan.blueprint import Blueprint, print_plan
  from titan.resources import Grant, Role, Warehouse



  role = Role(name="transformer")

  warehouse = Warehouse(
      name="transforming",
      warehouse_size="large",
      auto_suspend=60,
  )

  usage_grant = Grant(priv="usage", to=role, on=warehouse)




  connection_params = {
      "account": os.environ["SNOWFLAKE_ACCOUNT"],
      "user": os.environ["SNOWFLAKE_USER"],
      "password": os.environ["SNOWFLAKE_PASSWORD"],
      "role": "SYSADMIN",
  }
  session = snowflake.connector.connect(**connection_params)




  bp = Blueprint(resources=[
      role,
      warehouse,
      usage_grant,
  ])




  plan = bp.plan(session)
  print_plan(plan) # =>
  """
  » titan core
  » Plan: 4 to add, 0 to change, 0 to destroy.

  + urn::ABCD123:warehouse/transforming {
    + name                                = "transforming"
    + owner                               = "SYSADMIN"
    + warehouse_type                      = "STANDARD"
    + warehouse_size                      = "LARGE"
    ...
  }

  + urn::ABCD123:role/transformer {
    + name    = "transformer"
    + owner   = "USERADMIN"
    + tags    = None
    + comment = None
  }

  + urn::ABCD123:grant/TRANSFORMER?priv=USAGE&on=warehouse/TRANSFORMING {
    + priv         = "USAGE"
    + on           = "transforming"
    + on_type      = "WAREHOUSE"
    + to           = TRANSFORMER
    ...
  }
  """



  bp.apply(session, plan) # =>
  """
  [TITAN_USER:SYSADMIN]  > USE SECONDARY ROLES ALL
  [TITAN_USER:SYSADMIN]  > CREATE WAREHOUSE TRANSFORMING warehouse_type = STANDARD ...
  [TITAN_USER:SYSADMIN]  > USE ROLE USERADMIN
  [TITAN_USER:USERADMIN] > CREATE ROLE TRANSFORMER
  [TITAN_USER:USERADMIN] > USE ROLE SYSADMIN
  [TITAN_USER:SYSADMIN]  > GRANT USAGE ON WAREHOUSE transforming TO TRANSFORMER
  """
  ```



  You can use the CLI to generate a plan, apply a plan, or export resources. To use the CLI, install the Python package and call `python -m titan` from the command line.

  The CLI allows you to `plan` and `apply` a Titan Core YAML config. You can specify a single input file or a directory of configs.

  In addition to `plan` and `apply`, the CLI also allows you to `export` resources. This makes it easy to generate a config for an existing Snowflake environment.

  To connect with Snowflake, the CLI uses environment variables. The following `are supported:

  * `SNOWFLAKE_ACCOUNT`
  * `SNOWFLAKE_USER`
  * `SNOWFLAKE_PASSWORD`
  * `SNOWFLAKE_DATABASE`
  * `SNOWFLAKE_SCHEMA`
  * `SNOWFLAKE_ROLE`
  * `SNOWFLAKE_WAREHOUSE`
  * `SNOWFLAKE_MFA_PASSCODE`
  * `SNOWFLAKE_AUTHENTICATOR`



  Show the help message

  ```sh
  titan --help













  ```

  Apply a resource config to Snowflake

  ```sh

  cat <<EOF > titan.yml
  roles:
    - name: transformer

  warehouses:
    - name: transforming
      warehouse_size: LARGE
      auto_suspend: 60

  grants:
    - to_role: transformer
      priv: usage
      on_warehouse: transforming
  EOF


  export SNOWFLAKE_ACCOUNT="my-account"
  export SNOWFLAKE_USER="my-user"
  export SNOWFLAKE_PASSWORD="my-password"


  titan plan --config titan.yml


  titan apply --config titan.yml
  ```

  Export existing Snowflake resources to YAML.

  ```sh
  titan export \
    --resource=warehouse,grant,role \
    --out=titan.yml
  ```

  The Titan Core Python package installs the CLI script `titan`. You can alternatively use Python CLI module syntax if you need fine-grained control over the Python environment.

  ```sh
  python -m titan plan --config titan.yml
  ```


  The Titan Core GitHub Action allows you to automate the deployment of Snowflake resources using a git-based workflow.



  ```YAML
  -- .github/workflows/titan.yml
  name: Deploy to Snowflake with Titan
  on:
    push:
      branches: [ main ]
      paths:
      - 'titan/**'

  jobs:
    deploy:
      runs-on: ubuntu-latest
      steps:
        - name: Checkout code
          uses: actions/checkout@v4

        - name: Deploy to Snowflake
          uses: Titan-Systems/titan-core-action@main
          with:
            run-mode: 'create-or-update'
            resource-path: './titan'
            allowlist: 'warehouse,role,grant'
            dry-run: 'false'
          env:
            SNOWFLAKE_ACCOUNT: ${{ secrets.SNOWFLAKE_ACCOUNT }}
            SNOWFLAKE_USER: ${{ secrets.SNOWFLAKE_USER }}
            SNOWFLAKE_PASSWORD: ${{ secrets.SNOWFLAKE_PASSWORD }}
            SNOWFLAKE_ROLE: ${{ secrets.SNOWFLAKE_ROLE }}
            SNOWFLAKE_WAREHOUSE: ${{ secrets.SNOWFLAKE_WAREHOUSE }}
  ```



   - **Titan Core uses names as unique identifiers**. Renaming a resource will create a new one.
   - Titan Core is not an ORM. It's not built to replace tools like SQLAlchemy.
   - Titan Core is under active development. Some resources are not yet supported.




  | Feature                                 | Titan Core | Terraform | Schemachange | Permifrost | SnowDDL |
  |-----------------------------------------|------------|-----------|--------------| -----------| -------- |
  | Plan and Execute Changes                | ✅ | ✅        | ❌ | ✅ | ✅ |
  | Declarative Config                      | ✅ | ✅        | ❌ | ✅ | ✅ |
  | No State File Dependency                | ✅ | ❌        | ✅ | ✅ | ✅ |
  | Python-Based Definitions                | ✅ | w/ CDKTF  | ❌ | ❌ | ✅ |
  | SQL Support                             | ✅ | ❌        | ✅ | ❌ | ❌ |
  | Dynamic Role Switching                  | ✅ | ❌        | N/A | ❌ | ❌ |
  | Export Snowflake resources              | ✅ | ❌        | ❌ | ❌ | ❌ |



  Terraform is an infrastructure-as-code tool using the HCL config language.

  The [Snowflake provider for Terraform](https://github.com/Snowflake-Labs/terraform-provider-snowflake) is limited to **1 role per provider**. This limitation is at odds with Snowflake's design, which is built to use multiple roles. This mismatch forces you into a complex multi-provider setup which can result in drift, permission errors, and broken plans.

  Titan Core streamlines this with **dynamic role switching**. Titan Core automatically detects which role is needed for a given change, and switches to that role before making it. This speeds up development cycles and helps eliminate the use of `ACCOUNTADMIN`.

  Titan Core doesn't use a state file. This provides more accurate plans and eliminates issues with stale state.



  [Schemachange](https://github.com/Snowflake-Labs/schemachange) is a database migration tool based on Flyway. It uses SQL scripts to deploy resources to different environments.

  Schemachange is an imperative migration tool. For developers, that means you must know Snowflake's current state and the exact SQL commands needed to update it to the desired state. If environments get changed outside of the tool, your migration scripts may need significant adjustments.

  Titan Core simplifies this with a declarative approach. With Titan Core, just define what an environment should look like, you don't need to know the detailed steps or SQL commands needed to get there.

  Declarative config is less error-prone and more scalable, especially in dynamic and complex data environments.


  [Permifrost](https://gitlab.com/gitlab-data/permifrost/) is an access-management tool for Snowflake. It helps you automate the creation of users, roles, and grants. Permifrost only manages permissions, it doesn't manage any other aspect of your Snowflake account.

  Permifrost can be very slow. Running simple Permifrost configs can take minutes to run. Titan Core is designed to run in seconds, even with complex environments.


  [SnowDDL](https://github.com/littleK0i/SnowDDL) is a declarative object management tool for Snowflake, similar to Titan Core. It uses a streamlined [permissions model](https://docs.snowddl.com/guides/permission-model) that simplifies granting read and write access to databases and schemas.

  SnowDDL takes a strongly opinionated stance on roles in Snowflake. If you don't need a [3-tier role heirarchy](https://docs.snowddl.com/guides/role-hierarchy), SnowDDL may not be a good fit.





  - ✅ Supported
  - 🚧 Unstable
  - ❌ Not Yet Supported


  | Name                          | Supported |
  |-------------------------------|----|
  | **Account Resources**         | |
  | Account Parameter             | ✅ |
  | API Integration               | ✅ |
  | Catalog Integration           | |
  | ↳ Glue                        | ✅ |
  | ↳ Object Store                | ✅ |
  | Compute Pool                  | ✅ |
  | Connection                    | ❌ |
  | Database                      | ✅ |
  | External Access Integration   | ✅ |
  | External Volume               | ✅ |
  | Failover Group                | 🚧 |
  | Grant                         | |
  | ↳ Future Grant                | ✅ |
  | ↳ Privilege Grant             | ✅ |
  | ↳ Role Grant                  | ✅ |
  | Network Policy                | ✅ |
  | Notification Integration      | |
  | ↳ Email                       | 🚧 |
  | ↳ AWS                         | 🚧 |
  | ↳ Azure                       | 🚧 |
  | ↳ GCP                         | 🚧 |
  | Replication Group             | 🚧 |
  | Resource Monitor              | ✅ |
  | Role                          | ✅ |
  | Role Grant                    | ✅ |
  | Scanner Package               | ✅ |
  | Security Integration          | |
  | ↳ External API                | ❌ |
  | ↳ External OAuth              | ❌ |
  | ↳ Snowflake OAuth             | 🚧 |
  | ↳ SAML2                       | ❌ |
  | ↳ SCIM                        | ❌ |
  | Share                         | ✅ |
  | Storage Integration           | |
  | ↳ AWS                         | ✅ |
  | ↳ Azure                       | ✅ |
  | ↳ GCS                         | ✅ |
  | Tag Reference                 | ✅ |
  | User                          | ✅ |
  | Warehouse                     | ✅ |
  |                               | |
  | **Database Resources**        | |
  | Database Role                 | ✅ |
  | Schema                        | ✅ |
  |                               | |
  | **Schema Resources**          | |
  | Aggregation Policy            | ✅ |
  | Alert                         | ✅ |
  | Authentication Policy         | ✅ |
  | Dynamic Table                 | ✅ |
  | Event Table                   | ✅ |
  | External Function             | 🚧 |
  | External Table                | ❌ |
  | File Format                   | |
  | ↳ CSV                         | ✅ |
  | ↳ JSON                        | ✅ |
  | ↳ AVRO                        | ❌ |
  | ↳ ORC                         | ❌ |
  | ↳ Parquet                     | ✅ |
  | Hybrid Table                  | 🚧 |
  | Iceberg Table                 | |
  | ↳ Snowflake Catalog           | ✅ |
  | ↳ AWS Glue                    | ❌ |
  | ↳ Iceberg files               | ❌ |
  | ↳ Delta files                 | ❌ |
  | ↳ REST Catalog                | ❌ |
  | ↳ Open Catalog                | ❌ |
  | Image Repository              | ✅ |
  | Masking Policy                | ❌ |
  | Materialized View             | 🚧 |
  | Model                         | ❌ |
  | Network Rule                  | ✅ |
  | Notebook                      | ✅ |
  | Packages Policy               | ✅ |
  | Password Policy               | ✅ |
  | Pipe                          | ✅ |
  | Projection Policy             | ❌ |
  | Row Access Policy             | ❌ |
  | Secret                        | |
  | ↳ Generic                     | ✅ |
  | ↳ OAuth                       | ✅ |
  | ↳ Password                    | ✅ |
  | Sequence                      | ✅ |
  | Service                       | ✅ |
  | Session Policy                | 🚧 |
  | Stage                         | ✅ |
  | ↳ External                    | ✅ |
  | ↳ Internal                    | ✅ |
  | Stored Procedure              | |
  | ↳ Java                        | ❌ |
  | ↳ Javascript                  | ❌ |
  | ↳ Python                      | 🚧 |
  | ↳ Scala                       | ❌ |
  | ↳ SQL                         | ❌ |
  | Stream                        | |
  | ↳ External Table              | ❌ |
  | ↳ Stage                       | ✅ |
  | ↳ Table                       | ✅ |
  | ↳ View                        | ✅ |
  | Streamlit                     | ❌ |
  | Table                         | 🚧 |
  | Tag                           | ✅ |
  | Task                          | ✅ |
  | User-Defined Function         | |
  | ↳ Java                        | ❌ |
  | ↳ Javascript                  | 🚧 |
  | ↳ Python                      | ✅ |
  | ↳ Scala                       | ❌ |
  | ↳ SQL                         | ❌ |
  | View                          | ✅ |



  Please [create a GitHub issue](https://github.com/Titan-Systems/titan/issues) if there's a resource you need that isn't currently supported.



  Contributions are welcome! Titan Core does not require a contributor license agreement.



  If you got this far, don't forget to star this repo.


pkgId: 847b2d6fb0d4a8a302734c734bcc99a8feb3e3e7ba57d6dae8141e9756522b83
name: python-tk-flow-help
arch: noarch
version: 0.0.0
epoch: 0
release: 1
summary: Development documents and examples for tk-flow
url: https://pypi.org/project/tk-flow/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tk-flow-0.0.0-1.src.rpm
location_href: Packages/python-tk-flow-help-0.0.0-1.noarch.rpm
checksum_type: sha256
description:
  tk_flow is a python library structure to have the simplest flowchart capabilities using the existing tkinter library to produce the imagery and containing the ability to export the generated graphics to a pdf format.







  Currently this function can create different flowchart block shapes:
  - rectangle
  - oval
  - diamond
  - hexagon

  The current shapes are the core flowchart items, each shape can be modified uniformly, with two rectangle options to have variants of the rectangle.

  ```python
  from tk_flow import Flowchart
  import tkinter as tk


  root = tk.Tk()
  example_flowchart = Flowchart()



  start = example_flowchart.node(col = 2, row = 0, text = 'Start', shape = 'terminal_start')
  end = example_flowchart.node(col = 2,row = 4, text = 'End', shape = 'terminal_end')

  example_flowchart.connect(node1 = start, direction1 = 's' , node2 = end, direction2 = 'n' , style = 'arrow' )

  ```



  - point (blank space to anchor lines in the flow)
  - title
  - label
  - terminal_start (oval type node, designated as start node, by default filled green)
  - terminal_end (oval type node, designated as end node, by default filled red)
  - rectangle
  - rectangle2
  - diamond
  - hexagon
  - oval



  Most of the formating Items are stored in a dictionary and can be edited individually.
  ```python
  default_colors = {
              "oval": "lightblue",
              "rectangle": "lightgrey",
              "rectangle2": "lightbrown",
              "diamond": "lightgreen",
              "hexagon": "lightyellow",
              "terminal_start": "green",
              "terminal_end": "red"
          }

  default_outlines = {
              "oval": {"color": "black", "thickness": 2},
              "rectangle": {"color": "black", "thickness": 2},
              "rectangle2": {"color": "black", "thickness": 2},
              "diamond": {"color": "black", "thickness": 2},
              "hexagon": {"color": "black", "thickness": 2},
              "terminal_start": {"color": "black", "thickness": 2},
              "terminal_end": {"color": "black", "thickness": 2}
          }

  default_fonts = {
              "oval": {"font": "Courier", "size": 24, "color": "black", "weight": "normal", "underline" : False},
              "rectangle": {"font": "Courier", "size": 24, "color": "black", "weight": "normal", "underline" : False},
              "rectangle2": {"font": "Courier", "size": 24, "color": "black", "weight": "bold", "underline" : False},
              "diamond": {"font": "Courier", "size": 24, "color": "black", "weight": "normal", "underline" : False},
              "hexagon": {"font": "Courier", "size": 24, "color": "black", "weight": "normal", "underline" : False},
              "label": {"font": "Courier", "size": 18, "color": "black", "weight": "bold", "underline" : False},
              "terminal_start": {"font": "Courier", "size": 66, "color": "black", "weight": "bold", "underline" : False},
              "terminal_end": {"font": "Courier", "size": 66, "color": "black", "weight": "bold", "underline" : False},
              "title": {"font": "Courier", "size": 72, "color": "black", "weight": "bold", "underline" : False}
          }

  default_connectors = {
              "color": "black",
              "thickness": 2
          }


  ```



  ```python

  Flowchart(
     root,
     title="Flowchart Creator",
     grid_width=100,
     grid_height=100,
     grid_pad=0.15,
     colors=None,
     outlines=None,
     fonts=None,
     connectors=None,
     spacing=50,
     node_width=150,
     node_height=90,
     label_width=25,
     label_height=10
  )
  ```

rpm_license:
  MIT License  Copyright (c) 2024 ajcecil  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: 047f9a97e458de74b8f91f134dd5c3c09a1b9d73aa75d30db511d48cf25d63ba
name: python-tket2-eccs-help
arch: noarch
version: 0.3.0
epoch: 0
release: 1
summary: Development documents and examples for tket2-eccs
url: https://pypi.org/project/tket2-eccs/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tket2-eccs-0.3.0-1.src.rpm
location_href: Packages/python-tket2-eccs-help-0.3.0-1.noarch.rpm
checksum_type: sha256
description:
  [![pypi][]](https://pypi.org/project/tket2-eccs/)
  [![codecov][]](https://codecov.io/gh/CQCL/tket2)
  [![py-version][]](https://pypi.org/project/tket2--eccs/)

    [codecov]: https://img.shields.io/codecov/c/gh/CQCL/tket2?logo=codecov
    [py-version]: https://img.shields.io/pypi/pyversions/tket2-eccs
    [pypi]: https://img.shields.io/pypi/v/tket2-eccs

  This is an auxiliary Python package containing compiler rewrite sets used for `tket2`'s optimisation passes.

  This package is intended to be used as an internal dependency for `tket2`.
  See https://pypi.org/project/tket2/ for the main package.




  TKET2-eccs can be installed via `pip`.

  ```sh
  pip install tket2_eccs
  ```



  See [DEVELOPMENT.md] information on how to develop and contribute to this package.

    [DEVELOPMENT.md]: https://github.com/CQCL/tket2/blob/main/DEVELOPMENT.md




  This project is licensed under Apache License, Version 2.0 ([LICENCE][] or http://www.apache.org/licenses/LICENSE-2.0).

    [LICENCE]: https://github.com/CQCL/tket2/blob/main/LICENCE

rpm_license:
[cell repeats an earlier one in this file: 10254 characters]


pkgId: 6aa228b37462aeda962d6182bb0f6662eee674e64e892913d0fb495738cfafbb
name: python-tket2-exts-help
arch: noarch
version: 0.3.0
epoch: 0
release: 1
summary: Development documents and examples for tket2-exts
url: https://pypi.org/project/tket2-exts/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tket2-exts-0.3.0-1.src.rpm
location_href: Packages/python-tket2-exts-help-0.3.0-1.noarch.rpm
checksum_type: sha256
description:
  [![pypi][]](https://pypi.org/project/tket2-exts/)
  [![codecov][]](https://codecov.io/gh/CQCL/tket2)
  [![py-version][]](https://pypi.org/project/tket2-exts/)

    [codecov]: https://img.shields.io/codecov/c/gh/CQCL/tket2?logo=codecov
    [py-version]: https://img.shields.io/pypi/pyversions/tket2-exts
    [pypi]: https://img.shields.io/pypi/v/tket2-exts

  This is an auxiliary Python package containing HUGR extension definitions for `tket2`
  operations and types.

  This package is intended to be used as an internal dependency for `tket2`.
  See https://pypi.org/project/tket2/ for the main package.




  TKET2-exts can be installed via `pip`.

  ```sh
  pip install tket2_exts
  ```



  See [DEVELOPMENT.md] information on how to develop and contribute to this package.

    [DEVELOPMENT.md]: https://github.com/CQCL/tket2/blob/main/DEVELOPMENT.md




  This project is licensed under Apache License, Version 2.0 ([LICENCE][] or http://www.apache.org/licenses/LICENSE-2.0).

    [LICENCE]: https://github.com/CQCL/tket2/blob/main/LICENCE

rpm_license:
[cell repeats an earlier one in this file: 10254 characters]


pkgId: cbf8701c66b2739dd2b1c49f39c8fffbc9579447f68c2c31f16004fab5a9df0d
name: python-tkintertools-help
arch: noarch
version: 2.6.21.1
epoch: 0
release: 1
summary: Development documents and examples for tkintertools
url: https://github.com/Xiaokang2022/tkintertools
rpm_license: MulanPSL-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tkintertools-2.6.21.1-1.src.rpm
location_href: Packages/python-tkintertools-help-2.6.21.1-1.noarch.rpm
checksum_type: sha256
description:
  * Version - 最新版本 : `2.6.21`
  * Release - 发布日期 : 2024/01/01
  * Feature - 更新内容 : [News-2.6.21](https://xiaokang2022.github.io/tkintertools/news/2.6.21/News/)
  ```
  pip install tkintertools==2.6.21
  ```

  * Version - 最新版本 : `3.0.0.dev5`
  * Release - 发布日期 :
  * Feature - 更新内容 : [News-3.0.0(pre)](https://xiaokang2022.github.io/tkintertools/news/3.0.0/News/)
  ```
  ```
  > ℹ️**Note - 注意**
  > It is not recommended that you use the pre-release version directly for formal development, but it is recommended that you use the pre-release version to experience the new features and to report certain issues that you find.
  > 不推荐你直接使用预发布版本进行正式开发，但推荐使用预发布版本来体验新功能，并上报发现的某些问题。


pkgId: 6434ce0263c4465951f0f6db657b80eb27c8564349a5fed0d79501e98d17128e
name: python-tko-help
arch: noarch
version: 2.3.1
epoch: 0
release: 1
summary: Development documents and examples for tko
url: https://github.com/senapk/tko
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tko-2.3.1-1.src.rpm
location_href: Packages/python-tko-help-2.3.1-1.noarch.rpm
checksum_type: sha256
description:
  <!-- markdownlint-configure-file {
    "MD033": false,
    "MD041": false
  } -->



  O TKO é um sistema de testes para programação competitiva. Ele é capaz de rodar testes em várias linguagens de programação e em vários formatos de testes. Ele está integrado com os repositórios de atividades das disciplinas de programação da UFC de Quixadá permitindo baixar as atividades e rodar os testes.

  - [FUP - Fundamentos de Programação](https://github.com/qxcodefup/arcade)
  - [ED - Estrutura de Dados](https://github.com/qxcodeed/arcade)
  - [POO - Programação Orientada a Objetos](https://github.com/qxcodepoo/arcade)





  - Vamos instalar o WSL. Abra o powershell e digite

  ```bash
  wsl --install
  ```

  - Aceite as opções e espere terminar a instalação. Reinicie o computador.
  - Agora vamos configurar o vscode pra funcionar com o WSL.
  - Instale o vscode normalmente pelo windows.
  - Abra o vscode pelo windows e instale a extensão WSL com 30 M de downloads
  - No lançador de aplicativos do windows, procure por "WSL" e abra o terminal do ubuntu
  - Digite o comando abaixo em qualquer pasta para configurar vscode no ubuntu

  ```bash
  code .
  ```

  - Esse comando irá instalar os componenetes necessários para abrir o vscode pelo wsl.
  - Agora, sempre que quiser abrir um repositório, abra o terminal do ubuntu, navegue até a pasta do repositório e execute o comando `code .`
  - Vamos seguir para falta o tko e os compiladores no seu novo linux ubuntu no wsl.





  ```bash
  sudo apt update && sudo apt install -y build-essential pipx && pipx install tko
  ```



  ```bash
  sudo pacman -S --noconfirm base-devel python-pipx && pipx install tko
  ```



  ```bash
  sudo apt update && sudo apt install -y python3-pip && pip install pipx && pipx install tko
  ```



  ```bash

  echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
  ```



  Para atualizar o tko para versão mais recente, basta executar o comando:

  ```bash
  pipx upgrade tko          # codespace, arch, ubuntu e wsl
  ```



  - Você pode utilizar qualquer outra linguagens que quiser, basta instalar o compilador correspondente e definir o comando de compilação e execução correspondentes.



  ```bash

  sudo apt install openjdk-11-jdk

  sudo apt install nodejs npm
  npm install --save-dev @types/node
  npm install typescript esbuild readline-sync
  ```



  ```bash

  sudo pacman -S jdk-openjdk

  sudo pacman -S nodejs npm
  npm install --save-dev @types/node
  npm install typescript esbuild readline-sync
  ```



  Os `[]` e `<>` indicam onde devem ser colocados os parâmetros. Os `|` indicam opções.

  ```bash

  tko init --remote [poo | fup | ed]



  tko open <pasta_do_repositório>


  ```



  - Qual for escolher a linguagem que deseja utilizar, escolha `yaml`. Na pasta de cada atividade será criado um arquivo de rascunho chamado `draft.yaml` com os seguintes campos:

  ```yaml
  build:
  run:
  ```

  - Preencha os campos `build` e `run` com os comandos de compilação e execução da sua linguagem. Exemplo, em c++ para um arquivo fonte chamado solver.cpp, o `draft.yaml` ficaria assim:

  ```yaml
  build: g++ -Wall solver.cpp -o solver.out
  run: ./solver.out
  ```

  Adapte para os comandos da sua linguagem e o nome dos arquivos da pasta.





  Se preferir trabalhar com o modelo de testes em arquivos separados, você pode descompactar o arquivo `cases.tio` para uma pasta com os arquivos de entrada e saída. Será gerado um arquivo `.in` e um `.sol` para cada teste.

  ```bash
  $ mkdir pasta
  $ tko build pasta cases.tio
  $ ls pasta
  00.in 00.sol 01.in 01.sol 02.in 02.sol 03.in 03.sol 04.in 04.sol
  ```

  Para rodar a partir da pasta com os testes descompactados, basta passar o nome da pasta como parâmetro.

  ```bash
  tko run Solver.java pasta
  ```

  Se quiser utilizar um nome padrão diferente para leitura ou escrita das pastas, veja a seção de [Convertendo entre formatos](#convertendo-entre-formatos).



  - Gerando um `t.vpl`
    - `tko build t.vpl testes.tio`
  - Gerando um `t.tio` a partir do `Readme.md`e de um `extra.tio`.
    - `tko build t.tio Readme.md extra.tio`
  - Para extrair os testes para uma pasta com um arquivo para entrada e outro para saída, crie uma pasta vazia e passe para o primeiro parâmetro do `tko build`.

  ```bash
  $ ls
  cases.tio  draft.c  Readme.md
  $ mkdir pasta
  $ tko build pasta cases.tio
  $ ls pasta/
  00.in   02.sol  05.in   07.sol  10.in   12.sol  15.in   17.sol  20.in   22.sol
  00.sol  03.in   05.sol  08.in   10.sol  13.in   15.sol  18.in   20.sol  23.in
  01.in   03.sol  06.in   08.sol  11.in   13.sol  16.in   18.sol  21.in   23.sol
  01.sol  04.in   06.sol  09.in   11.sol  14.in   16.sol  19.in   21.sol
  02.in   04.sol  07.in   09.sol  12.in   14.sol  17.in   19.sol  22.in
  ```

  - Você pode definir o padrão de nome dos arquivos gerados com `-p "@ @"`, sendo @ o wildcard que representa a numeração dos arquivo.
    - Vamos refazer o comando acima, mas colocando "-p in.@ out.@"

  ```bash
  $ tko build pasta/ cases.tio -p "in.@ out.@"
  $ ls pasta/
  in.00  in.05  in.10  in.15  in.20   out.01  out.06  out.11  out.16  out.21
  in.01  in.06  in.11  in.16  in.21   out.02  out.07  out.12  out.17  out.22
  in.02  in.07  in.12  in.17  in.22   out.03  out.08  out.13  out.18  out.23
  in.03  in.08  in.13  in.18  in.23   out.04  out.09  out.14  out.19
  in.04  in.09  in.14  in.19  out.00  out.05  out.10  out.15  out.20
  ```

  - O `pattern` é útil para converter os formatos de Maratona, que vem em múltiplos arquivos para o `.tio`. Basta fazer o `match` do modelo que eles utilizarem.
    - `-p "@.in @.out"`
    - `-p "in@ out@"`
    - entre outros.


pkgId: 0f1ecbe5df30ab629f2e54848e7138f0f1fe8ae645a822878fa6e14a9cb734b0
name: python-tkpygame-help
arch: noarch
version: 0.1.3
epoch: 0
release: 1
summary: Development documents and examples for tkpygame
url: https://github.com/lexxnl/tkpygame
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tkpygame-0.1.3-1.src.rpm
location_href: Packages/python-tkpygame-help-0.1.3-1.noarch.rpm
checksum_type: sha256
description:
  This `README.md` provides an overview, installation instructions, usage examples, and detailed descriptions of your package's components and functions. Adjust the details based on your specific module functionality and include any additional examples as necessary.


pkgId: c40c72cb95983d62648d80ec56bb9ab0bf2e04805bd1e854d43a8d366753ef27
name: python-tlpytools-help
arch: noarch
version: 0.1.6
epoch: 0
release: 1
summary: Development documents and examples for tlpytools
url: https://github.com/TransLinkForecasting/tlpytools
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tlpytools-0.1.6-1.src.rpm
location_href: Packages/python-tlpytools-help-0.1.6-1.noarch.rpm
checksum_type: sha256
description:
  Python tools to read data, yaml configuration, logging, and much more.



  To use the tools within this package, you must first install this package:



  Install with precompiled wheels from PyPI is the fastest way to get started:

  ```bash
  pip install tlpytools --upgrade
  ```



  Build and install from source allow you to access the latest version or a specific version without any available precompiled wheels:

  ```bash
  git clone https://github.com/TransLinkForecasting/tlpytools.git --depth=1
  cd tlpytools
  python -m pip install --upgrade build
  python -m build
  pip install dist/tlpytools-0.1.6-py3-none-any.whl --upgrade --force-reinstall
  ```



  If you are developing and testing tlpytools to work with downstream code, you may install the package as an [editable install](https://pip.pypa.io/en/stable/cli/pip_install/?highlight=edit%20mode#editable-installs). This allows you to continuously make changes to the `tlpytools` package in your local development folder, while integrating these changes in real time with your downstream code.

  ```bash
  git clone https://github.com/TransLinkForecasting/tlpytools.git --depth=1
  cd tlpytools
  pip install -e ./
  ```

  Note that after this installation, any code changes you make within the `tlpytools` folder will take effect immeidately witin your development environment.



  After installation, you can access the `tlpytools` namespace within your data project and importing parts of the package in your python script:

  ```python
  from tlpytools.log import logger
  from tlpytools.config import run_yaml
  ```



  1. Review `setup.cfg` and `pyproject.toml` to ensure dependencies and versions are up to date.
  2. Generate distribution archives
  ```
  conda activate base
  python -m pip install --upgrade build
  python -m build
  ```
  3. Upload to PyPI
  ```
  python -m pip install --upgrade twine
  python -m twine upload dist/*
  ```
  Review the newly upload package on `https://test.pypi.org/project/tlpytools/`

  If you are having problem authenticating to PyPI, you should register on [PyPI](https://pypi.org/account/register/) and create a new token. Set up the token in `~/.pypirc` by following [package distribution guide](https://packaging.python.org/en/latest/guides/distributing-packages-using-setuptools/#create-an-account)


pkgId: b044c54ec8253123fef6b57442eaa39f106701ecf34b2534e9e76090e7c52361
name: python-tls-probe-help
arch: noarch
version: 1.3.0
epoch: 0
release: 1
summary: Development documents and examples for tls-probe
url: https://github.com/dspruell/tls-probe
rpm_license: ISC
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tls-probe-1.3.0-1.src.rpm
location_href: Packages/python-tls-probe-help-1.3.0-1.noarch.rpm
checksum_type: sha256
description:
  Simple utility to probe remote SSL/TLS service.

  Module opens connection to specified host and port and returns information
  about the established socket and certificate served to client on that
  connection.

  Also provides command line frontend (`tls-probe`) to dump information in
  human-readable format.


  Use Python 3 and a virtual environment. It's recommended to use
  [pipx](https://pypa.github.io/pipx/) for easy setup and isolation:

  ```
  pipx install tls-probe
  ```


  Given an address (hostname or IP address) and port, a connection to the
  specified service is made, a SSL/TLS socket is established, and details are
  returned to the caller. This includes information about the connection as well
  as details from the X.509 certificate, if one is served.

  For example:

  ```
  $ tls-probe www.letsencrypt.org 443
  Connection:
  version      TLSv1.3
  remote_addr  162.243.166.170:443

  Certificate:
  issuer            CN=Let's Encrypt Authority X3,O=Let's Encrypt,C=US
  subject           CN=lencr.org
  serial            331089264146011497466023867100015958696279
  version           v3
  signature_hash    sha256
  not_valid_before  2020-09-03 23:37:34
  not_valid_after   2020-12-02 23:37:34

  Fingerprints:
  md5     a2572461046c4494e73d53d8a27ebc37
  sha1    0b4843d5542903b7d7dfda1e7999e880a957087b
  sha256  923455ed89054c81c6ff9d75c4185bb286ef94ea35ab1f08aeec136ad53388a2

  Extensions:
  subjectAltName  <SubjectAlternativeName(<GeneralNames([<DNSName(value='lencr.org')>, <DNSName(value='letsencrypt.org')>, <DNSName(value='www.lencr.org')>, <DNSName(value='www.letsencrypt.org')>])>)>
  ```

  JSON data may optionally be returned.

  By default, the tool validates certificates sent by the remote service and
  certificate validation errors are raised. This may be changed by using the
  `-z/--no-validate` option.

  Full usage details are found in the `--help` output to the command line
  utility.


pkgId: c6f09984fd64c6b62ebb6dc3fe71366dac02267e1601be01151581645e94b376
name: python-tlslite-ng-help
arch: noarch
version: 0.8.0
epoch: 0
release: 1
summary: Development documents and examples for tlslite-ng
url: https://github.com/tlsfuzzer/tlslite-ng
rpm_license: LGPLv2
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tlslite-ng-0.8.0-1.src.rpm
location_href: Packages/python-tlslite-ng-help-0.8.0-1.noarch.rpm
checksum_type: sha256
description:
  tlslite-ng is a pure python implementation of SSLv3.0, TLS 1.0, TLS 1.1,
  TLS 1.2 and TLS 1.3 protocols.

  It can use pycrypto, m2crypto and gmp for acceleration of cryptographic
  operations but is not dependant upon them.

  Functionality implemented include:
   - all above mentioned protocols, including support for client certificates
     (RFC 6101, RFC 2246, RFC 4346, RFC 5246, RFC 8446 - not complete)
   - RSA, RSA-PSS, DSA, and ECDSA certificates
   - RC4, 3DES-CBC, AES-CBC, AES-GCM, AES-CCM, AES-CCM_8 and ChaCha20 ciphers
     (RFC 5246, RFC 6347, RFC 4492, RFC 5288, RFC 5289, RFC 7539, RFC 7905,
     RFC 6655, RFC 7251)
   - MD5, SHA1, SHA256 and SHA384 HMACs as well as AEAD mode of operation with
     GCM or Poly1305 authenticator
   - RSA, DHE_RSA, DHE_DSS, ECDHE_RSA, ECDHE_ECDSA key exchange
   - full set of signature hashes (md5, sha1, sha224, sha256, sha384, sha512,
     rsa_pss_rsae_sha256, rsa_pss_rsae_sha384 and rsa_pss_rsae_sha512) for
     ServerKeyExchange and CertfificateVerify
   - secp256r1, secp384r1, secp521r1, secp256k1, secp224r1 and secp192r1 curves
     for ECDHE key exchange (support for last two depends on the version of ecdsa
     library used)
   - x25519 and x448 curves for ECDHE key exchage (RFC 7748. RFC 4492bis)
   - anonymous DHE key exchange
   - anonymous ECDH key exchange
   - PSK and PSK-DH key exchange in TLS 1.3
   - session ticket based resumption (RFC 5077) and in TLS 1.3
   - post-handshake client authentication in TLS 1.3
   - NULL encryption ciphersuites
   - FALLBACK_SCSV (RFC 7507)
   - encrypt-then-MAC mode of operation for CBC ciphersuites (RFC 7366)
   - TACK certificate pinning
   - SRP_SHA_RSA and SRP_SHA ciphersuites (RFC 5054)
   - Extended Master Secret calculation for TLS connections (RFC 7627)
   - padding extension (RFC 7685)
   - Keying material exporter (RFC 5705)
   - Next Protocol Negotiation
   - Application-Layer Protocol Negotiation Extension (RFC 7301)
   - FFDHE prime/group negotiation (RFC 7919)
   - Heartbeat Extension (RFC 6520)
   - Record Size Limit (RFC 8449)
   - TLS Certificate Compression (RFC 8879)
   - Hybrid ML-KEM key exchage groups (draft-kwiatkowski-tls-ecdhe-mlkem-02)
   - support for Brainpool curves in TLS 1.2 and TLS 1.3


  tlslite-ng aims to be a drop-in replacement for tlslite while providing more
  comprehensive set of features and more secure defaults.


pkgId: bd02185e25e032dbf900a3217ab93473d9366d7e170c1c56d384af2c9b8b749d
name: python-tmseegpy-help
arch: noarch
version: 0.1.0
epoch: 0
release: 1
summary: Development documents and examples for tmseegpy
url: https://github.com/LazyCyborg/tmseegpy
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tmseegpy-0.1.0-1.src.rpm
location_href: Packages/python-tmseegpy-help-0.1.0-1.noarch.rpm
checksum_type: sha256
description:
  This repository contains my attempt at building some sort of pipeline for preprocessing and analyzing Transcranial Magnetic Stimulation (TMS)-EEG data. The pipeline includes steps for artifact removal, filtering, Independent Component Analysis (ICA), muscle artifact cleaning (using Tensorly), and analysis of Perturbational Complexity Index based on State transitions (PCIst) (Comolatti et al., 2019). The analysis of PCIst is jsut a copy paste from https://github.com/renzocom/PCIst/blob/master/PCIst/pci_st.py which is written by Renzo Comolatti. The code is mostly adapted from a very long jupyter notebook which used mostly native MNE-Python methods which I expanded to a toolbox that I have been using in my analyses. So the code base might not be very efficient.

  Currently the code is only tested on TMS-EEG data recorded in .ses format from the Bittium NeurOne 5kHz sampling rate amplifier. Feel free to modify the preproc module to fit other types of recorded TMS-EEG data. If you create a dataloader that is compatible with multiple systems feel free to reach out to hjarneko@gmail.com. The package uses a modified version of the neurone_loader (https://github.com/heilerich/neurone_loader) to load the data from the Bittium NeurOne and convert it to an MNE-Python raw object. I am also using the 0.7.0 version (cloned) of mne_ica_label since there was some issues with the current version of mne.



  - [Installation](#installation)
    - [Use the scripts](#installation-use-the-scripts)
    - [Install as a package](#install-as-a-package)
  - [Usage](#usage)
    - [GUI](#gui)
    - [Command-Line Arguments](#command-line-arguments)
    - [Example Usage](#example-usage)
  - [Data Preparation](#data-preparation)
  - [Processing Pipeline](#processing-pipeline)
  - [Example pipeline](#example-pipeline-that-i-used)
    - [Initial Data Loading and Setup](#initial-data-loading-and-setup)
    - [Stage 1: Initial TMS Artifact Handling](#stage-1-initial-tms-artifact-handling)
    - [Stage 2: Filtering and Epoching](#stage-2-filtering-and-epoching)
    - [Stage 3: First Artifact Cleaning](#stage-3-first-artifact-cleaning)
    - [Stage 4: Extended TMS Artifact Handling](#stage-4-extended-tms-artifact-handling)
    - [Stage 5: Final Cleaning](#stage-5-final-cleaning)
    - [Quality Control and Analysis](#quality-control-and-analysis)
    - [PCIst Calculation](#pcist-calculation)
  - [Modules and Classes](#modules-and-classes)
    - [TMSEEGPreprocessor](#tmseegpreprocessor-main-class-for-preprocessing)
    - [TMSArtifactCleaner Class](#tmsartifactcleaner-class-which-might-work)
      - [What it does](#what-it-does)
      - [Parameters](#parameters)
      - [Methods](#methods)
    - [PCIst](#pcist)
  - [Contributing](#contributing)
  - [License](#license)
  - [Acknowledgements](#acknowledgements)




  1. Clone the repository:

     ```bash
     git clone https://github.com/LazyCyborg/tmseegpy.git
     cd tmseegpy

  2. Create a virtual environment (optional but very recommended):

     ```bash
     conda env create -f environment.yml
     conda activate tmseegpy-env
     ```

  3. Install the package:

     ```bash
     pip install -e .
     ```



  The pipeline is designed to be run from the command line or through the simple GUI, processing EEG data for one or multiple subjects. The main script accepts various command-line arguments to customize the preprocessing and analysis steps.



  For an graphical user interface run:

     ```bash
     tmseegpy
     ```
  The GUI is basically a wrapper for the argparser bellow and is intended as the main way to test the pipeline in a clinical setting.


  The following parameters can be configured either through command-line arguments or the GUI interface:

  | Argument                    | Type  | Default  | Description                                                                                |
  |-----------------------------|-------|----------|--------------------------------------------------------------------------------------------|
  | Preprocessing Parameters |
  | --data_dir                  | str   | ./data   | Path to the data directory containing EEG recordings                                       |
  | --plot_preproc              | flag  | False    | Enable plotting during preprocessing for quality checks                                    |
  | --ds_sfreq                  | float | 725      | Desired sampling frequency after downsampling                                             |
  | --random_seed               | int   | 42       | Seed for random number generators for reproducibility                                      |
  | --bad_channels_threshold    | float | 1        | Threshold for detecting bad channels using the FASTER algorithm                           |
  | --bad_epochs_threshold      | float | 1        | Threshold for detecting bad epochs using the FASTER algorithm                             |
  | --apply_ssp                | flag  | False    | Apply Signal Space Projection                                                               |
  | --ssp_n_eeg                | int   | 2        | Number of SSP components to apply                                                         |
  | --substitute_zero_events_with | int   | 10       | Value to substitute zero events in the data                                             |
  | Filtering Parameters |
  | --l_freq                    | float | 1        | Lower cutoff frequency for bandpass filter                                               |
  | --h_freq                    | float | 45       | Upper cutoff frequency for bandpass filter                                               |
  | --notch_freq               | float | 50       | Frequency for notch filter (e.g., to remove powerline noise)                             |
  | --notch_width              | float | 2        | Width of the notch filter                                                                |
  | TMS Artifact Removal Parameters |
  | --initial_cut_start        | float | -2       | Start time (ms) for initial cutting around TMS pulse                                     |
  | --initial_cut_end          | float | 10       | End time (ms) for initial cutting around TMS pulse                                       |
  | --initial_interp_window    | float | 1.0      | Initial interpolation window size (ms)                                                   |
  | --extended_cut_start       | float | -2       | Start time (ms) for extended artifact removal                                            |
  | --extended_cut_end         | float | 15       | End time (ms) for extended artifact removal                                              |
  | --extended_interp_window   | float | 5.0      | Extended interpolation window size (ms)                                                  |
  | --interpolation_method     | str   | 'cubic'  | Interpolation method ('linear' or 'cubic')                                               |
  | Muscle Artifact Parameters |
  | --clean_muscle_artifacts   | flag  | False    | Enable muscle artifact cleaning using tensor decomposition                               |
  | --muscle_window_start      | float | 0.005    | Start time (s) for muscle artifact detection window                                      |
  | --muscle_window_end        | float | 0.030    | End time (s) for muscle artifact detection window                                        |
  | --threshold_factor         | float | 1.0      | Threshold factor for muscle artifact detection                                           |
  | --n_components             | int   | 5        | Number of components for tensor decomposition during muscle artifact cleaning             |
  | ICA Parameters |
  | --ica_method               | str   | 'fastica'| ICA method for the first ICA pass ('fastica' or 'infomax')                              |
  | --tms_muscle_thresh        | float | 2.0      | Threshold for detecting TMS-evoked muscle artifacts during ICA                           |
  | --second_ica_method        | str   | 'infomax'| ICA method for the second ICA pass ('infomax' or 'fastica')                             |
  | CSD Parameters |
  | --apply_csd                | flag  | True    | Apply Current Source Density (CSD) transformation                                        |
  | --lambda2                  | float | 1e-3     | Lambda2 parameter for CSD transformation                                                 |
  | --stiffness               | int   | 3        | Stiffness parameter for CSD transformation                                               |
  | Epoching Parameters |
  | --epochs_tmin              | float | -0.41    | Start time (s) for epochs relative to the event                                         |
  | --epochs_tmax              | float | 0.41     | End time (s) for epochs relative to the event                                           |
  | --baseline_start          | float | -400     | Start time (ms) for baseline correction window                                           |
  | --baseline_end            | float | -50      | End time (ms) for baseline correction window                                             |
  | --amplitude_threshold     | float | 4500     | Amplitude threshold (µV) for epoch rejection                                             |
  | PCIst Parameters |
  | --response_start          | int   | 0        | Start time (ms) for the response window in PCIst analysis                                |
  | --response_end            | int   | 299      | End time (ms) for the response window in PCIst analysis                                  |
  | --k                       | float | 1.2      | PCIst parameter k                                                                        |
  | --min_snr                 | float | 1.1      | Minimum SNR threshold for PCIst analysis                                                 |
  | --max_var                 | float | 99.0     | Maximum variance percentage to retain in PCA during PCIst                                |
  | --embed                   | flag  | False    | Enable time-delay embedding in PCIst analysis                                            |
  | --n_steps                 | int   | 100      | Number of steps for threshold optimization in PCIst analysis                             |
  | Statistics                |
  | --research                | bool  | False    | Output summary statistics of measurements                                                |




  To run the pipeline with default settings:

  ```bash
  cd tmseegpy
  ```

  ```bash
  python run.py --data_dir ./TMSEEG
  ```

  To enable muscle artifact cleaning and apply CSD transformation:

  ```bash
  python run.py --data_dir ./TMSEEG --clean_muscle_artifacts --apply_csd
  ```

  To enable plotting during preprocessing for quality checks:

  ```bash
  python run.py --data_dir ./TMSEEG --plot_preproc
  ```



  Ensure that your data is organized in the following structure (currently the toolbox only supports .ses files from Bittium NeurOne):

  ```
  data/
  └── TMSEEG/
      ├── session1/
      │     ├── DataSetSession.xml
      ├── session2/
      │     ├── DataSetSession.xml
      └── ...
  ```

  - The `--data_dir` argument should point to the directory containing your TMS data (e.g., `data/`).
  - Each session should be in its own subdirectory under `TMSEEG/`.



  The pipeline processes TMS-EEG data through these stages which are roughly modelled from the reccomendations in:

  Comolatti, R., Pigorini, A., Casarotto, S., Fecchio, M., Faria, G., Sarasso, S., Rosanova, M., Gosseries, O., Boly, M., Bodart, O., Ledoux, D., Brichant, J. F., Nobili, L., Laureys, S., Tononi, G., Massimini, M., & Casali, A. G. (2019). A fast and general method to empirically estimate the complexity of brain responses to transcranial and intracranial stimulations. Brain Stimulation, 12(5), 1280–1289. https://doi.org/10.1016/j.brs.2019.05.013

  and from

  https://nigelrogasch.gitbook.io/tesa-user-manual/example_pipelines

  And the custom functions (TMS-artifact removal and classification of ICA components) are modelled after the TESA toolbox:

  Rogasch NC, Sullivan C, Thomson RH, Rose NS, Bailey NW, Fitzgerald PB, Farzan F, Hernandez-Pavon JC. Analysing concurrent transcranial magnetic stimulation and electroencephalographic data: a review and introduction to the open-source TESA software. NeuroImage. 2017; 147:934-951.

  Mutanen TP, Biabani M, Sarvas J, Ilmoniemi RJ, Rogasch NC. Source-based artifact-rejection techniques available in TESA, an open-source TMS-EEG toolbox. Brain Stimulation. 2020; In press.




  This is the pipeline that I used after a lot of trial and error. The only way that I "validate" the pipeline is by checking if the final EEG-data looks reasonable, if the evoked plots contain some sort of TEPs and if the PCI-values are stabel across recordings. The pipeline is only tested on 10 recordings from the same healthy subject who either was awake or slightly somnolent.


  1. Load raw data from Neurone format
  2. Set random seed (42)
  3. Create events from trigger channel ('STI 014' for the Bittium system we usedf)
  4. Remove non-EEG channels (e.g., EMG1 or similar)


  5. First-pass TMS artifact removal
     - Cut window: -2 to 10 ms around TMS pulse and replace with zeros
  6. Initial interpolation of TMS artifact
     - Method: cubic
     - Interpolation window: 1.0 ms
     - Cut times: -2 to 10 ms


  7. Apply frequency filters (I chose a 1 Hz lowpass since the final EEG data had some drift artifacts when using 0.1 Hz)
     - Low-pass: 1 Hz
     - High-pass: 45 Hz
     - Notch filter: 50 Hz (width: 2 Hz)
  8. Create epochs
     - Time window: -0.41 to 0.41 s
     - Amplitude threshold for epoch rejection: 4500 µV
     - Demeaning
  9. Remove bad channels
     - Using FASTER algorithm
     - Threshold: 1
  10. Remove bad epochs
      - Using FASTER algorithm
      - Threshold: 1
  11. Set average reference


  12. First ICA run
      - Method: FastICA
      - TMS muscle threshold: 2.0

  - Optional muscle artifact cleaning (PARAFAC) (I did not use this)
      - Time window: 5-30 ms
      - Threshold factor: 1.0
      - Components: 5


  13. Second-pass TMS artifact removal
      - Extended cut window: -2 to 15 ms
  14. Extended interpolation
      - Method: cubic
      - Interpolation window: 5.0 ms
      - Cut times: -2 to 15 ms


  15. Second ICA run
      - Method: Infomax
      - Auto-reject components with mne_ica_label, labeled as: eye blink, heart beat, muscle artifact, channel noise, line noise
  - Apply SSP (Optional and I did not use this) (https://mne.tools/stable/auto_tutorials/preprocessing/50_artifact_correction_ssp.html)
      - Number of EEG components: 2
  16. Apply baseline correction
      - Window: -400 to -50 ms
  17. CSD transformation (https://mne.tools/stable/auto_examples/preprocessing/eeg_csd.html)
      - Lambda2: 1e-3
      - Stiffness: 3
  18. Final downsampling
      - Target frequency: 725 Hz


  19. TEP validation (optional)
      - Peak prominence threshold: 0.01
  20. Generate evoked response plot
      - Time window: -0.3 to 0.3 s
      - Y-limits: -2 to 2 µV


  21. Calculate PCIst
      - Response window: 0 to 299 ms
      - k parameter: 1.2
      - Minimum SNR: 1.1
      - Maximum variance: 99.0%
      - Steps for threshold optimization: 100






  I used this in a jupyter notebook to simply chain steps from mne with FASTER and mne_ica_label as well as the the custom functions for artifact removal, interpolation and ICA component selection based on Z-score threshold based on TESA.

   Methods included (They are pretty well documented so look in the preproc.py file for more info):

  - `remove_tms_artifact`: Removes TMS artifacts from raw data.
  - `interpolate_tms_artifact`: Interpolates removed TMS artifacts using scipy cubic interpolation.
  - `filter_raw`: Applies bandpass and notch filters to raw data.
  - `create_epochst`: Creates epochs from the mne.raw object and rejects epochs with amplitudes over >4500 (can be changed), and demeans the data.
  - `remove_bad_channels`: Identifies and interpolates bad channels using MNE-FASTER.
  - `remove_bad_epochs`: Removes bad epochs based on amplitude using MNE-FASTER.
  - `run_ica`: Runs ICA and attempts to classify components as TMS-evoked muscle activity using Z-core threshold.
  - `clean_muscle_artifacts`: Cleans TMS-evoked muscle artifacts using non-negative tensor decomposition (se bellow).
  - `run_second_ica`: Runs ICA to identify and remove residual physiological artifacts using MNE-ICALabel.
  - `apply_ssp`: Aplies signal-space projection (SSP) to epochs.
  - `apply_csd`: Applies current Source Density transformation.
  - `set_average_reference`: Sets the EEG reference to average.
  - `apply_baseline_correction`: Applies baseline correction to epochs.
  - `apply_csd`: Applies Current Source Density transformation.




  The TMSArtifactCleaner class is designed to detect and clean transcranial magnetic stimulation (TMS)-evoked muscle artifacts in EEG/MEG data using tensor decomposition techniques. It uses the tensorly library for tensor operations and mne for handling eeg data.



  - Artifact Detection: Uses Non-negative PARAFAC tensor decomposition to detect muscle artifacts in EEG epochs.
  - Artifact Cleaning: Uses Tucker decomposition to clean the detected artifacts.
  - Threshold Optimization: Includes a method to find the optimal detection threshold based on a target detection rate.



  - epochs (mne.Epochs): The EEG epochs to process.
  - verbose (bool, optional): Whether to print progress messages.





  Normalizes the data across channels and time points using standard scaling.


  - data (numpy.ndarray): The raw data to normalize.


  - normalized_data (numpy.ndarray): The normalized data.
  - scalers (list): List of scalers used for each channel.



  Detects TMS-evoked muscle artifacts using parallel processing and Non-negative PARAFAC tensor decomposition.


  - muscle_window (tuple, optional): Time window for artifact detection (in seconds).
  - threshold_factor (float, optional): Threshold for detecting artifacts.
  - n_jobs (int, optional): Number of parallel jobs (-1 uses all available CPUs).
  - verbose (bool, optional): Whether to print progress messages.


  - artifact_info (dict): Information about detected artifacts and statistics.



  Cleans the detected muscle artifacts using Tucker decomposition.


  - n_components (int, optional): Number of components for Tucker decomposition.
  - verbose (bool, optional): Whether to print progress messages.


  - epochs_clean (mne.Epochs): The cleaned epochs.



  Finds the optimal threshold for artifact detection using a binary search algorithm to match a target detection rate.


  - muscle_window (tuple, optional): Time window for artifact detection (in seconds).
  - target_detection_rate (float, optional): Desired detection rate for artifacts.
  - initial_threshold (float, optional): Starting threshold for the search.
  - max_iter (int, optional): Maximum number of iterations.
  - tol (float, optional): Tolerance for convergence.
  - verbose (bool, optional): Whether to print progress messages.


  - best_threshold (float): The optimal threshold found.



  Validates the cleaning results


  - cleaned_epochs (mne.Epochs): The epochs after cleaning.


  - is_valid (bool): True if the cleaning is valid, False otherwise.




  Class implementation of PCIst for calculating the Perturbational Complexity Index.

  Methods:

  - `calc_PCIst`: Calculates the PCIst value.
  - `dimensionality_reduction`: Performs dimensionality reduction using SVD.
  - `state_transition_quantification`: Quantifies state transitions in the signal.
  - `plot_analysis`: Plots the analysis steps for visualization.




  Contributions are welcome! Please submit a pull request or open an issue to discuss your ideas.



  This project is licensed under the MIT License.



  The PCIst implementation is based on:

  - Comolatti, R., Pigorini, A., Casarotto, S., Fecchio, M., Faria, G., Sarasso, S., Rosanova, M., Gosseries, O., Boly, M., Bodart, O., Ledoux, D., Brichant, J. F., Nobili, L., Laureys, S., Tononi, G., Massimini, M., & Casali, A. G. (2019). A fast and general method to empirically estimate the complexity of brain responses to transcranial and intracranial stimulations. Brain Stimulation, 12(5), 1280–1289. https://doi.org/10.1016/j.brs.2019.05.013

  The pipeline uses the MNE-Python library for EEG data processing:

  - Gramfort, A., Luessi, M., Larson, E., Engemann, D. A., Strohmeier, D., Brodbeck, C., Goj, R., Jas, M., Brooks, T., Parkkonen, L., & Hämäläinen, M. (2013). MEG and EEG data analysis with MNE-Python. Frontiers in Neuroscience, 7 DEC. https://doi.org/10.3389/fnins.2013.00267

  The bad channel, and epoch detection uses MNE-FASTER:

  - Nolan H, Whelan R, Reilly RB. FASTER: Fully Automated Statistical Thresholding for EEG artifact Rejection. J Neurosci Methods. 2010 Sep 30;192(1):152-62. doi: 10.1016/j.jneumeth.2010.07.015. Epub 2010 Jul 21. PMID: 20654646.

  The second ICA uses MNE-ICALabel:

  - Li, A., Feitelberg, J., Saini, A. P., Höchenberger, R., & Scheltienne, M. (2022). MNE-ICALabel: Automatically annotating ICA components with ICLabel in Python. Journal of Open Source Software, 7(76), 4484. https://doi.org/10.21105/joss.04484

  Custom functions are modelled after:

  - Rogasch NC, Sullivan C, Thomson RH, Rose NS, Bailey NW, Fitzgerald PB, Farzan F, Hernandez-Pavon JC. Analysing concurrent transcranial magnetic stimulation and electroencephalographic data: a review and introduction to the open-source TESA software. NeuroImage. 2017; 147:934-951.

  - Mutanen TP, Biabani M, Sarvas J, Ilmoniemi RJ, Rogasch NC. Source-based artifact-rejection techniques available in TESA, an open-source TMS-EEG toolbox. Brain Stimulation. 2020; In press.


pkgId: 06c30b19dab2c54a78da4898b5dc3eb9dc4abb83ae24352e2c71617d72e43c05
name: python-tmtcrunch-help
arch: noarch
version: 2024.12.18
epoch: 0
release: 1
summary: Development documents and examples for tmtcrunch
url: https://pypi.org/project/tmtcrunch/
rpm_license: BSD-3-Clause
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tmtcrunch-2024.12.18-1.src.rpm
location_href: Packages/python-tmtcrunch-help-2024.12.18-1.noarch.rpm
checksum_type: sha256
description:
  TMTCrunch is an open-source Python utility for analysis of tandem mass tag (TMT) proteomics data with the focus on protein isoforms resulting from alternative spicing.




  The latest released version can be installed from the [Python Package Index](https://pypi.org/project/tmtcrunch):
  ```shell
  pip install tmtcrunch
  ```


  The development version can be installed directly from the source repository:
  ```shell
  pip install https://codeberg.org/makc/tmtcrunch.git
  ```


  TMTCrunch relies on the following Python packages:
  - [numpy](https://pypi.org/project/numpy/)
  - [pandas](https://pypi.org/project/pandas/)
  - [pyteomics](https://pypi.org/project/pyteomics/)
  - [tomli](https://pypi.org/project/tomli/) (required only for Python < 3.11)
  and it would use statistics functions from [astropy](https://pypi.org/project/astropy/) package if available.


  ```
  usage: tmtcrunch [-h] [--specimen-tags SPECIMEN_TAGS] [--gis-tags GIS_TAGS]
                   [--cfg CFG] [--output-dir OUTPUT_DIR] [--output-prefix OUTPUT_PREFIX]
                   [--keep-columns KEEP_COLUMNS [KEEP_COLUMNS ...]] [--verbose {0,1,2}]
                   [--version]
                   file [file ...]

  positional arguments:
    file                  Scavager *_PSMs_full.tsv files.

  options:
    -h, --help            show this help message and exit
    --specimen-tags SPECIMEN_TAGS
                          Comma-separated sequence of specimen TMT tags.
    --gis-tags GIS_TAGS   Comma-separated sequence of GIS TMT tags.
    --cfg CFG             Path to configuration file.
    --output-dir OUTPUT_DIR, --odir OUTPUT_DIR
                          Existing output directory. Default is current directory.
    --output-prefix OUTPUT_PREFIX, --oprefix OUTPUT_PREFIX
                          Prefix for output files. Default is 'tmtcrunch_'.
    --keep-columns KEEP_COLUMNS [KEEP_COLUMNS ...]
                          Extra columns from input files to keep in output files.
    --verbose {0,1,2}     Logging verbosity. Default is 1.
    --version             Output version information and exit.
  ```


  TMTCrunch stores its configuration in [TOML](https://toml.io) format.

  Default TMTCrunch configuration:
  ```TOML

  specimen_tags = ['127C', '127N', '128C', '128N', '129C', '129N', '130C', '130N', '131']

  gis_tags = ['126', '131C']


  decoy_prefix = 'DECOY_'


  keep_columns = []


  groupwise = true














  [psm_group.isoform]
  descr = 'Isoform PSMs'
  prefixes = [['alt_']]
  fdr = 0.05



  [psm_group.canon]
  descr = 'Canonical PSMs'
  prefixes = [['canon_']]
  fdr = 0.01



  [psm_group.shared]
  descr = 'Shared PSMs'
  prefixes = [['canon_', 'alt_']]
  fdr = 0.01
  ```


  TMTCrunch is distributed under a BSD License.


   - [Pyteomics](https://github.com/levitsky/pyteomics) - Python framework for proteomics data analysis.
   - [IdentiPy](https://github.com/levitsky/identipy) - search engine for bottom-up proteomics.
   - [Scavager](https://github.com/markmipt/scavager) - proteomics post-search validation tool.


pkgId: dc01940f0a739d0e2b9e93d3ba6fbcd96a743f67a6e8f72f339df5b5ffc6496d
name: python-tnnt-templates-help
arch: noarch
version: 3.4.1
epoch: 0
release: 1
summary: Development documents and examples for tnnt-templates
url: https://github.com/terra-nanotech/tn-nt-auth-templates
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tnnt-templates-3.4.1-1.src.rpm
location_href: Packages/python-tnnt-templates-help-3.4.1-1.noarch.rpm
checksum_type: sha256
description:
  [![Version](https://img.shields.io/pypi/v/tnnt-templates?label=release)](https://pypi.org/project/tnnt-templates/)
  [![GitHub license](https://img.shields.io/github/license/terra-nanotech/tn-nt-auth-templates)](https://github.com/terra-nanotech/tn-nt-auth-templates/blob/master/LICENSE)
  [![Python](https://img.shields.io/pypi/pyversions/tnnt-templates)](https://pypi.org/project/tnnt-templates/)
  [![Django](https://img.shields.io/pypi/djversions/tnnt-templates?label=django)](https://pypi.org/project/tnnt-templates/)
  ![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)
  [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/terra-nanotech/tn-nt-auth-templates/master.svg)](https://results.pre-commit.ci/latest/github/terra-nanotech/tn-nt-auth-templates/master)
  [![Code Style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](http://black.readthedocs.io/en/latest/)
  [![Checks](https://github.com/terra-nanotech/tn-nt-auth-templates/actions/workflows/automated-checks.yml/badge.svg)](https://github.com/terra-nanotech/tn-nt-auth-templates/actions/workflows/automated-checks.yml)
  [![codecov](https://codecov.io/gh/terra-nanotech/tn-nt-auth-templates/branch/master/graph/badge.svg?token=4JLA8CXJ64)](https://codecov.io/gh/terra-nanotech/tn-nt-auth-templates)

  **Terra Nanotech Template Overrides for Alliance Auth**

  ![TN-NT Auth Template](https://raw.githubusercontent.com/terra-nanotech/tn-nt-auth-templates/master/tnnt_templates/images/tnnt-template.jpg "TN-NT Auth Template")

  ______________________________________________________________________

  <!-- mdformat-toc start --slug=gitlab --maxlevel=6 --minlevel=1 -->

  - [Terra Nanotech Auth Templates](#terra-nanotech-auth-templates)
    - [Important Information](#important-information)
    - [Install](#install)

  <!-- mdformat-toc end -->

  ______________________________________________________________________



  > [!IMPORTANT]
  >
  > **This template override needs Alliance Auth v4!**
  >
  > Please make sure to update your Alliance Auth instance before
  > you install this version, otherwise an update to Alliance Auth will
  > be pulled in unsupervised.
  >
  > **This template override is not compatible with Alliance Auth v3.x!**
  >
  > For versions compatible with Alliance Auth v3.x, see the [Releases](https://github.com/terra-nanotech/tn-nt-auth-templates/releases) before v3.0.0.

  > [!WARNING]
  >
  > These template overrides are specially tailored for the corporation Terra Nanotech.
  > They override templates of apps we use, so it looks like we want it to. This
  > might entail changes to templates that also change the behavior in a way we like it
  > to be changed.
  >
  > If you install these template overrides, you need to be aware that there will be
  > no support for any kind of issues you might encounter, and you have to figure it out
  > on your own.



  ```shell
  pip install tnnt-templates
  ```

  In `local.py` right after `INSTALLED_APPS`:

  ```python

  INSTALLED_APPS.insert(
      0, "tnnt_templates"
  )  # Bootstrap 3 fallback for AA community app that haven't been updated to Bootstrap 5 yet.

  if "tnnt_templates" in INSTALLED_APPS:
      
      INSTALLED_APPS += [
          "tnnt_templates.theme.terra_nanotech",
      ]

      
      
      
      INSTALLED_APPS.remove("allianceauth.theme.darkly")
      INSTALLED_APPS.remove("allianceauth.theme.flatly")
      INSTALLED_APPS.remove("allianceauth.theme.materia")

      
      
      if "aagdpr" in INSTALLED_APPS:
          INSTALLED_APPS.remove("aagdpr.theme.darkly")
          INSTALLED_APPS.remove("aagdpr.theme.flatly")
          INSTALLED_APPS.remove("aagdpr.theme.materia")

      
      DEFAULT_THEME = (
          "tnnt_templates.theme.terra_nanotech.auth_hooks.TerraNanotechThemeHook"
      )
      
      DEFAULT_THEME_DARK = (
          "tnnt_templates.theme.terra_nanotech.auth_hooks.TerraNanotechThemeHook"
      )

      
      TEMPLATES[0]["OPTIONS"]["context_processors"].append(
          "tnnt_templates.context_processors.tnnt_settings"
      )

      
      TNNT_TEMPLATE_ENTITY_ID = 8154711  #  replace with your corp/alliance ID
      TNNT_TEMPLATE_ENTITY_TYPE = "corporation"  # default: "alliance"
      TNNT_TEMPLATE_ENTITY_NAME = "My Awesome Corp/Alliance"  # your corp/alliance name
  ```

  **Important**

  If you are using `AA-GDPR`, the template stuff needs to be **after** the `AA_GDPR`
  entry, like this:

  ```python

  INSTALLED_APPS.insert(0, "aagdpr")
  AVOID_CDN = True



  INSTALLED_APPS.insert(0, "tnnt_templates")
  ```

rpm_license:
[cell repeats an earlier one in this file: 34486 characters]


pkgId: 56ad2afe22523f3d346660005e39b934f9c83e4e2b0ec459ab0af74ded8dd47a
name: python-tnr-help
arch: noarch
version: 1.4.35
epoch: 0
release: 1
summary: Development documents and examples for tnr
url: https://pypi.org/project/tnr/
rpm_license: Elastic License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tnr-1.4.35-1.src.rpm
location_href: Packages/python-tnr-help-1.4.35-1.noarch.rpm
checksum_type: sha256
description:
  You are using the Thunder Compute CLI, your interface with the Thunder Compute network. Find more details at docs.thundercompute.com



  Use tnr --help for detailed usage tips


pkgId: d591474d9f3ad307354452254ff386bebebff18a772b10cfbc5371f209011ce5
name: python-toast-amplicon-help
arch: noarch
version: 1.1.2
epoch: 0
release: 1
summary: Development documents and examples for toast-amplicon
url: https://pypi.org/project/toast-amplicon/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-toast-amplicon-1.1.2-1.src.rpm
location_href: Packages/python-toast-amplicon-help-1.1.2-1.noarch.rpm
checksum_type: sha256
description:
  <!-- - TB and Other pathogen Amplicon Sequencing Tool
  - TB ONT Amplicon Sequencing Tool -->

  Here we introduced TOAST software tool aimed at addressing the challenges in amplicon primer design for TB sequencing leveraging the package primer3 for Tm, homopolymers, hairpins, homodimers considerations and in-house pipeline for avoiding heterodimer, alternative binding. This automated tool in takes user defined SNP priority for amplicon coverage and outputs designed amplicon primers with respective Tm and primer coordinates and sequence with capability of focusing on specific genes and taking into account of spoligotypes


  Install the required conda environment
  ```conda env create -n TOAST -f environment.yml```
  Clone repository
  ```git clone <repo html link>```
  Install Python package (be in the root directory of the repository)
  ```pip install .```



  *Decide on SNP priority by modifying the SNP priority file (variant.csv)
  *Decide on amplicon size


  - Install the required conda environment
      ```conda env create -n TOAST -f environment.yml```


  Get to the code directory
  ```cd code```

  1. Estimate amplicon number needed for coverage (*amplicon_no* function)
     - Example:
     ```
      python main.py amplicon_no -a 400 -op /mnt/storage10/lwang/Projects/TOAST/cache/Amplicon_design_output -g

      toast amplicon_no -a 800 -op /mnt/storage10/lwang/Projects/TOAST/cache/Amplicon_design_output -g
     ```
  2. Run amplicon design (*design* function)
      - Example:
      ```
      python main.py design -op /mnt/storage10/lwang/Projects/TOAST/cache/Amplicon_design_output -a 400 -sn 1 -sg rpoB,katG -nn 40

      toast design -op /mnt/storage10/lwang/Projects/TOAST/cache/Amplicon_design_output -a 400 -sn 1 -sg rpoB,katG -nn 40

      toast design -op /mnt/storage10/lwang/Projects/TOAST/cache/Amplicon_design_output -a 400 -sn 1 -sg rpoB,katG -nn 25

      toast design -op /mnt/storage10/lwang/Projects/TOAST/cache/output -a 1000 -nn 4 -ud /mnt/storage10/lwang/Projects/TOAST/cache/test_df.csv
      ```
      toast design -op /mnt/storage10/lwang/Projects/TOAST/cache/output -a 1000 -nn 26

      toast design -op /mnt/storage10/lwang/Projects/TOAST/cache/Amplicon_design_output -a 400 -sn 1 -sg rpsL -nn 0 -ud /mnt/storage10/lwang/Projects/TOAST/cache/test_df.csv
      ```
  3. Check amplicon design using coverage plot (*plotting* function)
      - Example:
      ```
      python main.py plotting -ap /mnt/storage10/lwang/Projects/TOAST/toast/Amplicon_design_output/Primer_design-accepted_primers-23-400.csv -rp /mnt/storage10/lwang/Projects/TOAST/toast/db/reference_design.csv -op /mnt/storage10/lwang/Projects/TOAST/cache/Amplicon_design_output -r 400

      toast plotting -ap /mnt/storage10/lwang/Projects/TOAST/toast/Amplicon_design_output/Primer_design-accepted_primers-23-400.csv -rp /mnt/storage10/lwang/Projects/TOAST/toast/db/reference_design.csv -op /mnt/storage10/lwang/Projects/TOAST/cache/Amplicon_design_output -r 400
      ```




  - **PRIMER_NUM_RETURN**: Number of primer pairs to return.
  - **PRIMER_PICK_INTERNAL_OLIGO**: Flag to pick internal oligos (0 for no, 1 for yes).
  - **PRIMER_INTERNAL_MAX_SELF_END**: Maximum self-complementarity score for internal oligos.
  - **PRIMER_MIN_SIZE**: Minimum primer size in bases.
  - **PRIMER_MAX_SIZE**: Maximum primer size in bases.
  - **PRIMER_MIN_TM**: Minimum melting temperature (Tm) for primers in °C.
  - **PRIMER_MAX_TM**: Maximum melting temperature (Tm) for primers in °C.
  - **PRIMER_MIN_GC**: Minimum GC content in percent for primers.
  - **PRIMER_MAX_GC**: Maximum GC content in percent for primers.
  - **PRIMER_MAX_POLY_X**: Maximum length of mononucleotide repeats in primers.
  - **PRIMER_INTERNAL_MAX_POLY_X**: Maximum length of mononucleotide repeats in internal oligos.
  - **PRIMER_SALT_MONOVALENT**: Concentration of monovalent salts (e.g., Na+, K+) in mM.
  - **PRIMER_DNA_CONC**: Concentration of DNA template in nM.
  - **PRIMER_MAX_NS_ACCEPTED**: Maximum number of unknown bases (N's) accepted in primers.
  - **PRIMER_MAX_SELF_ANY**: Maximum overall self-complementarity score for primers.
  - **PRIMER_MAX_SELF_END**: Maximum 3' end self-complementarity score for primers.
  - **PRIMER_PAIR_MAX_COMPL_ANY**: Maximum overall complementarity score between primer pairs.
  - **PRIMER_PAIR_MAX_COMPL_END**: Maximum 3' end complementarity score between primer pairs.
  - **PRIMER_PRODUCT_SIZE_RANGE**: Range of acceptable primer product sizes (e.g., "100-300").



    - Configuration Parameters file: '''default_primer_design_setting.txt'''
    - User input primer file: '''user_input_primer.csv'''









  <filetype>-<number of total amplicon designed>-<minimum amplicon size>-<maximum amplicon size>-<step size>-<number of amplicon for each size>


  - Primer_design-accepted_primers: All detailed information about the designed amplicons
  - Amplicon_importance: Number of SNP coverd by each amplicon
  - Amplicon_mapped: bed file can be used to visualised the amplicon on genome using tools such as igv
  - SNP_inclusion: shows SNP covered
  - Gene_covereage: show percentage of each gene covered


  Test runs:
  toast design -op /mnt/storage10/lwang/Projects/TOAST/cache/Amplicon_design_output_jp -a 1000 -sn 1 -sg mmpR5 -nn 20
  toast design -op /mnt/storage10/lwang/Projects/TOAST/cache/Amplicon_design_output_jp -a 1000 -sn 1 -sg mmpR5 -nn 30
  toast design -op /mnt/storage10/lwang/Projects/TOAST/cache/Amplicon_design_output_jp -a 1000 -sn 1 -sg mmpR5 -nn 40


  toast design -op /mnt/storage10/lwang/Projects/TOAST/cache/Amplicon_design_output_seg -seg 600,800,50,2 -sg Rv0678
  toast design -op /mnt/storage10/lwang/Projects/TOAST/cache/Amplicon_design_output_seg -seg 300,800,50,3 -sg Rv0678,katG
  toast design -op /mnt/storage10/lwang/Projects/TOAST/cache/Amplicon_design_output_seg -seg 400,800,50,1 -sg Rv0678,katG



  toast design -op /mnt/storage10/lwang/Projects/TOAST/cache/Amplicon_design_output_Dario -a 600 -nn 19

  toast design -s /mnt/storage10/lwang/Projects/TOAST_/toast/db/snp_priority_Dario.csv -op /mnt/storage10/lwang/Projects/TOAST_/cache/Amplicon_design_output_Dario -nn 19 -a 300 -p 100

  toast design -s /mnt/storage10/lwang/Projects/TOAST_/toast/db/snp_priority_Dario6_1.csv -op /mnt/storage10/lwang/Projects/TOAST_/cache/Amplicon_design_output_Dario6_1 -nn 6 -a 300 -p 100
  toast design -s /mnt/storage10/lwang/Projects/TOAST_/toast/db/snp_priority_Dario6_2.csv -op /mnt/storage10/lwang/Projects/TOAST_/cache/Amplicon_design_output_Dario6_2 -nn 6 -a 300 -p 100
  toast design -s /mnt/storage10/lwang/Projects/TOAST_/toast/db/snp_priority_Dario6_3.csv -op /mnt/storage10/lwang/Projects/TOAST_/cache/Amplicon_design_output_Dario6_3 -nn 6 -a 300 -p 100


  toast design -op /mnt/storage10/lwang/Projects/TOAST/cache/Amplicon_design_output_seg -seg 300,800,50,3 -sg Rv0678,katG


pkgId: 3580ff6d726c7ab92c669126ed097b37815bde9f4ec7b40d7c349bad1f01ab5d
name: python-tock-help
arch: noarch
version: 0.32
epoch: 0
release: 1
summary: Development documents and examples for tock
url: https://github.org/ND-CSE-30151/tock
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tock-0.32-1.src.rpm
location_href: Packages/python-tock-help-0.32-1.noarch.rpm
checksum_type: sha256
description:
  Tock stands for Theory Of Computing toolKit. It can simulate the
  automata taught in standard theory of computation courses
  (deterministic and nondeterministic finite automata, pushdown
  automata, and Turing machines). It can also simulate many extensions,
  like multiple stacks or tapes.
  - [Project documentation](http://nd-cse-30151.github.io/tock/html/)


pkgId: ab4f60a7ad26c797b4c365fd5028c8ca47016fb2e0856a3fa967920de38a9a73
name: python-toexcel-help
arch: noarch
version: 1.0.0
epoch: 0
release: 1
summary: Development documents and examples for toexcel
url: https://github.com/gary714/toexecl
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-toexcel-1.0.0-1.src.rpm
location_href: Packages/python-toexcel-help-1.0.0-1.noarch.rpm
checksum_type: sha256
description:
  - 在数据分析和报告制作中，将数据导出到 ``Excel`` 表格是一种常见需求。
  - 与控制台输出相比，\ ``Excel`` 表格提供了更加直观和易于操作的界面。
  - 在一些特定场景下，如需要对数据进行进一步编辑或提交给他人时，将数据以 ``Excel`` 格式呈现是非常必要的。


pkgId: 7000ca86af3c4f59db9dca46e1087d8c9726b10b06e6b82a08738d3e36699d0b
name: python-together-help
arch: noarch
version: 1.3.8
epoch: 0
release: 1
summary: Development documents and examples for together
url: https://github.com/togethercomputer/together-python
rpm_license: Apache-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-together-1.3.8-1.src.rpm
location_href: Packages/python-together-help-1.3.8-1.noarch.rpm
checksum_type: sha256
description:
  <div align="center">
    <a href="https://www.together.ai/">
      <img alt="together.ai" height="100px" src="https://assets-global.website-files.com/64f6f2c0e3f4c5a91c1e823a/654693d569494912cfc0c0d4_favicon.svg">
    </a>
  </div>



  [![PyPI version](https://img.shields.io/pypi/v/together.svg)](https://pypi.org/project/together/)
  [![Discord](https://dcbadge.vercel.app/api/server/9Rk6sSeWEG?style=flat&compact=true)](https://discord.com/invite/9Rk6sSeWEG)
  [![Twitter](https://img.shields.io/twitter/url/https/twitter.com/togethercompute.svg?style=social&label=Follow%20%40togethercompute)](https://twitter.com/togethercompute)

  The [Together Python API Library](https://pypi.org/project/together/) is the official Python client for Together's API platform, providing a convenient way for interacting with the REST APIs and enables easy integrations with Python 3.8+ applications with easy to use synchronous and asynchronous clients.





  > 🚧
  > The Library was rewritten in v1.0.0 released in April of 2024. There were significant changes made.

  To install Together Python Library from PyPI, simply run:

  ```shell Shell
  pip install --upgrade together
  ```



  > 🚧 You will need to create an account with [Together.ai](https://api.together.xyz/) to obtain a Together API Key.

  Once logged in to the Together Playground, you can find available API keys in [this settings page](https://api.together.xyz/settings/api-keys).



  ```shell
  export TOGETHER_API_KEY=xxxxx
  ```



  ```python
  from together import Together

  client = Together(api_key="xxxxx")
  ```

  This repo contains both a Python Library and a CLI. We'll demonstrate how to use both below.





  ```python
  import os
  from together import Together

  client = Together(api_key=os.environ.get("TOGETHER_API_KEY"))

  response = client.chat.completions.create(
      model="mistralai/Mixtral-8x7B-Instruct-v0.1",
      messages=[{"role": "user", "content": "tell me about new york"}],
  )
  print(response.choices[0].message.content)
  ```



  ```python
  import os
  from together import Together

  client = Together(api_key=os.environ.get("TOGETHER_API_KEY"))
  stream = client.chat.completions.create(
      model="mistralai/Mixtral-8x7B-Instruct-v0.1",
      messages=[{"role": "user", "content": "tell me about new york"}],
      stream=True,
  )

  for chunk in stream:
      print(chunk.choices[0].delta.content or "", end="", flush=True)
  ```



  ```python
  import os, asyncio
  from together import AsyncTogether

  async_client = AsyncTogether(api_key=os.environ.get("TOGETHER_API_KEY"))
  messages = [
      "What are the top things to do in San Francisco?",
      "What country is Paris in?",
  ]

  async def async_chat_completion(messages):
      async_client = AsyncTogether(api_key=os.environ.get("TOGETHER_API_KEY"))
      tasks = [
          async_client.chat.completions.create(
              model="mistralai/Mixtral-8x7B-Instruct-v0.1",
              messages=[{"role": "user", "content": message}],
          )
          for message in messages
      ]
      responses = await asyncio.gather(*tasks)

      for response in responses:
          print(response.choices[0].message.content)

  asyncio.run(async_chat_completion(messages))
  ```



  Completions are for code and language models shown [here](https://docs.together.ai/docs/inference-models). Below, a code model example is shown.

  ```python
  import os
  from together import Together

  client = Together(api_key=os.environ.get("TOGETHER_API_KEY"))

  response = client.completions.create(
      model="codellama/CodeLlama-34b-Python-hf",
      prompt="Write a Next.js component with TailwindCSS for a header component.",
      max_tokens=200,
  )
  print(response.choices[0].text)
  ```



  ```python
  import os
  from together import Together

  client = Together(api_key=os.environ.get("TOGETHER_API_KEY"))
  stream = client.completions.create(
      model="codellama/CodeLlama-34b-Python-hf",
      prompt="Write a Next.js component with TailwindCSS for a header component.",
      stream=True,
  )

  for chunk in stream:
      print(chunk.choices[0].delta.content or "", end="", flush=True)
  ```



  ```python
  import os, asyncio
  from together import AsyncTogether

  async_client = AsyncTogether(api_key=os.environ.get("TOGETHER_API_KEY"))
  prompts = [
      "Write a Next.js component with TailwindCSS for a header component.",
      "Write a python function for the fibonacci sequence",
  ]

  async def async_chat_completion(prompts):
      tasks = [
          async_client.completions.create(
              model="codellama/CodeLlama-34b-Python-hf",
              prompt=prompt,
          )
          for prompt in prompts
      ]
      responses = await asyncio.gather(*tasks)

      for response in responses:
          print(response.choices[0].text)

  asyncio.run(async_chat_completion(prompts))
  ```



  ```python
  import os
  from together import Together

  client = Together(api_key=os.environ.get("TOGETHER_API_KEY"))

  response = client.images.generate(
      prompt="space robots",
      model="stabilityai/stable-diffusion-xl-base-1.0",
      steps=10,
      n=4,
  )
  print(response.data[0].b64_json)
  ```



  ```python
  from typing import List
  from together import Together

  client = Together(api_key=os.environ.get("TOGETHER_API_KEY"))

  def get_embeddings(texts: List[str], model: str) -> List[List[float]]:
      texts = [text.replace("\n", " ") for text in texts]
      outputs = client.embeddings.create(model=model, input = texts)
      return [outputs.data[i].embedding for i in range(len(texts))]

  input_texts = ['Our solar system orbits the Milky Way galaxy at about 515,000 mph']
  embeddings = get_embeddings(input_texts, model='togethercomputer/m2-bert-80M-8k-retrieval')

  print(embeddings)
  ```



  The files API is used for fine-tuning and allows developers to upload data to fine-tune on. It also has several methods to list all files, retrive files, and delete files. Please refer to our fine-tuning docs [here](https://docs.together.ai/docs/fine-tuning-python).

  ```python
  import os
  from together import Together

  client = Together(api_key=os.environ.get("TOGETHER_API_KEY"))

  client.files.upload(file="somedata.jsonl") # uploads a file
  client.files.list() # lists all uploaded files
  client.files.retrieve(id="file-d0d318cb-b7d9-493a-bd70-1cfe089d3815") # retrieves a specific file
  client.files.retrieve_content(id="file-d0d318cb-b7d9-493a-bd70-1cfe089d3815") # retrieves content of a specific file
  client.files.delete(id="file-d0d318cb-b7d9-493a-bd70-1cfe089d3815") # deletes a file
  ```



  The finetune API is used for fine-tuning and allows developers to create finetuning jobs. It also has several methods to list all jobs, retrive statuses and get checkpoints. Please refer to our fine-tuning docs [here](https://docs.together.ai/docs/fine-tuning-python).

  ```python
  import os
  from together import Together

  client = Together(api_key=os.environ.get("TOGETHER_API_KEY"))

  client.fine_tuning.create(
    training_file = 'file-d0d318cb-b7d9-493a-bd70-1cfe089d3815',
    model = 'mistralai/Mixtral-8x7B-Instruct-v0.1',
    n_epochs = 3,
    n_checkpoints = 1,
    batch_size = "max",
    learning_rate = 1e-5,
    suffix = 'my-demo-finetune',
    wandb_api_key = '1a2b3c4d5e.......',
  )
  client.fine_tuning.list() # lists all fine-tuned jobs
  client.fine_tuning.retrieve(id="ft-c66a5c18-1d6d-43c9-94bd-32d756425b4b") # retrieves information on finetune event
  client.fine_tuning.cancel(id="ft-c66a5c18-1d6d-43c9-94bd-32d756425b4b") # Cancels a fine-tuning job
  client.fine_tuning.list_events(id="ft-c66a5c18-1d6d-43c9-94bd-32d756425b4b") #  Lists events of a fine-tune job
  client.fine_tuning.download(id="ft-c66a5c18-1d6d-43c9-94bd-32d756425b4b") # downloads compressed fine-tuned model or checkpoint to local disk
  ```



  This lists all the models that Together supports.

  ```python
  import os
  from together import Together

  client = Together(api_key=os.environ.get("TOGETHER_API_KEY"))

  models = client.models.list()

  for model in models:
      print(model)
  ```





  ```bash
  together chat.completions \
    --message "system" "You are a helpful assistant named Together" \
    --message "user" "What is your name?" \
    --model mistralai/Mixtral-8x7B-Instruct-v0.1
  ```

  The Chat Completions CLI enables streaming tokens to stdout by default. To disable streaming, use `--no-stream`.



  ```bash
  together completions \
    "Large language models are " \
    --model mistralai/Mixtral-8x7B-v0.1 \
    --max-tokens 512 \
    --stop "."
  ```

  The Completions CLI enables streaming tokens to stdout by default. To disable streaming, use `--no-stream`.



  ```bash
  together images generate \
    "space robots" \
    --model stabilityai/stable-diffusion-xl-base-1.0 \
    --n 4
  ```

  The image is opened in the default image viewer by default. To disable this, use `--no-show`.



  ```bash

  together files --help


  together files check example.jsonl


  together files upload example.jsonl


  together files list


  together files retrieve file-6f50f9d1-5b95-416c-9040-0799b2b4b894


  together files retrieve-content file-6f50f9d1-5b95-416c-9040-0799b2b4b894


  together files delete file-6f50f9d1-5b95-416c-9040-0799b2b4b894
  ```



  ```bash

  together fine-tuning --help


  together fine-tuning create \
    --model togethercomputer/llama-2-7b-chat \
    --training-file file-711d8724-b3e3-4ae2-b516-94841958117d


  together fine-tuning list


  together fine-tuning retrieve ft-c66a5c18-1d6d-43c9-94bd-32d756425b4b


  together fine-tuning list-events ft-c66a5c18-1d6d-43c9-94bd-32d756425b4b


  together fine-tuning cancel ft-c66a5c18-1d6d-43c9-94bd-32d756425b4b


  together fine-tuning download ft-c66a5c18-1d6d-43c9-94bd-32d756425b4b
  ```



  ```bash

  together models --help


  together models list
  ```



  Refer to the [Contributing Guide](CONTRIBUTING.md)


pkgId: b275207c64683082b9eee3049cb10942d524e496c1b054ccae7480231c98a234
name: python-toggl-api-wrapper-help
arch: noarch
version: 1.6.0
epoch: 0
release: 1
summary: Development documents and examples for toggl-api-wrapper
url: https://ddkasa.github.io/toggl-api-wrapper/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-toggl-api-wrapper-1.6.0-1.src.rpm
location_href: Packages/python-toggl-api-wrapper-help-1.6.0-1.noarch.rpm
checksum_type: sha256
description:
  Install with pip:
  ```bash
  pip install toggl-api-wrapper
  ```
  Or if using SQLite cache:
  ```bash
  pip install "toggl-api-wrapper[sqlite]"
  ```

  - Currently supports interacting with Trackers, Projects, Clients, Tags, Reports and some extras.
  - Designed to be rudimentary to allow simple development of custom commands.

  <details>
    <summary>Tracker Endpoint</summary>
  ```python
  from datetime import timedelta
  from pathlib import Path
  from toggl_api import (
      TrackerBody,
      TrackerEndpoint,
      generate_authentication,
      JSONCache
  )
  WORKSPACE_ID = 2313123123
  AUTH = generate_authentication()
  cache = JSONCache(Path("cache"), timedelta(hours=24))
  endpoint = TrackerEndpoint(WORKSPACE_ID, AUTH, cache)
  body = TrackerBody("My First Tracker", tags=["My First Tag"])
  tracker = endpoint.add(body)
  print(tracker)
  ```
  <strong>Outputs:</strong>
  ```python
  >>> TogglTracker(
          id=3482231563,
          name="My First Tracker",
          workspace=2313123123,
          start=datetime.datetime(2024, 6, 10, 14, 59, 20, tzinfo=datetime.timezone.utc),
          duration=datetime.timedelta(seconds=1, microseconds=179158),
          stop=None,
          project=None,
          tags=[],
      )
  ```
  </details>
  <details>
    <summary>User Endpoint</summary>
  ```python
  from datetime import timedelta
  from pathlib import Path
  from toggl_api import (
      UserEndpoint,
      generate_authentication,
      JSONCache,
  )
  from toggl_api.config import retrieve_workspace_id
  WORKSPACE_ID = retrieve_workspace_id()
  AUTH = generate_authentication()
  cache = JSONCache(Path("cache"), timedelta(weeks=1))
  endpoint = UserEndpoint(workspace_id, AUTH, CACHE)
  tracker = endpoint.get(3482231563, refresh=True)
  print(tracker)
  ```
  <strong>Outputs:</strong>
  ```python
  >>> TogglTracker(
          id=3482231563,
          name="My First Tracker",
          workspace=2313123123,
          start=datetime.datetime(2024, 6, 10, 14, 59, 20, tzinfo=datetime.timezone.utc),
          duration=datetime.timedelta(seconds=1, microseconds=179158),
          stop=None,
          project=None,
          tags=[],
      )
  ```
  </details>

  - [Examples](https://ddkasa.github.io/toggl-api-wrapper/user-guide/examples.html)
  - [API Documentation](https://ddkasa.github.io/toggl-api-wrapper/api-guide/)
  - [User Guide](https://ddkasa.github.io/toggl-api-wrapper/index.html)
  - [Changelog](https://ddkasa.github.io/toggl-api-wrapper/CHANGELOG.html)

  See [CONTRIBUTING](CONTRIBUTING.md).

  MIT. Check [LICENSE](LICENSE.md) for more information.


pkgId: 18991dc56ecdde9bdc74f4a0b54d657b37736086e366b26337668531c4153988
name: python-toggle-cbreak-help
arch: noarch
version: 0.0.3
epoch: 0
release: 1
summary: Development documents and examples for toggle-cbreak
url: https://github.com/zlliu246/toggle_cbreak
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-toggle-cbreak-0.0.3-1.src.rpm
location_href: Packages/python-toggle-cbreak-help-0.0.3-1.noarch.rpm
checksum_type: sha256
description:
  Simple lib to turn cbreak mode on and off



  ```
  pip install toggle_cbreak
  ```



  ```python
  from toggle_cbreak import cbreak_off, cbreak_on



  cbreak_on() # turns on cbreak mode



  cbreak_off()


  ```


  Our terminal has 3 modes:
  - cooked mode (default)
  - raw mode
  - cbreak mode

  Cooked mode (default)
  - data is preprocessed before being given to program
  - system intercepts special characters, and gives special behaviour to them
      - eg. Backspace, Control-C, etc
  - Let's say you type `"ABC<Backspace>D"`
      - in cooked mode, this is processed as `"ABD"`
      - the `<Backspace>` in a way, deletes our `C`

  Raw mode
  - data is passed as it is to program
  - system does not interpret special characters as special characters
  - Let's say you type `"ABC<Backspace>D"`
      - `"ABC<Backspace>D"` itself is given to our program
      - no processing done

  Cbreak mode
  - a mode between cooked mode and raw mode
  - only certain characters eg. Control-C will be processed as special characters


  ```python
  from toggle_cbreak import cbreak_off, cbreak_on

  firstname = input("(cooked mode) Enter first name: ")

  cbreak_on()

  print(
      "(cbreak mode) Enter some text. "
      "Whatever you type will be repeated multiple times as you type. "
      "Hit Control-C to escape this mode."
  )

  try:
      while True:
          char = sys.stdin.read(1)
          print(char * random.randrange(1, 4), end="", flush=True)
  except KeyboardInterrupt:
      pass

  cbreak_off()
  print("\nBack to normal cooked mode.\n")

  lastname = input("(cooked mode) Enter last name: ")

  print(f"{firstname=} {lastname=}")
  ```


pkgId: 720bdad380f240c312c49cc55d0f3294d9e7e4bcc86ab5fc10e298bb7db1113d
name: python-token-injectable-docker-builder-help
arch: noarch
version: 1.2.7
epoch: 0
release: 1
summary: Development documents and examples for token-injectable-docker-builder
url: https://github.com/AlexTech314/TokenInjectableDockerBuilder.git
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-token-injectable-docker-builder-1.2.7-1.src.rpm
location_href: Packages/python-token-injectable-docker-builder-help-1.2.7-1.noarch.rpm
checksum_type: sha256
description:
  AWS CDK already provides mechanisms for creating deployable assets using Docker, such as [DockerImageAsset](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ecr_assets.DockerImageAsset.html) and [DockerImageCode](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.DockerImageCode.html), but these constructs are limited because they cannot accept CDK tokens as build-args. The `TokenInjectableDockerBuilder` allows injecting CDK tokens as build-time arguments into Docker-based assets, enabling more dynamic dependency relationships.


pkgId: 19dd8990bb756ebe9f261d2fe4630bfe2a5ab0fa53a9fa076072715d9890bba9
name: python-tokenlearn-help
arch: noarch
version: 0.1.1
epoch: 0
release: 1
summary: Development documents and examples for tokenlearn
url: https://github.com/MinishLab
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tokenlearn-0.1.1-1.src.rpm
location_href: Packages/python-tokenlearn-help-0.1.1-1.noarch.rpm
checksum_type: sha256
description:
  Tokenlearn is a method to pre-train [Model2Vec](https://github.com/MinishLab/model2vec).

  The method is described in detail in our [Tokenlearn blogpost](https://minishlab.github.io/tokenlearn_blogpost/).



  Install the package with:

  ```bash
  pip install tokenlearn
  ```

  The basic usage of Tokenlearn consists of two CLI scripts: `featurize` and `train`.

  Tokenlearn is trained using means from a sentence transformer. To create means, the `tokenlearn-featurize` CLI can be used:

  ```bash
  python3 -m tokenlearn.featurize --model-name "baai/bge-base-en-v1.5" --output-dir "data/c4_features"
  ```

  NOTE: the default model is trained on the C4 dataset. If you want to use a different dataset, the following code can be used:

  ```bash
  python3 -m tokenlearn.featurize \
      --model-name "baai/bge-base-en-v1.5" \
      --output-dir "data/c4_features" \
      --dataset-path "allenai/c4" \
      --dataset-name "en" \
      --dataset-split "train"
  ```

  To train a model on the featurized data, the `tokenlearn-train` CLI can be used:
  ```bash
  python3 -m tokenlearn.train --model-name "baai/bge-base-en-v1.5" --data-path "data/c4_features" --save-path "<path-to-save-model>"
  ```

  Training will create two models:
  - The base trained model.
  - The base model with weighting applied. This is the model that should be used for downstream tasks.

  NOTE: the code assumes that the padding token ID in your tokenizer is 0. If this is not the case, you will need to modify the code.



  To evaluate a model, you can use the following command after installing the optional evaluation dependencies:

  ```bash
  pip install evaluation@git+https://github.com/MinishLab/evaluation@main

  ```

  ```python
  from model2vec import StaticModel

  from evaluation import CustomMTEB, get_tasks, parse_mteb_results, make_leaderboard, summarize_results
  from mteb import ModelMeta


  tasks = get_tasks()

  evaluation = CustomMTEB(tasks=tasks)


  model_name = "tokenlearn_model"
  model = StaticModel.from_pretrained(model_name)


  model.mteb_model_meta = ModelMeta(
              name=model_name, revision="no_revision_available", release_date=None, languages=None
          )


  results = evaluation.run(model, eval_splits=["test"], output_folder=f"results")


  parsed_results = parse_mteb_results(mteb_results=results, model_name=model_name)
  task_scores = summarize_results(parsed_results)


  print(make_leaderboard(task_scores))
  ```



  MIT


pkgId: 9f9a4893abff137a32d7a249e1020482c88faa6e30025bd8e57ed04e46282c11
name: python-tollingvision-scsinfo-help
arch: noarch
version: 2.2.0
epoch: 0
release: 1
summary: Development documents and examples for tollingvision-scsinfo
url: https://tollingvision.com
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tollingvision-scsinfo-2.2.0-1.src.rpm
location_href: Packages/python-tollingvision-scsinfo-help-2.2.0-1.noarch.rpm
checksum_type: sha256
description:
  Python client for [Tolling Vision](https://tollingvision.com/) by [Smart Cloud Solutions Inc.](https://smart-cloud-solutions.com/).



  The Tolling Vision client provides a seamless way to interact with the Tolling Vision Dockerized service, allowing tolling operators or image review companies to process and review images efficiently. This client supports features like license plate, make and model, and dangerous goods recognition.



  Before installing, ensure you have the following prerequisites:

  Python (>=3.6)



  To install the Tolling Vision client along with the necessary dependencies, including **`grpcio-tools`**, run the following command:

  ```sh
  pip install grpcio-tools tollingvision-scsinfo
  ```

  If you need to upgrade to the latest version of the Tolling Vision client, you can do so by adding the **`--upgrade`** flag to the installation command:

  ```sh
  pip install --upgrade tollingvision-scsinfo
  ```



  To see a working example of how to use this package, please refer to the sample project available on GitHub: [Python Example Program for Tolling Vision
  ](https://github.com/smartcloudsol/tollingvision-python-sample).

  You can clone the repository and follow the instructions provided in the README file of the sample project to get started.


pkgId: 3cf504816fc1b0286f04b9ea988452bc6977c5ea6affc643d2940e6543221f79
name: python-tomlkit-extras-help
arch: noarch
version: 0.1.0
epoch: 0
release: 1
summary: Development documents and examples for tomlkit-extras
url: https://pypi.org/project/tomlkit-extras/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tomlkit-extras-0.1.0-1.src.rpm
location_href: Packages/python-tomlkit-extras-help-0.1.0-1.noarch.rpm
checksum_type: sha256
description:
  ![Tests](https://github.com/galactixx/tomlkit-extras/actions/workflows/continuous_integration.yaml/badge.svg)

  **tomlkit-extras** is a Python package that extends the functionality of [tomlkit](https://github.com/sdispater/tomlkit), allowing for advanced manipulation, validation, and introspection of TOML files. This package provides enhanced capabilities for handling comments, nested structures, and other nuanced elements within TOML files.



  To install tomlkit-extras, run the following command:

  ```bash
  pip install tomlkit-extras
  ```



  - **Comment Handling**: Introspect, modify, or retain comments within TOML files.
  - **Nested Structure Support**: Access, edit, and validate deeply nested tables and arrays.
  - **Validation Tools**: Validate and ensure the integrity of TOML file structures.
  - **Enhanced Introspection**: Retrieve metadata and structure details from TOML documents.
  - **Comprehensive Field Retrieval**: Extract and modify TOML fields and their properties.





  The `TOMLDocumentDescriptor` class provides powerful tools for parsing and extracting elements from a TOML document. It can be used to retrieve statistics, extract specific fields, tables, or array-of-tables, and analyze document stylings.

  Below are examples showcasing some of the methods available in the  `TOMLDocumentDescriptor` class.



  ```python
  from tomlkit_extras import TOMLDocumentDescriptor, load_toml_file


  raw_toml = """



  [table1]
  key1 = "value1"
  key2 = "value2"

  [[array_of_tables]]
  name = "first"

  [[array_of_tables]]
  name = "second"
  """


  toml_doc = load_toml_file(raw_toml)


  descriptor = TOMLDocumentDescriptor(toml_doc)
  ```

  ```python

  num_tables = descriptor.number_of_tables
  ```

  **Return Type:** `int`

  | **Description** |
  |-----------------|
  | The total number of tables in the TOML document. |

  ```python

  num_aots = descriptor.number_of_aots
  ```

  **Return Type:** `int`

  | **Description** |
  |-----------------|
  | The total number of array of tables in the TOML document. |

  ```python

  field = descriptor.get_field(hierarchy='table1.key1')
  ```

  **Return Type:** `FieldDescriptor`

  | **Attribute**       | **Type**               | **Description** |
  |-------------------|-----------------------|-----------------|
  | **hierarchy**      | `Hierarchy`           | A `Hierarchy` instance representing the full hierarchy of the field. |
  | **name**           | `str`                 | The name of the field. |
  | **item_type**      | `FieldItem`           | A `FieldItem` instance corresponding to a string literal, either 'field' or 'array'. |
  | **parent_type**    | `ParentItem` \| `None`| A `ParentItem` instance corresponding to a string literal representing the type of the parent of the structure. Can be None if there is no parent. |
  | **line_no**        | `int`                 | An integer line number marking the beginning of the structure. |
  | **attribute_position** | `int`              | An integer position of the structure amongst all other key-value pairs (fields, tables) within the parent. |
  | **container_position** | `int`               | An integer position of the structure amongst all types, including stylings (whitespace, comments), within the parent. |
  | **comment**        | `CommentDescriptor` \| `None` | A `CommentDescriptor` instance corresponding to the comment associated with the structure. Can be None if there is no comment. |
  | **value**          | `Any`                 | The value of the field. |
  | **value_type**     | `Type[Any]`           | The type of the field value. |
  | **stylings**       | `StylingDescriptors`  | An object with all stylings associated with the field. |
  | **from_aot**       | `bool`                | A boolean indicating whether the field is nested within an array of tables. |

  ```python

  table = descriptor.get_table(hierarchy='table1')
  ```

  **Return Type:** `TableDescriptor`

  | **Attribute**    | **Type**          | **Description** |
  |-----------------|------------------|-----------------|
  | **hierarchy**        | `Hierarchy`            | A `Hierarchy` instance representing the full hierarchy of the table. |
  | **name**             | `str`                  | The name of the table. |
  | **item_type**        | `TableItem`            | A `TableItem` instance corresponding to a string literal, either 'table' or 'inline-table'. |
  | **parent_type**      | `ParentItem` \| `None` | A `ParentItem` instance corresponding to a string literal representing the type of the parent of the structure. Can be None if there is no parent. |
  | **line_no**          | `int`                  | An integer line number marking the beginning of the table. |
  | **attribute_position** | `int`                | An integer position of the structure amongst all other key-value pairs (fields, tables) within the parent. |
  | **container_position** | `int`                 | An integer position of the structure amongst all types, including stylings (whitespace, comments), within the parent. |
  | **comment**          | `CommentDescriptor` \| `None` | A `CommentDescriptor` instance corresponding to the comment associated with the structure. Can be None if there is no comment. |
  | **fields**           | `Dict[str, FieldDescriptor]` | A dictionary of key-value pairs, each being a field contained in the table. |
  | **num_fields**       | `int`                  | The number of fields contained in the table. |
  | **stylings**         | `StylingDescriptors`   | An object with all stylings appearing within the table. |
  | **from_aot**         | `bool`                 | A boolean indicating whether the table is nested within an array of tables. |

  ```python

  aots = descriptor.get_aot(hierarchy='array_of_tables')
  ```

  **Return Type:** `List[AoTDescriptor]`

  | **Attribute** | **Type**            | **Description** |
  |--------------|-------------------|-----------------|
  | **hierarchy**        | `Hierarchy`                  | A `Hierarchy` instance representing the full hierarchy of the array. |
  | **name**             | `str`                        | The name of the array of tables. |
  | **item_type**        | `AoTItem`                    | An `AoTItem` instance, the literal 'array-of-tables'. |
  | **parent_type**      | `ParentItem` \| `None`       | A `ParentItem` instance corresponding to a string literal representing the type of the parent of the structure. Can be None if there is no parent. |
  | **line_no**          | `int`                        | An integer line number marking the beginning of the array of tables. |
  | **attribute_position** | `int`                      | An integer position of the structure amongst all other key-value pairs (fields, tables) within the parent. |
  | **container_position** | `int`                      | An integer position of the structure amongst all types, including stylings (whitespace, comments), within the parent. |
  | **tables**           | `List[TableDescriptor]`     | A list of `TableDescriptor` instances where each one represents a table within the array of tables. |
  | **from_aot**         | `bool`                       | A boolean indicating whether the array is nested within an array of tables. |

  ```python

  stylings = descriptor.get_top_level_stylings(styling='comment')
  ```

  **Return Type:** `List[StyleDescriptor]`

  | **Attribute**   | **Type**          | **Description** |
  |----------------|------------------|-----------------|
  | **hierarchy**        | `Hierarchy` \| `None`  | A `Hierarchy` instance representing the full hierarchy of the styling, or None if it is a top-level styling. |
  | **item_type**        | `StyleItem`            | A `StyleItem` instance corresponding to a string literal, either 'whitespace' or 'comment'. |
  | **parent_type**      | `ParentItem` \| `None` | A `ParentItem` instance corresponding to a string literal representing the type of the parent of the structure. Can be None if there is no parent. |
  | **line_no**          | `int`                  | An integer line number marking the beginning of the styling. |
  | **container_position** | `int`                 | An integer position of the structure amongst all types, including stylings (whitespace, comments), within the parent. |
  | **style**            | `str`                  | The string representation of the styling. |
  | **from_aot**         | `bool`                 | A boolean indicating whether the styling is nested within an array of tables. |



  - **`number_of_tables`**: Returns the number of tables in the TOML document.
  - **`number_of_inline_tables`**: Returns the number of inline tables in the TOML document.
  - **`number_of_aots`**: Returns the number of array-of-tables in the TOML document.
  - **`number_of_arrays`**: Returns the number of arrays in the TOML document.
  - **`number_of_comments`**: Returns the number of comments in the TOML document.
  - **`number_of_fields`**: Returns the number of non-array fields in the TOML document.



  - **`get_field_from_aot(hierarchy)`**: Retrieves all fields from an array-of-tables at a given hierarchy.
  - **`get_table_from_aot(hierarchy)`**: Retrieves all tables from an array-of-tables at a given hierarchy.
  - **`get_aot(hierarchy)`**: Retrieves all array-of-tables at a given hierarchy.
  - **`get_field(hierarchy)`**: Retrieves a field descriptor corresponding to a specific hierarchy.
  - **`get_table(hierarchy)`**: Retrieves a table descriptor corresponding to a specific hierarchy.
  - **`get_top_level_stylings(styling=None)`**: Retrieves top-level stylings such as comments or whitespace.
  - **`get_stylings(styling, hierarchy=None)`**: Retrieves specific stylings, either whitespace or comments, at a specific hierarchy.








  ```python
  from tomlkit_extras import get_comments


  comments = get_comments(toml_doc, hierarchy=None)
  ```

  **Return Type:** `List[ContainerComment]` \| `None`

  Where `ContainerComment` is a **tuple** with the following objects:

  | **Index**         | **Type**           | **Description** |
  |---------------------|-------------------|-----------------|
  | **0**      | `int`             | The line number where the comment is located. |
  | **1**          | `str`             | The content of the comment. |



  ```python
  from tomlkit_extras import get_array_field_comment


  comment = get_array_field_comment(array, array_item)
  ```

  **Return Type:** `str` \| `None`

  | **Type**           | **Description** |
  |-------------------|-----------------|
  | `str` \| `None`             | The comment associated with the array item. Can be None if the array item does not exist. |





  ```python
  from tomlkit_extras import delete_from_toml_source


  delete_from_toml_source('table1.key1', toml_doc)
  ```

  **Return Type:** `None`

  This will delete the key `key1` from the table `[table1]` within the provided TOML document. The deletion will cascade backwards to remove any empty structures left behind as a result of this deletion.



  ```python
  from tomlkit_extras import load_toml_file


  raw_toml = """
  [table1]

  key1 = "value1"


  key2 = "value2"
  """


  toml_doc = load_toml_file(raw_toml)
  ```



  ```python
  from tomlkit_extras import general_insert


  general_insert(toml_doc, 'some_value', 'table1', 'some_key')
  ```

  **Return Type:** `None`

  This will insert a new key-value pair `some_key = "some_value"` into the `[table1]` table, at the bottom after all other fields and comments.



  ```python
  from tomlkit_extras import attribute_insert


  attribute_insert(toml_doc, 'some_value', 2, 'table1', 'some_key')
  ```

  **Return Type:** `None`

  This will insert a new key-value pair `some_key = "some_value"` at position 2 within the `[table1]` table. This position is relative to other fields appearing within `[table1]`. Thus, the new field would appear between `key1` and `key2`.



  ```python
  from tomlkit_extras import container_insert


  container_insert(toml_doc, 'some_value', 2, 'table1', 'some_key')
  ```

  **Return Type:** `None`

  This will insert a new key-value pair `some_key = "some_value"` at position 2 within the `[table1]` table. This position is relative to other fields and stylings (comments and whitespaces) appearing within `[table1]`. Thus, the new field would appear between the comment `# This comment separates the first field` and `key1`.





  ```python
  from tomlkit_extras import fix_out_of_order_table


  fixed_table = fix_out_of_order_table(out_of_order_table)
  ```

  **Return Type:** `items.Table`

  | **Type**           | **Description** |
  |-------------------|-----------------|
  | `items.Table`     | The re-ordered TOML table. |



  ```python
  from tomlkit_extras import fix_out_of_order_tables


  fix_out_of_order_tables(toml_doc)
  ```

  **Return Type:** `None`

  This will re-order all out-of-order tables in the provided TOML document. The changes are applied in-place.





  ```python
  from tomlkit_extras import get_positions


  attribute_pos, container_pos = get_positions('table1.key1', toml_doc)
  ```

  **Return Type:** `Tuple[int, int]`

  | **Index**         | **Type**           | **Description** |
  |---------------------|-------------------|-----------------|
  | **0**    | `int`             | The position of the item among key-value pairs in the container. |
  | **1**    | `int`             | The position of the item among all container elements (including comments and whitespace). |



  ```python
  from tomlkit_extras import get_attribute_from_toml_source


  attribute = get_attribute_from_toml_source('table1.key1', toml_doc)
  ```

  **Return Type:** `Retrieval`

  | **Type**           | **Description** |
  |-------------------|-----------------|
  | `Retrieval`       | The retrieved TOML item, which could be an Item, a Proxy, or a list of Items. |



  ```python
  from tomlkit_extras import is_toml_instance


  is_instance = is_toml_instance(str, 'table1.key1', toml_doc)
  ```

  **Return Type:** `bool`

  | **Type**           | **Description** |
  |-------------------|-----------------|
  | `bool`            | Indicates if the TOML item at the specified hierarchy is of the given type. |





  ```python
  from tomlkit_extras import update_toml_source


  update_toml_source(toml_doc, {"key1": "some_value"}, 'table1')
  ```

  **Return Type:** `None`

  This will update the `key1` within `[table1]` to have the value `some_value`. The update will be done in place.



  - **TOML Modification**: Provide an extension to the `TOMLDocumentDescriptor` class for modification of structures while maintaining the fast lookup that is already provided.
  - **Advanced Comment Handling**: Ability to modify and move comments programmatically.



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



  If you have any questions or need support, feel free to reach out by opening an issue on the [GitHub repository](#).


pkgId: a39285a4ada8dd7299844fceb06a4bb6fe7f9e00df021e69041eb8221f45d597
name: python-tomotwin-cryoet-help
arch: noarch
version: 0.9.1
epoch: 0
release: 1
summary: Development documents and examples for tomotwin-cryoet
url: https://github.com/MPI-Dortmund/tomotwin-cryoet
rpm_license: Mozilla Public License Version 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tomotwin-cryoet-0.9.1-1.src.rpm
location_href: Packages/python-tomotwin-cryoet-help-0.9.1-1.noarch.rpm
checksum_type: sha256
description:
  [![CodeFactor](https://www.codefactor.io/repository/github/mpi-dortmund/tomotwin-cryoet/badge/main)](https://www.codefactor.io/repository/github/mpi-dortmund/tomotwin-cryoet/overview/main)
  [![codecov](https://codecov.io/github/MPI-Dortmund/tomotwin-cryoet/branch/main/graph/badge.svg?token=IXLA2N9XB0)](https://codecov.io/github/MPI-Dortmund/tomotwin-cryoet)



  Particle picking in Tomograms using triplet networks and metric learning

  ![TomoTwin Logo](resources/images/TomoTwin_black_transparent_cropped.png#gh-light-mode-only)
  ![TomoTwin Logo](resources/images/TomoTwin_white_transparent_cropped.png#gh-dark-mode-only)



  For installation instructions and tutorials please see our [documentation](https://tomotwin-cryoet.readthedocs.io/)


pkgId: 1e5a0e5a2ef7649bd032f66b807a1e8f36273e2914cd2eeb148755417646c292
name: python-tomtoolkit-help
arch: noarch
version: 2.22.1
epoch: 0
release: 1
summary: Development documents and examples for tomtoolkit
url: https://lco.global/tomtoolkit/
rpm_license: GPL-3.0-only
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tomtoolkit-2.22.1-1.src.rpm
location_href: Packages/python-tomtoolkit-help-2.22.1-1.noarch.rpm
checksum_type: sha256
description:
  [![pypi](https://img.shields.io/pypi/v/tomtoolkit.svg)](https://pypi.python.org/pypi/tomtoolkit)
  [![run-tests](https://github.com/TOMToolkit/tom_base/actions/workflows/run-tests.yml/badge.svg)](https://github.com/TOMToolkit/tom_base/actions/workflows/run-tests.yml)
  [![Codacy Badge](https://app.codacy.com/project/badge/Grade/a09d330b4dca4a4a86e68755268b7da3)](https://www.codacy.com/gh/TOMToolkit/tom_base/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=TOMToolkit/tom_base&amp;utm_campaign=Badge_Grade)
  [![Coverage Status](https://coveralls.io/repos/github/TOMToolkit/tom_base/badge.svg?branch=main)](https://coveralls.io/github/TOMToolkit/tom_base?branch=main)
  [![Documentation Status](https://readthedocs.org/projects/tom-toolkit/badge/?version=stable)](https://tom-toolkit.readthedocs.io/en/stable/?badge=stable)
  [![ASCL](https://img.shields.io/badge/ascl-2208.004-blue.svg?colorB=262255)](https://ascl.net/2208.004)

  [Documentation](https://tom-toolkit.readthedocs.io/en/latest/)
  ![logo](tom_common/static/tom_common/img/logo-color.png)

  The TOM Toolkit is a web framework for building TOMs: Target and Observation
  Managers. TOMs are meant to facilitate collaborative astronomical observing
  projects. A typical TOM allows its users to curate target lists, request
  observations of those targets at various observatories as well as manage and
  organize their data. [Read more](https://tom-toolkit.readthedocs.io/en/stable/introduction/about.html) about TOMs.


  The [getting started guide](https://tom-toolkit.readthedocs.io/en/latest/introduction/getting_started.html)
  will guide you through the process of setting up a TOM for the first time.


  Please use the [issue tracker](https://github.com/TOMToolkit/tom_base/issues) to
  report any issues or support questions.


  The lead developers of the TOM Toolkit are [William Lindstrom](https://lco.global/people/)
  and [Joey Chatelain](https://sites.google.com/site/josephchatelain),
  professional software developers with the Las Cumbres Observatory software team,
  together with [Jon Nation](https://lco.global/people/), [Curtis McCully](https://lco.global/people/),
  [Matt Daily](https://lco.global/people/) and [Mark Bowman](https://lco.global/people/).  [Rachel Street](https://lco.global/user/rstreet/) is the project's Principle Investigator.
  The TOM Toolkit is grateful for the advice and collaboration with [Andy Howell](http://www.dahowell.com/),
  [Edward Gomez](https://www.zemogle.net/), Craig Pellegrino, Jamie Burke and the rest of the LCO Science team.
  The [original Toolkit](https://zenodo.org/records/4437764) was developed by
  Austin Riba, David Collom and William Lindstrom.

  Our team very much welcome input from the community, and we are grateful to
  the following people for their many contributions:
   - Dan Avner, NOIRLab
   - Doug Arnold, Liverpool Telescope
   - Etienne Bachelet, IPAC/Caltech
   - Ezequiel Contreras Martinez, UCSB
   - Griffin Hosseinzadeh, University of Arizona
   - Bryan Miller, Gemini Observatory
   - Brendan Mills, UCSB
   - Julien Peloton, Fink



  We hope you find our software useful for your research.  If so, we would be grateful
  if you can include a brief acknowledgement in your papers and presentations, for example
  "This research made use of [The TOM Toolkit](https://tom-toolkit.readthedocs.io/)".
  We would also very much appreciate you including a citation to our paper describing
  the Toolkit [Street, R.A. et al., 2018, SPIE, 10707, 11](http://adsabs.harvard.edu/abs/2018SPIE10707E..11S)
  (to export the BibTeX please click [here](https://ui.adsabs.harvard.edu/abs/2018SPIE10707E..11S/exportcitation)).



  If you'd like to contribute to the TOM Toolkit, first of all, thanks! Secondly, we
  have a [contribution guide](https://tom-toolkit.readthedocs.io/en/stable/introduction/contributing.html) that
  you might find helpful. We are particularly interested in the contribution of
  observation and alert modules.


  We encourage developers to maintian a lively and civil discourse either on github or in our slack workspace.
  Please review our [code of conduct](CODE_OF_CONDUCT.md) for information about what is considered unacceptable behavior and how to report it.


  For development information targeted at the maintainers of the project, please see [README-dev.md](README-dev.md).





  The [tom_alerts_dash](https://github.com/TOMToolkit/tom_alerts_dash) plugin adds responsive ReactJS views to the
  `tom_alerts` module for supported brokers.



  The [tom-antares](https://github.com/TOMToolkit/tom_antares) plugin adds support
  for querying the Antares broker for targets of interest.



  The [tom_nonsidereal_airmass](https://github.com/TOMToolkit/tom_nonsidereal_airmass) plugin provides a templatetag
  that supports plotting for non-sidereal objects. The plugin is fully supported by the TOM Toolkit team; however,
  non-sidereal visibility calculations require the PyEphem library, which is minimally supported while its successor
  is in development. The library used for the TOM Toolkit sidereal visibility, astroplan, does not yet support
  non-sidereal visibility calculations.



  This module provides the ability to submit observations to the Liverpool Telescope Phase 2 system. It is in a very alpha
  state, with little error handling and minimal instrument options, but can successfully submit well-formed observation
  requests.

  [Github](https://github.com/TOMToolkit/tom_lt)



  The [tom_registration](https://github.com/TOMToolkit/tom_registration) plugin introduces support for two TOM registration
  flows--an open registration, and a registration that requires administrator approval.



  The TOM Toolkit is managed by Las Cumbres Observatory, with generous
  financial support from the [National Science Foundation](https://www.nsf.gov/) grant 2209852.
  We are also grateful for support from the [Heising-Simons Foundation](https://hsfoundation.org)
  and the [Zegar Family Foundation](https://sites.google.com/zegarff.org/site) at the start
  of the project.


pkgId: a89f940d7aeb3578faf5700417c6a582250bfe3f956d4185519ca78a0bd31c4c
name: python-tomwer-help
arch: noarch
version: 1.4.3
epoch: 0
release: 1
summary: Development documents and examples for tomwer
url: https://gitlab.esrf.fr/tomotools/tomwer
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tomwer-1.4.3-1.src.rpm
location_href: Packages/python-tomwer-help-1.4.3-1.noarch.rpm
checksum_type: sha256
description:
  **Tomwer** provides tools to automate acquisition and reconstruction processes for tomography. The package includes:
  - A library to individually access each acquisition process.
  - Graphical User Interface (GUI) applications to control key processes such as reconstruction and data transfer, which can be executed as standalone applications.
  - An Orange add-on to help users define custom workflows (`Orange3 <http://orange.biolab.si>`_).
  Tomwer relies on `Nabu <https://gitlab.esrf.fr/tomotools/nabu>`_ for tomographic reconstruction.
  **Note**: Currently, the software is only compatible with Linux.


pkgId: aa0e60bb7d9841ca5315ae7ab628d77489a77982b89af1ccd5c220266c3b78a3
name: python-tonic-help
arch: noarch
version: 1.5.0
epoch: 0
release: 1
summary: Development documents and examples for tonic
url: https://pypi.org/project/tonic/
rpm_license: GNU GPLv3
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tonic-1.5.0-1.src.rpm
location_href: Packages/python-tonic-help-1.5.0-1.noarch.rpm
checksum_type: sha256
description:
  ![tonic](tonic-logo-padded.png)
  [![PyPI](https://img.shields.io/pypi/v/tonic)](https://pypi.org/project/tonic/)
  [![codecov](https://codecov.io/gh/neuromorphs/tonic/branch/develop/graph/badge.svg?token=Q0BMYGUSZQ)](https://codecov.io/gh/neuromorphs/tonic)
  [![Documentation Status](https://readthedocs.org/projects/tonic/badge/?version=latest)](https://tonic.readthedocs.io/en/latest/?badge=latest)
  [![contributors](https://img.shields.io/github/contributors-anon/neuromorphs/tonic)](https://github.com/neuromorphs/tonic/pulse)
  [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/neuromorphs/tonic/main?labpath=docs%2Ftutorials)
  [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5079802.svg)](https://doi.org/10.5281/zenodo.5079802)
  [![Discord](https://img.shields.io/discord/1044548629622439977)](https://discord.gg/qubbM4uPuA)

  **Tonic** is a tool to facilitate the download, manipulation and loading of event-based/spike-based data. It's like PyTorch Vision but for neuromorphic data!


  You can find the full documentation on Tonic [on this site](https://tonic.readthedocs.io/en/latest/index.html).

  * [A first example](https://tonic.readthedocs.io/en/latest/getting_started/nmnist.html) to get a feeling for how Tonic works.
  * [Run tutorials in your browser](https://mybinder.org/v2/gh/neuromorphs/tonic/main?labpath=docs%2Ftutorials) quick and easy.
  * [List of datasets](https://tonic.readthedocs.io/en/main/datasets.html).
  * [List of transformations](https://tonic.readthedocs.io/en/main/auto_examples/index.html).
  * [About](https://tonic.readthedocs.io/en/latest/about/info.html) this project.
  * [Release notes](https://tonic.readthedocs.io/en/latest/about/release_notes.html) on version changes.


  ```bash
  pip install tonic
  ```
  or (thanks to [@Tobias-Fischer](https://github.com/Tobias-Fischer))
  ```
  conda install -c conda-forge tonic
  ```
  For the latest pre-release on the develop branch that passed the tests:
  ```
  pip install tonic --pre
  ```
  This package has been tested on:

  | Linux    | [![](http://github-actions.40ants.com/neuromorphs/tonic/matrix.svg?only=ci.multitest.ubuntu-latest)](https://github.com/neuromorphs/tonic)|
  |----------|-------------------------------------------------------------------------------------------------------------------------------------------|
  | **Windows**  | [![](http://github-actions.40ants.com/neuromorphs/tonic/matrix.svg?only=ci.multitest.windows-2022)](https://github.com/neuromorphs/tonic) |


  If you're looking for a minimal example to run, this is it!

  ```python
  import tonic
  import tonic.transforms as transforms

  sensor_size = tonic.datasets.NMNIST.sensor_size
  transform = transforms.Compose(
      [
          transforms.Denoise(filter_time=10000),
          transforms.ToFrame(sensor_size=sensor_size, time_window=3000),
      ]
  )

  testset = tonic.datasets.NMNIST(save_to="./data", train=False, transform=transform)

  from torch.utils.data import DataLoader

  testloader = DataLoader(
      testset,
      batch_size=10,
      collate_fn=tonic.collation.PadTensors(batch_first=True),
  )

  frames, targets = next(iter(testloader))
  ```


  Have a question about how something works? Ideas for improvement? Feature request? Please get in touch on the #tonic [Discord channel](https://discord.gg/V6FHBZURkg)
   or alternatively here on GitHub via the [Discussions](https://github.com/neuromorphs/tonic/discussions) page!


  Please check out the [contributions](https://tonic.readthedocs.io/en/latest/about/contribute.html) page for details.


  The development of this library is supported by

  <tr><td><a href="https://synsense.ai"><img src="https://www.synsense.ai/wp-content/uploads/2022/03/logo-synsense-blue.svg" alt="SynSense" width="200px"/></a></td><td>



  If you find this package helpful, please consider citing it:

  ```BibTex
  @software{lenz_gregor_2021_5079802,
    author       = {Lenz, Gregor and
                    Chaney, Kenneth and
                    Shrestha, Sumit Bam and
                    Oubari, Omar and
                    Picaud, Serge and
                    Zarrella, Guido},
    title        = {Tonic: event-based datasets and transformations.},
    month        = jul,
    year         = 2021,
    note         = {{Documentation available under
                     https://tonic.readthedocs.io}},
    publisher    = {Zenodo},
    version      = {0.4.0},
    doi          = {10.5281/zenodo.5079802},
    url          = {https://doi.org/10.5281/zenodo.5079802}
  }
  ```


pkgId: 11dd497fc9d00fd82171f0b4bda22add2d27419c15d39a622e5d4f9293136ff8
name: python-tonie-api-help
arch: noarch
version: 0.1.2
epoch: 0
release: 1
summary: Development documents and examples for tonie-api
url: https://github.com/Wilhelmsson177/tonie-api
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tonie-api-0.1.2-1.src.rpm
location_href: Packages/python-tonie-api-help-0.1.2-1.noarch.rpm
checksum_type: sha256
description:
  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->

  [![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-)

  <!-- ALL-CONTRIBUTORS-BADGE:END -->

  <p align="center">
    <a href="https://github.com/Wilhelmsson177/tonie-api/actions/workflows/ci.yml?query=branch%3Amain">
      <img src="https://img.shields.io/github/actions/workflow/status/Wilhelmsson177/tonie-api/ci.yml?branch=main&label=CI&logo=github&style=flat-square" alt="CI Status" >
    </a>
    <a href="https://tonie-api.readthedocs.io">
      <img src="https://img.shields.io/readthedocs/tonie-api.svg?logo=read-the-docs&logoColor=fff&style=flat-square" alt="Documentation Status">
    </a>
    <a href="https://codecov.io/gh/Wilhelmsson177/tonie-api" >
    <img src="https://codecov.io/gh/Wilhelmsson177/tonie-api/graph/badge.svg?token=5RQI9FTXXO"/>
    </a>
  </p>
  <p align="center">
    <a href="https://python-poetry.org/">
      <img src="https://img.shields.io/badge/packaging-poetry-299bd7?style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAASCAYAAABrXO8xAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJJSURBVHgBfZLPa1NBEMe/s7tNXoxW1KJQKaUHkXhQvHgW6UHQQ09CBS/6V3hKc/AP8CqCrUcpmop3Cx48eDB4yEECjVQrlZb80CRN8t6OM/teagVxYZi38+Yz853dJbzoMV3MM8cJUcLMSUKIE8AzQ2PieZzFxEJOHMOgMQQ+dUgSAckNXhapU/NMhDSWLs1B24A8sO1xrN4NECkcAC9ASkiIJc6k5TRiUDPhnyMMdhKc+Zx19l6SgyeW76BEONY9exVQMzKExGKwwPsCzza7KGSSWRWEQhyEaDXp6ZHEr416ygbiKYOd7TEWvvcQIeusHYMJGhTwF9y7sGnSwaWyFAiyoxzqW0PM/RjghPxF2pWReAowTEXnDh0xgcLs8l2YQmOrj3N7ByiqEoH0cARs4u78WgAVkoEDIDoOi3AkcLOHU60RIg5wC4ZuTC7FaHKQm8Hq1fQuSOBvX/sodmNJSB5geaF5CPIkUeecdMxieoRO5jz9bheL6/tXjrwCyX/UYBUcjCaWHljx1xiX6z9xEjkYAzbGVnB8pvLmyXm9ep+W8CmsSHQQY77Zx1zboxAV0w7ybMhQmfqdmmw3nEp1I0Z+FGO6M8LZdoyZnuzzBdjISicKRnpxzI9fPb+0oYXsNdyi+d3h9bm9MWYHFtPeIZfLwzmFDKy1ai3p+PDls1Llz4yyFpferxjnyjJDSEy9CaCx5m2cJPerq6Xm34eTrZt3PqxYO1XOwDYZrFlH1fWnpU38Y9HRze3lj0vOujZcXKuuXm3jP+s3KbZVra7y2EAAAAAASUVORK5CYII=" alt="Poetry">
    </a>
    <a href="https://github.com/ambv/black">
      <img src="https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square" alt="black">
    </a>
    <a href="https://github.com/pre-commit/pre-commit">
      <img src="https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=flat-square" alt="pre-commit">
    </a>
  </p>
  <p align="center">
    <a href="https://pypi.org/project/tonie-api/">
      <img src="https://img.shields.io/pypi/v/tonie-api.svg?logo=python&logoColor=fff&style=flat-square" alt="PyPI Version">
    </a>
    <img src="https://img.shields.io/pypi/pyversions/tonie-api.svg?style=flat-square&logo=python&amp;logoColor=fff" alt="Supported Python versions">
    <img src="https://img.shields.io/pypi/l/tonie-api.svg?style=flat-square" alt="License">
  </p>

  Python library to access the REST API of the toniecloud. NOT associated with Boxine (tonies.de) in any way.



  Install this via pip (or your favourite package manager):

  `pip install tonie-api`



  Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

  <!-- 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="https://github.com/moritzj29"><img src="https://avatars.githubusercontent.com/u/18733473?v=4?s=100" width="100px;" alt="moritzj29"/><br /><sub><b>moritzj29</b></sub></a><br /><a href="https://github.com/Wilhelmsson177/tonie-api/commits?author=moritzj29" title="Code">💻</a> <a href="#ideas-moritzj29" title="Ideas, Planning, & Feedback">🤔</a></td>
        <td align="center" valign="top" width="14.28%"><a href="https://github.com/Wilhelmsson177"><img src="https://avatars.githubusercontent.com/u/16141053?v=4?s=100" width="100px;" alt="Wilhelmsson177"/><br /><sub><b>Wilhelmsson177</b></sub></a><br /><a href="https://github.com/Wilhelmsson177/tonie-api/commits?author=Wilhelmsson177" title="Tests">⚠️</a> <a href="#projectManagement-Wilhelmsson177" title="Project Management">📆</a> <a href="#maintenance-Wilhelmsson177" title="Maintenance">🚧</a> <a href="https://github.com/Wilhelmsson177/tonie-api/commits?author=Wilhelmsson177" title="Code">💻</a></td>
      </tr>
    </tbody>
  </table>

  <!-- markdownlint-restore -->
  <!-- prettier-ignore-end -->

  <!-- ALL-CONTRIBUTORS-LIST:END -->

  <!-- prettier-ignore-start -->
  <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
  <!-- markdownlint-disable -->
  <!-- markdownlint-enable -->
  <!-- ALL-CONTRIBUTORS-LIST:END -->
  <!-- prettier-ignore-end -->

  This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!



  This package was created with
  [Copier](https://copier.readthedocs.io/) and the
  [browniebroke/pypackage-template](https://github.com/browniebroke/pypackage-template)
  project template.


pkgId: 9da0d95b5d819f773f1b59f54d13c9f26bc6025f243f323267c0ba463de1b6e0
name: python-tonkinese-grid-help
arch: noarch
version: 2024.0.0a5
epoch: 0
release: 1
summary: Development documents and examples for tonkinese-grid
url: https://pypi.org/project/tonkinese-grid/
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-tonkinese-grid-2024.0.0a5-1.src.rpm
location_href: Packages/python-tonkinese-grid-help-2024.0.0a5-1.noarch.rpm
checksum_type: sha256
description:
  This is a python library that can read and write a **subset** of [TextGrid file format](https://www.fon.hum.uva.nl/praat/manual/TextGrid_file_formats.html), with full type hint, and some extra methods to manipulate intervals.

  **Notice that this library does not support read file that contains TextTier class. Also this a side project has no full test of the codebase, therefore it is not production ready. Please use it at your own risk**



  - 2024-10-19 short format and utf-16 encoding is supported in both reading and saving

  - 2024-11-05
      - add better error messages while reading TextGrid files
      - add two methods in `IntervalTier`, `extend()` and `extend_from()`
      - add `format` parameter in `TextGrid.read()` to specify whether it is `full` or `short` format.

  - 2024-12-19
      - "rename" `__repr__()` to `to_short_str()` in class `TextGrid`



  Get started with installing the package (>=python3.9).

  ```bash
  pip install tonkinese_grid
  ```

  Then you can use it like the following.

  ```python
  from tonkinese_grid import TextGrid

  textgrid = TextGrid.read("file.TextGrid")
  for items in textgrid:
      for interval in items:
          print(interval)

  new = TextGrid(0, 2.5)
  new.append_new(0, 2.5, "words")
  new[0].append_new(0, 1, "hello")
  new[0].append_new(1, 2.5, "world")
  new.save("HelloWorld.TextGrid")
  ```



  This section list basic information about the classes and their methods. For more details, please read the source code

  ```python
  class Interval:
      min: float
      max: float
      text: str
      @staticmethod
      def is_continuous(prev: "Interval", curr: "Interval") -> bool:

  class IntervalList:
      """a wrapper of list of intervals, which makes sure intervals inside of it
      is continuous and provide some other useful methods."""
      def __getitem__(self, idx: int) -> Interval: ...
      def __iter__(self) -> Iterator[Interval]: ...
      def __len__(self) -> int: ...
      def size(self) -> int: ...
      def slice(
          self,
          start: Optional[int] = None,
          stop: Optional[int] = None,
          step: Optional[int] = None,
      ) -> IntervalList: ...
      def clear(self) -> None: ...
      def copy(self) -> IntervalList: ...
      def append(self, interval: Interval) -> None: ...
      def append_new(self, min: float, max: float, text: str) -> None: ...
      def extend(self, intervals: IntervalList) -> None: ...
      def extend_from(self, intervals: list[Interval]) -> None: ...
      def replace(self, idx: int, text: str) -> None: ...
      def move_offset(self, idx: int, offset: float) -> None: ...
      def move_offset_by_dur(self, idx: int, dur: float) -> None: ...
      def split_insert(self, idx: int, text: str, dur: float) -> None: ...
      def split_append(self, idx: int, text: str, dur: float) -> None: ...
      def merge(self, start: int, end: int, text: str) -> None: ...

  class IntervalTier:
      """Has the same methods with IntervalList"""
      min: float
      max: float
      name: str
      intervals: IntervalList

  class TextGrid:
      min: float
      max: float
      items: list[IntervalTier]
      def __iter__(self) -> Iterator[IntervalTier]: ...
      def __str__(self) -> str: ...
      def to_short_str(self) -> str: ...
      def __getitem__(self, idx: int) -> IntervalTier: ...
      def __setitem__(self, idx: int, tier: IntervalTier) -> None: ...
      @classmethod
      def read(cls, file: str, format: str="full", encoding: str="utf-8") -> "TextGrid": ...
      def size(self) -> int: ...
      def copy(self) -> "TextGrid": ...
      def save(self, path: str, format: str="full", encoding: str="utf-8") -> None: ...
      def append_new(self, min: float, max: float, name: str) -> None: ...
      def append(self, intervals: IntervalTier) -> None: ...
  ```



  [textgrid](https://github.com/kylebgorman/textgrid)

rpm_license:
  Copyright (c) <2024> <RibosomeK>  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: 23642598ec8754689901b4954e7d9fdaba78db523a51e120d034cdcfd1b739bb
name: python-toolbox-pyspark-help
arch: noarch
version: 0.3.1
epoch: 0
release: 1
summary: Development documents and examples for toolbox-pyspark
url: https://data-science-extensions.com/python-toolbox
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-toolbox-pyspark-0.3.1-1.src.rpm
location_href: Packages/python-toolbox-pyspark-help-0.3.1-1.noarch.rpm
checksum_type: sha256
description:
  <h1 align="center"><u><code>toolbox-pyspark</code></u></h1>

  <p align="center">
  <a href="https://github.com/data-science-extensions/toolbox-pyspark/releases">
      <img src="https://img.shields.io/github/v/release/data-science-extensions/toolbox-pyspark?logo=github" alt="github-release"></a>
  <a href="https://pypi.org/project/toolbox-pyspark">
      <img src="https://img.shields.io/pypi/implementation/toolbox-pyspark?logo=pypi&logoColor=ffde57" alt="implementation"></a>
  <a href="https://pypi.org/project/toolbox-pyspark">
      <img src="https://img.shields.io/pypi/v/toolbox-pyspark?label=version&logo=pyspark&logoColor=ffde57&color=blue" alt="version"></a>
  <a href="https://pypi.org/project/toolbox-pyspark">
      <img src="https://img.shields.io/pypi/pyversions/toolbox-pyspark?logo=python&logoColor=ffde57" alt="python-versions"></a>
  <br>
  <a href="https://github.com/data-science-extensions/toolbox-pyspark/actions/workflows/ci.yml">
      <img src="https://img.shields.io/static/v1?label=os&message=ubuntu+|+macos+|+windows&color=blue&logo=ubuntu&logoColor=green" alt="os"></a>
  <a href="https://pypi.org/project/toolbox-pyspark">
      <img src="https://img.shields.io/pypi/status/toolbox-pyspark?color=green" alt="pypi-status"></a>
  <a href="https://pypi.org/project/toolbox-pyspark">
      <img src="https://img.shields.io/pypi/format/toolbox-pyspark?color=green" alt="pypi-format"></a>
  <a href="https://github.com/data-science-extensions/toolbox-pyspark/blob/main/LICENSE">
      <img src="https://img.shields.io/github/license/data-science-extensions/toolbox-pyspark?color=green" alt="github-license"></a>
  <a href="https://piptrends.com/package/toolbox-pyspark">
      <img src="https://img.shields.io/pypi/dm/toolbox-pyspark?color=green" alt="pypi-downloads"></a>
  <a href="https://codecov.io/gh/data-science-extensions/toolbox-pyspark">
      <img src="https://codecov.io/gh/data-science-extensions/toolbox-pyspark/graph/badge.svg" alt="codecov-repo"></a>
  <a href="https://github.com/psf/black">
      <img src="https://img.shields.io/static/v1?label=style&message=black&color=black&logo=windows-terminal&logoColor=white" alt="style"></a>
  <br>
  <a href="https://github.com/data-science-extensions/toolbox-pyspark">
      <img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="contributions"></a>
  <br>
  <a href="https://github.com/data-science-extensions/toolbox-pyspark/actions/workflows/ci.yml">
      <img src="https://github.com/data-science-extensions/toolbox-pyspark/actions/workflows/ci.yml/badge.svg?event=pull_request" alt="CI"></a>
  <a href="https://github.com/data-science-extensions/toolbox-pyspark/actions/workflows/cd.yml">
      <img src="https://github.com/data-science-extensions/toolbox-pyspark/actions/workflows/cd.yml/badge.svg?event=release" alt="CD"></a>
  </p>



  The purpose of this package is to provide some helper files/functions/classes for generic PySpark processes.




  For reference, these URL's are used:

  | Type | Source | URL |
  |---|---|---|
  | Git Repo | GitHub | https://github.com/data-science-extensions/toolbox-pyspark |
  | Python Package | PyPI | https://pypi.org/project/toolbox-pyspark |
  | Package Docs | Pages | https://data-science-extensions.com/toolbox-pyspark/ |




  You can install and use this package multiple ways by using [`pip`][pip], [`pipenv`][pipenv], or [`poetry`][poetry].




  1. In your terminal, run:

      ```sh
      python3 -m pip install --upgrade pip
      python3 -m pip install toolbox-pyspark
      ```

  2. Or, in your `requirements.txt` file, add:

      ```txt
      toolbox-pyspark
      ```

      Then run:

      ```sh
      python3 -m pip install --upgrade pip
      python3 -m pip install --requirement=requirements.txt
      ```




  1. Install using environment variables:

      In your `Pipfile` file, add:

      ```toml
      [[source]]
      url = "https://pypi.org/simple"
      verify_ssl = false
      name = "pypi"

      [packages]
      toolbox-pyspark = "*"
      ```

      Then run:

      ```sh
      python3 -m pip install pipenv
      python3 -m pipenv install --verbose --skip-lock --categories=root index=pypi toolbox-pyspark
      ```

  2. Or, in your `requirements.txt` file, add:

      ```sh
      toolbox-pyspark
      ```

      Then run:

      ```sh
      python3 -m run pipenv install --verbose --skip-lock --requirements=requirements.txt
      ```

  3. Or just run this:

      ```sh
      python3 -m pipenv install --verbose --skip-lock toolbox-pyspark
      ```




  1. In your `pyproject.toml` file, add:

      ```toml
      [tool.poetry.dependencies]
      toolbox-pyspark = "*"
      ```

      Then run:

      ```sh
      poetry install
      ```

  2. Or just run this:

      ```sh
      poetry add toolbox-pyspark
      poetry install
      poetry sync
      ```




  Contribution is always welcome.

  1. First, either [fork][github-fork] or [branch][github-branch] the [main repo][github-repo].

  2. [Clone][github-clone] your forked/branched repo.

  3. Build your environment:

      1. With [`pipenv`][pipenv] on Windows:

          ```pwsh
          if (-not (Test-Path .venv)) {mkdir .venv}
          python -m pipenv install --requirements requirements.txt --requirements requirements-dev.txt --skip-lock
          python -m poetry run pre-commit install
          python -m poetry shell
          ```

      2. With [`pipenv`][pipenv] on Linux:

          ```sh
          mkdir .venv
          python3 -m pipenv install --requirements requirements.txt --requirements requirements-dev.txt --skip-lock
          python3 -m poetry run pre-commit install
          python3 -m poetry shell
          ```

      3. With [`poetry`][poetry] on Windows:

          ```pwsh
          python -m pip install --upgrade pip
          python -m pip install poetry
          python -m poetry init
          python -m poetry add $(cat requirements/root.txt)
          python -m poetry add --group=dev $(cat requirements/dev.txt)
          python -m poetry add --group=test $(cat requirements/test.txt)
          python -m poetry add --group=docs $(cat requirements/docs.txt)
          python -m poetry install
          python -m poetry run pre-commit install
          python -m poetry shell
          ```

      4. With [`poetry`][poetry] on Linux:

          ```sh
          python3 -m pip install --upgrade pip
          python3 -m pip install poetry
          python3 -m poetry init
          python3 -m poetry add $(cat requirements/root.txt)
          python3 -m poetry add --group=dev $(cat requirements/dev.txt)
          python3 -m poetry add --group=test $(cat requirements/test.txt)
          python3 -m poetry add --group=docs $(cat requirements/docs.txt)
          python3 -m poetry install
          python3 -m poetry run pre-commit install
          python3 -m poetry shell
          ```

  4. Start contributing.

  5. When you're happy with the changes, raise a [Pull Request][github-pr] to merge with the [main][github-repo] branch again.




  To ensure that the package is working as expected, please ensure that:

  1. You write your code as per [PEP8][pep8] requirements.
  2. You write a [UnitTest][unittest] for each function/feature you include.
  3. The [CodeCoverage][codecov] is 100%.
  4. All [UnitTests][pytest] are passing.
  5. [MyPy][mypy] is passing 100%.




  - Run them all together

      ```sh
      poetry run make check
      ```

  - Or run them individually:

      - [Black][black]
          ```pysh
          poetry run make check-black
          ```

      - [PyTests][pytest]:
          ```sh
          poetry run make ckeck-pytest
          ```

      - [MyPy][mypy]:
          ```sh
          poetry run make check-mypy
          ```


  [github-repo]: https://github.com/data-science-extensions/toolbox-pyspark
  [github-release]: https://github.com/data-science-extensions/toolbox-pyspark/releases
  [github-ci]: https://github.com/data-science-extensions/toolbox-pyspark/actions/workflows/ci.yml
  [github-cd]: https://github.com/data-science-extensions/toolbox-pyspark/actions/workflows/cd.yml
  [github-license]: https://github.com/data-science-extensions/toolbox-pyspark/blob/main/LICENSE
  [codecov-repo]: https://codecov.io/gh/data-science-extensions/toolbox-pyspark
  [pypi]: https://pypi.org/project/toolbox-pyspark
  [docs]: ...
  [pip]: https://pypi.org/project/pip
  [pipenv]: https://github.com/pypa/pipenv
  [poetry]: https://python-poetry.org
  [github-fork]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo
  [github-branch]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches
  [github-clone]: https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository
  [github-pr]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests
  [pep8]: https://peps.python.org/pep-0008/
  [unittest]: https://docs.python.org/3/library/unittest.html
  [codecov]: https://codecov.io/
  [pytest]: https://docs.pytest.org
  [mypy]: http://www.mypy-lang.org/
  [black]: https://black.readthedocs.io/


pkgId: e2d419814237c5d935989e34e30ebf057fe678aabb26e8d216c55a05d160922b
name: python-toolforge-weld-help
arch: noarch
version: 1.6.5
epoch: 0
release: 1
summary: Development documents and examples for toolforge-weld
url: https://pypi.org/project/toolforge-weld/
rpm_license: AGPL-3.0-or-later
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-toolforge-weld-1.6.5-1.src.rpm
location_href: Packages/python-toolforge-weld-help-1.6.5-1.noarch.rpm
checksum_type: sha256
description:
  Shared Python code for Toolforge infrastructure components.





  Clone the repo (instructions here https://gitlab.wikimedia.org/repos/cloud/toolforge/toolforge-weld).

  Install tox (this is the only debian-specific part):
  ```
  ~:$ apt install tox
  ```

  Move to the directory where you cloned the repo, and run tox:
  ```
  /path/to/repo/toolforge-weld:$ tox
  ```

  That will run the tests and create a virtualenv that you can use to manually debug anything you need, to enter it:
  ```
  /path/to/repo/toolforge-weld:$ source .tox/py3-tests/bin/activate
  ```



  The process will be:
  * Create new branch
  * Bump the version
  * Build and deploy the package
  * Upload the package to the toolforge repositories
  * Merge PR and Create a release



  Let's get started!


  To get started, create a new branch from main:
  ```
  ~:$ git checkout -b <new-branch-name>
  ```



  1. To do so, you can run the script:
      ```
      ~:$ utils/bump_version.sh
      ```

      That will:

      * create an entry in `debian/changelog` from the git log since the last tag
      * bump the version in `setup.py` too
      * create the required commit and tag.

  2. Once this is done, you should push the new commit and tag for review:
      ```
      git push -u origin <new-branch-name>
      git push origin <new_version>
      ```
      You can find out the value of the newly created tag by looking at your terminal output or running `git tags --list`



  On gitlab you should create a patch based on the above PR, then Review the `changelog` and the `setup.py` changes to make sure it's what you want (it uses your name, email, etc.), and ask
  for reviews.




  > **NOTE**: Currently the PR created above needs to be open before you can use this cookbook. If you choose to use the more complicated alternatives below, keeping the PR open is not mandatory.

  1. Building and deploying the package has been greatly simplified using the cookbook. To do this simply run:
      ```
      ~:$ cookbook wmcs.toolforge.component.deploy --cluster-name toolsbeta --component toolforge-weld --git-branch bump_version
      ```
      The above builds the package, uploads it to the toolsbeta package repository, and installs it on all the toolsbeta bastions. To do the same for tools use `--cluster-name tools`.

      See https://wikitech.wikimedia.org/wiki/Spicerack/Cookbooks for details on cookbooks.


  > **NOTE**: This will not allow you to sign your package, so if you need that try using the manual process.

  1. You can build the package with:
      ```
      path/to/repo/toolforge-weld:$ utils/build_deb.sh
      ```
      The first time it might take a bit more time as it will build the core image to build packages, downloading many
      dependencies. The next run it will not need to download all those dependencies, so it will be way faster.

      > **NOTE**: If it failed when installing packages, try passing `--no-cache` to force rebuilding the cached layers.

  2. After building, you'll need to upload the built package to toolforge package repository. See [`Uploading to the toolforge repository`](#uploading-to-the-toolforge-repository) for more details.

  3. Once you are done uploading, you also need to login to the various bastions on both tools and toolsbeta to manually install the package there.
      For example to install on toolsbeta bastion 6:
      ```
      ~:$ ssh toolsbeta-bastion-6.toolsbeta.eqiad1.wikimedia.cloud
      ~:$ sudo apt-get update && sudo apt-get install python3-toolforge-weld
      ```
      It is important to check how many bastions we have for both tools and toolsbeta and do this for all. You can ask the toolforge team if you don't have this information.





  1. Another alternative is using the wmcs-package-build.py script that you can find in
  the operations/puppet repo at modules/toolforge/files

      ```
      $ ./wmcs-package-build.py --git-repo https://gitlab.wikimedia.org/repos/cloud/toolforge/toolforge-weld -a buster-toolsbeta -a bullseye-toolsbeta --git-branch main --build-dist=bullseye --backports --toolforge-repo=tools
      ```

      The script will SSH into a build server, build the package there, and publish it
      to two repos: `buster-toolsbeta` and `bullseye-tooslbeta`.

      The additional params `--backports, --toolforge-repo=tools
      --build-dist=bullseye` are necessary because the build requires Poetry and other
      build tools not available in the buster repos.

  2. If that command is successful, you should then copy the package from the
  "toolsbeta" to the "tools" distribution. See [`Uploading to the toolforge repository`](#uploading-to-the-toolforge-repository) for more details.

  3. Once you are done uploading, you also need to login to the various bastions on both tools and toolsbeta to manually install the package there.
      For example to install on toolsbeta bastion 6:
      ```
      ~:$ ssh toolsbeta-bastion-6.toolsbeta.eqiad1.wikimedia.cloud
      ~:$ sudo apt-get update && sudo apt-get install python3-toolforge-weld
      ```
      It is important to check how many bastions we have for both tools and toolsbeta and do this for all. You can ask the toolforge team if you don't have this information.

  Additional documentation on the wmcs-package-build script is available at
  https://wikitech.wikimedia.org/wiki/Portal:Toolforge/Admin/Packaging#wmcs-package-build




  If you built the package using any of the manual methods, you can uploade it following:
  https://wikitech.wikimedia.org/wiki/Portal:Toolforge/Admin/Packaging#Uploading_a_package


  Depending on the deployment method you chose, the PR might still be open. If that's the case remember to merge the PR and create a new Gitlab release.


pkgId: 951ec1273d0269df7de9e68c6544d854fa298edc0722aec24d8825510333118b
name: python-toolri-help
arch: noarch
version: 1.0.3
epoch: 0
release: 1
summary: Development documents and examples for toolri
url: https://github.com/Victorgonl/ToolRI
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
rpm_sourcerpm: python-toolri-1.0.3-1.src.rpm
location_href: Packages/python-toolri-help-1.0.3-1.noarch.rpm
checksum_type: sha256
description:
  ToolRI was created to simplify and standardize the creation of samples for the task of Information Extraction in document images. The tool allows text extraction by OCR, the creation of document entities and their labeling and linking. The project was created purely with Python and can be run on any desktop platform. The graphical user interface is implemented thanks to the amazing <a href="https://github.com/tomschimansky/customtkinter">CustomTkinter</a> library.





  Install the ToolRI package with `pip`:

      pip install toolri



  Clone the ToolRI repository with:

      git clone https://github.com/Victorgonl/ToolRI

  And install using `pip`:

      pip install ./ToolRI/





  You can download a portable binary of the tool to start using right away. Download and run a version on the <a href="https://github.com/Victorgonl/ToolRI/releases">releases</a> page of the ToolRI repository.



  To build the standalone version of ToolRI into a portable binary, clone the repository:

      git clone https://github.com/Victorgonl/ToolRI

  Change current directory to `./ToolRI`:

      cd ./ToolRI

  Install all the dependencies found on `requirements.txt`:

      pip install -r requirements.txt

  And run the script `toolri_build.py`:

      python3 toolri_build.py

  The binary will be available on `dist` folder.



  ***Under construction.*** :construction:



  To be able to use the OCR function in ToolRI, Tesseract OCR must be installed separately.

  ***For now, OCR is configured for English and Portuguese languages only, but it will be updated soon for all languages available.*** :construction:



  Use the command:

      sudo apt-get install tesseract-ocr tesseract-ocr-eng tesseract-ocr-por



  - Download and run the installer available at https://github.com/UB-Mannheim/tesseract/wiki.

  - Make sure to install Tesseract on `C:\Program Files\Tesseract-OCR\` (the default directory) due to a predefined configuration in current ToolRI version.



  ToolRI was developed and used to create the <a href="https://github.com/LabRI-Information-Retrieval-Lab/UFLA-FORMS">UFLA-FORMS</a> dataset. Download the dataset to try the tool on the available samples or create a new metadata for any document image available.



      import toolri

      image = toolri.load_image("document_image.jpg")

      labels = [
          toolri.ToolRILabel(name="QUESTION", color="#004B80", links=["ANSWER"], is_visible=True),
          toolri.ToolRILabel(name="ANSWER", color="#00943E", links=[], is_visible=True)
      ]

      data = toolri.toolri(image=image, data=data, labels=labels)

      toolri.draw_data_on_image(image=image, data=data, labels=labels).show()


