# packages

pkgId: a7b2f6a7eb976b09cc241cc45d9b876a53b443cadacdb03dd889730a1af11f77
name: python-brutalmaze
arch: src
version: 1.1.1
epoch: 0
release: 1
summary: Minimalist thrilling shoot 'em up game
url: https://sr.ht/~cnx/brutalmaze
rpm_license: AGPLv3+
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-brutalmaze-1.1.1-1.src.rpm
checksum_type: sha256
description:
  Brutal Maze is a thrilling shoot 'em up game with minimalist art style.

  ![Screenshot](https://brutalmaze.rtfd.io/_images/screenshot.png)

  The game features a trigon trapped in an infinite maze.  As our hero tries
  to escape, the maze's border turns into aggressive squares trying to stop per.
  Your job is to help the trigon fight against those evil squares and find
  a way out (if there is any).  Be aware that the more get killed,
  the more will show up and our hero will get weaker when wounded.

  Brutal Maze has a few notable features:

  * Being highly portable.
  * Auto-generated and infinite maze.
  * No binary data for drawing.
  * Enemies with special abilities: stun, poison, camo, etc.
  * Somewhat a realistic physic and logic system.
  * Resizable game window in-game.
  * Easily customizable via INI file format.
  * Recordable in JSON (some kind of silent screencast).
  * Remote control through TCP/IP socket (can be used in AI researching).



  Brutal Maze is written in Python and is compatible version 3.7 and above.
  The installation procedure should be as simple as follows:

  * Install Python and [pip].  Make sure the directory for [Python scripts]
    is in your `$PATH`.
  * Open Terminal or Command Prompt and run `pip install --user brutalmaze`.

  For more information, see [Installation] page in the documentation.

  After installation, you can launch the game by running the command
  `brutalmaze`.  Below are the default bindings, which can be configured as
  shown in the next section:

  * `F2`: new game
  * `p`: toggle pause
  * `m`: toggle mute
  * `a`: move left
  * `d`: move right
  * `w`: move up
  * `s`: move down
  * Left mouse: long-range attack
  * Right mouse: close-range attack, also dodge from bullets

  Additionally, Brutal Maze also supports touch-friendly control.  In this mode,
  touches on different grid (empty, wall, enemy, hero) send different signals
  (to guide the hero to either move or attack, or start new game).  Albeit it is
  implemented using *mouse button up* event, touch control is not a solution for
  mouse-only input, but an attempt to support mobile GNU/Linux distribution such
  as postmarketOS, i.e. it's meant to be played using two thumbs :-)



  Brutal Maze supports both configuration file and command-line options.
  Apparently, while settings for graphics, sound and socket server can be set
  either in the config file or using CLI, keyboard and mouse bindings are limited
  to configuration file only.

  Settings are read in the following order:

  0. Default configuration (this can be copied to desired location
     by `brutalmaze --write-config PATH`.  `brutalmaze --write-config` alone
     will print the file to stdout)
  1. System-wide and local configuration file (these will be listed
     as fallback config in `brutalmaze --help`; see the [Configuration]
     documentation for more info)
  2. Manually specified configuration file (via `brutalmaze --config PATH`)
  3. Command-line arguments

  Later-read preferences will override previous ones.



  If you enable the socket server, Brutal Maze will no longer accept
  direct input from your mouse or keyboard, but wait for a client to connect.
  This can be done by either editing option *Enable* in section *Server*
  in the configuration file or launching the game via `brutalmaze --server`.
  The I/O format is explained in details in the [Remote Control] page.



  Either game played by human or client script can be recorded to JSON format.
  This can be enabled by setting the output directory to a non-empty string:
  `brutalmaze --record-dir DIR`.  Navigate to [Configuration] for more options.
  Recordings can be played using Brutal Maze [HTML5 record player].



  Brutal Maze's source code and its icon are released under GNU Affero General
  Public License version 3 or later. This means if you run a modified program on
  a server and let other users communicate with it there, your server must also
  allow them to download the source code corresponding to the modified version
  running there.

  This project also uses Tango color palette and several sound effects, whose
  authors and licenses are listed in the [Copying] page in our documentation.

  [pip]: https://pip.pypa.io/en/latest/
  [Python scripts]: https://docs.python.org/3/install/index.html#alternate-installation-the-user-scheme
  [Installation]: https://brutalmaze.rtfd.io/install.html
  [Remote Control]: https://brutalmaze.rtfd.io/remote.html
  [HTML5 record player]: https://brutalmaze.rtfd.io/recplayer.html
  [Copying]: https://brutalmaze.rtfd.io/copying.html
  [Configuration]: https://brutalmaze.rtfd.io/config.html


pkgId: bf36423e59d9488ad189e2b396176c16221ccaecb88a3a147fd6ba9be3f58e3e
name: python-brutils
arch: src
version: 2.2.0
epoch: 0
release: 1
summary: Utils library for specific Brazilian businesses
url: https://github.com/brazilian-utils/brutils
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-brutils-2.2.0-1.src.rpm
checksum_type: sha256
description:
  <div align="center">
  <h1>🇧🇷 Brazilian Utils</h1>

  <p>Utils library for Brazilian-specific businesses.</p>

  [![codecov](https://codecov.io/gh/brazilian-utils/brutils-python/branch/main/graph/badge.svg?token=5KNECS8JYF)](https://codecov.io/gh/brazilian-utils/brutils-python)
  [![Downloads per Month](https://shields.io/pypi/dm/brutils)](https://pypistats.org/packages/brutils)
  [![Package version](https://shields.io/pypi/v/brutils)](https://pypi.org/project/brutils/)



  </div>



  Brazilian Utils é uma biblioteca com foco na resolução de problemas que enfrentamos diariamente no
  desenvolvimento de aplicações para o business Brasileiro.

  - [Instalação](#instalação)
  - [Utilização](#utilização)
  - [Utilitários](#utilitários)
  - [Novos Utilitários e Reportar Bugs](#novos-utilitários-e-reportar-bugs)
  - [Dúvidas? Ideias?](#dúvidas-ideias)
  - [Contribuindo com o Código do Projeto](#contribuindo-com-o-código-do-projeto)



  ```bash
  pip install brutils
  ```



  Para usar um de nossos utilitários, basta importar a função necessária, como no exemplo abaixo:

  ```python
  >>> from brutils import is_valid_cpf
  >>> is_valid_cpf('00011122233')
  False
  ```



  - [CPF](#cpf)
    - [is\_valid\_cpf](#is_valid_cpf)
    - [format\_cpf](#format_cpf)
    - [remove\_symbols\_cpf](#remove_symbols_cpf)
    - [generate\_cpf](#generate_cpf)
  - [CNPJ](#cnpj)
    - [is\_valid\_cnpj](#is_valid_cnpj)
    - [format\_cnpj](#format_cnpj)
    - [remove\_symbols\_cnpj](#remove_symbols_cnpj)
    - [generate\_cnpj](#generate_cnpj)
  - [CEP](#cep)
    - [is\_valid\_cep](#is_valid_cep)
    - [format\_cep](#format_cep)
    - [remove\_symbols\_cep](#remove_symbols_cep)
    - [generate\_cep](#generate_cep)
    - [get\_address\_from\_cep](#get_address_from_cep)
    - [get\_cep\_information\_from\_address](#get_cep_information_from_address)
  - [Telefone](#telefone)
    - [is\_valid\_phone](#is_valid_phone)
    - [format\_phone](#format_phone)
    - [remove\_symbols\_phone](#remove_symbols_phone)
    - [remove\_international\_dialing\_code](#remove_international_dialing_code)
    - [generate\_phone](#generate_phone)
  - [Email](#email)
    - [is\_valid\_email](#is_valid_email)
  - [Placa de Carro](#placa-de-carro)
    - [is\_valid\_license\_plate](#is_valid_license_plate)
    - [format\_license\_plate](#format_license_plate)
    - [remove\_symbols\_license\_plate](#remove_symbols_license_plate)
    - [generate\_license\_plate](#generate_license_plate)
    - [convert\_license\_plate\_to\_mercosul](#convert_license_plate_to_mercosul)
    - [get\_format\_license\_plate](#get_format_license_plate)
  - [PIS](#pis)
    - [is\_valid\_pis](#is_valid_pis)
    - [format\_pis](#format_pis)
    - [remove\_symbols\_pis](#remove_symbols_pis)
    - [generate\_pis](#generate_pis)
  - [Processo Jurídico](#processo-jurídico)
    - [is\_valid\_legal\_process](#is_valid_legal_process)
    - [format\_legal\_process](#format_legal_process)
    - [remove\_symbols\_legal\_process](#remove_symbols_legal_process)
    - [generate\_legal\_process](#generate_legal_process)
  - [Título Eleitoral](#titulo-eleitoral)
    - [is_valid_voter_id](#is_valid_voter_id)
    - [format_voter_id](#format_voter_id)
    - [generate_voter_id](#generate_voter_id)





  Retorna se os dígitos de verificação do CPF fornecido
  correspondem ao seu número base. Esta função não verifica a existência do CPF;
  ela apenas valida o formato da string.

  Argumentos:

  - cpf (str): O CPF a ser validado, uma string de 11 dígitos

  Retorna:

  - bool: Verdadeiro se os dígitos de verificação corresponderem ao número base,
            Falso caso contrário.

  Exemplo:

  ```python
  >>> from brutils import is_valid_cpf
  >>> is_valid_cpf("82178537464")
  True
  >>> is_valid_cpf('00011122233')
  False
  ```



  Formata um CPF (Cadastro de Pessoa Física brasileiro) para exibição visual.
  Esta função recebe uma string de CPF contendo apenas números como entrada e
  adiciona símbolos de formatação padrão para exibição.

  Argumentos:

  - cpf (str): Uma string de CPF contendo apenas números.

  Retorna:

  - str: O CPF formatado com símbolos visuais se for válido,
           None se não for válido.

  Exemplo:

  ```python
  >>> from brutils import format_cpf
  >>> format_cpf('82178537464')
  '821.785.374-64'
  >>> format_cpf("55550207753")
  '555.502.077-53'
  ```



  Remove símbolos específicos de uma string de CPF (Cadastro de Pessoa Física
  brasileiro). Esta função recebe como entrada uma string de CPF e remove todas as
  ocorrências dos caracteres '.', '-' dela.

  Argumentos:

  - cpf (str): A string de CPF contendo os símbolos a serem removidos.

  Retorna:

  - str: Uma nova string com os símbolos especificados removidos.

  Exemplo:

  ```python
  >>> from brutils import remove_symbols_cpf
  >>> remove_symbols_cpf('000.111.222-33')
  '00011122233'
  ```



  Gerar uma string de dígitos de CPF válida aleatória.

  Retorna:

  - str: Um CPF válido gerado aleatoriamente.

  Exemplo:

  ```python
  >>> from brutils import generate_cpf
  >>> generate_cpf()
  '17433964657'
  >>> generate_cpf()
  "10895948109"
  ```





  Verifica se os dígitos de verificação do CNPJ (Cadastro Nacional da Pessoa
  Jurídica) fornecido correspondem ao seu número base. A entrada deve ser uma
  string de dígitos com o comprimento apropriado. Esta função não verifica a
  existência do CNPJ; ela só valida o formato da string.

  Argumentos:

  - cnpj (str): O CNPJ a ser validado.

  Retorna:

  - bool: True se os dígitos de verificação corresponderem ao número base,
          False caso contrário.

  Exemplo:

  ```python
  >>> from brutils import is_valid_cnpj
  >>> is_valid_cnpj('03560714000142')
  True
  >>> is_valid_cnpj('00111222000133')
  False
  ```



  Formata uma string de CNPJ (Cadastro Nacional da Pessoa Jurídica) para exibição
  visual.
  Esta função recebe uma string de CNPJ como entrada, valida seu formato e a
  formata com símbolos visuais padrão para fins de exibição.

  Argumentos:

  - cnpj (str): A string de CNPJ a ser formatada para exibição.

  Retorna:

  - str: O CNPJ formatado com símbolos visuais se for válido, None se não for válido.

  Exemplo:

  ```python
  >>> from brutils import format_cnpj
  >>> format_cnpj("03560714000142")
  '03.560.714/0001-42'
  >>> format_cnpj("98765432100100")
  None
  ```



  Remove símbolos específicos de uma string de CNPJ (Cadastro Nacional da Pessoa
  Jurídica).
  Esta função recebe uma string de CNPJ como entrada e remove todas as
  ocorrências dos caracteres '.', '/' e '-' dela.

  Argumentos:

  - cnpj (str): A string de CNPJ que contém os símbolos a serem removidos.

  Retorna:

  - str: Uma nova string com os símbolos especificados removidos.

  Exemplo:

  ```python
  >>> from brutils import remove_symbols_cnpj
  >>> remove_symbols_cnpj('00.111.222/0001-00')
  '00111222000100'
  ```



  Gera uma string de dígitos CNPJ válida aleatória. Um número de filial
  opcional pode ser fornecido; o padrão é 1.

  Argumentos:

  - branch (int): Um número de filial opcional a ser incluído no CNPJ.

  Retorna:

  - str: Um CNPJ válido gerado aleatoriamente.

  Exemplo:

  ```python
  >>> from brutils import generate_cnpj
  >>> generate_cnpj()
  '34665388000161'
  >>> generate_cnpj(1234)
  "01745284123455"
  ```





  Verifica se um CEP (Código de Endereçamento Postal) brasileiro é válido.
  Para que um CEP seja considerado válido, a entrada deve ser uma string contendo
  exatamente 8 dígitos. Esta função não verifica se o CEP é um CEP real, pois
  valida apenas o formato da string.

  Argumentos:

  - cep (str): A string contendo o CEP a ser verificado.

  Retorno:

  - bool: True se o CEP for válido (8 dígitos), False caso contrário.

  Exemplo:

  ```python
  >>> from brutils import is_valid_cep
  >>> is_valid_cep('01310200')
  True
  >>> is_valid_cep("12345")
  False
  >>> is_valid_cep("abcdefgh")
  False
  ```



  Formata um CEP (Código de Endereçamento Postal) brasileiro em um formato padrão.
  Esta função recebe um CEP como entrada e, se for um CEP válido com 8 dígitos,
  o formata no padrão "12345-678".

  Argumentos:

  - cep (str): O CEP (Código de Endereçamento Postal) de entrada a ser
                formatado.

  Retorna:

  - str: O CEP formatado no formato "12345-678" se for válido, None se não for
          válido.

  Example:

  ```python
  >>> from brutils import format_cep
  >>> format_cep('01310200')
  '01310-200'
  >>> format_cep("12345678")
  "12345-678"
  >>> format_cep("12345")
  None
  ```



  Remove símbolos específicos de um CEP (Código de Endereçamento Postal)
  fornecido. Esta função recebe um CEP como entrada e remove todas as ocorrências
  dos caracteres '.' e '-' dele.

  Argumentos:

  - cep (str): O CEP (Código de Endereçamento Postal) de entrada que contém os
                 símbolos a serem removidos.

  Retorna:

  - str: Uma nova string com os símbolos especificados removidos.

  Exemplo:

  ```python
  >>> from brutils import remove_symbols_cep
  >>> remove_symbols_cep('01310-200')
  '01310200'
  >>> remove_symbols_cep("123-45.678.9")
  "123456789"
  >>> remove_symbols_cep("abc.xyz")
  "abcxyz"
  ```



  Gera um número de CEP (Código de Endereçamento Postal) aleatório de 8 dígitos
  como uma string.

  Retorna:

  - str: Um número de 8 dígitos gerado aleatoriamente.

  Exemplo:

  ```python
  >>> from brutils import generate_cep
  >>> generate_cep()
  '77520503'
  >>> generate_cep()
  '29641407'
  ```



  Busca as informações de endereço a partir de um CEP (Código de Endereçamento Postal) utilizando a API da ViaCEP.

  Argumentos:

  - cep (str): O CEP a ser utilizado na busca.
  - raise_exceptions (bool, opcional): Se deve gerar exceções quando o CEP for inválido ou não for encontrado. O padrão é False.

  Retorna:

  - Address | None: Um objeto Address (TypedDict) contendo as informações de endereço se o CEP for encontrado, caso contrário, None.

  Exemplo:

  ```python
  >>> from brutils import get_address_from_cep
  >>> get_address_from_cep("12345678")
  {
      "cep": "12345-678",
      "logradouro": "Rua Example",
      "complemento": "",
      "bairro": "Example",
      "localidade": "Example",
      "uf": "EX",
      "ibge": "1234567",
      "gia": "1234",
      "ddd": "12",
      "siafi": "1234"
  }
  ```



  Busca o CEP e outras informações a partir de um endereço utilizando a API da ViaCEP.

  Argumentos:

  - federal_unit (str): Abreviação de duas letras do estado brasileiro.
  - city (str): Nome da cidade.
  - street (str): Nome (ou substring) da rua.
  - raise_exceptions (bool, opcional): Se deve gerar exceções quando o endereço é inválido ou não foi encontrado. O padrão é False.

  Retorna:

  - list[Address] | None: Uma lista de objetos Address (TypedDict) contendo as informações de endereço se o endereço for encontrado, None caso contrário.

  Exemplo:

  ```python
  >>> from brutils import get_cep_information_from_address
  >>> get_cep_information_from_address("EX", "Example", "Rua Example")
  [
      {
          "cep": "12345-678",
          "logradouro": "Rua Example",
          "complemento": "",
          "bairro": "Example",
          "localidade": "Example",
          "uf": "EX",
          "ibge": "1234567",
          "gia": "1234",
          "ddd": "12",
          "siafi": "1234"
      }
  ]
  ```





  Retorna se um número de telefone brasileiro é válido conforme o formato da string.
  Não verifica se o número realmente existe.
  ```

  is_valid_phone(phone_number, type)

  ```

  Argumentos:

  - phone_number (str):
    - o número de telefone a ser validado
    - apenas dígitos, sem símbolos
    - sem o código do país
    - deve incluir o número de DDD com dois dígitos
    - exemplo: '+55 48 9999 9999' deve ser utilizado como '4899999999'
    - obrigatório

  - type (str):
    - 'mobile' para validar apenas números de celular
    - 'landline' para validar apenas números de telefone fixo
    - caso não especificado, valida para um para o outro.
    - opcional

  Retorna:

  - bool: True se o número é válido, False caso contrário.

  Exemplo:

  ```python
  >>> from brutils import is_valid_phone
  >>> is_valid_phone('11994029275')
  True
  >>> is_valid_phone('11994029275', 'mobile')
  True
  >>> is_valid_phone('1938814933', 'landline')
  True
  ```



  Formata um número de telefone para exibição visual. Esta função recebe uma string representando um número de telefone contendo apenas números como entrada e adiciona símbolos de formatação padrão para exibição.

  Argumentos:

  - phone (str): Uma string representando um número de telefone.

  Retorna:

  - str: O número de telefone formatado para exibição ou None se não for válido.

  Exemplo:

  ```python
  >>> from brutils import format_phone
  >>> format_phone("11994029275")
  '(11)99402-9275'
  >>> format_phone("1635014415")
  '(16)3501-4415'
  >>> format_phone("333333")
  None
  ```



  Remove símbolos do número de telefone. Esta função recebe um número de telefone como entrada e remove todos os símbolos, como parênteses '()', traços '-' e espaços ' '.

  Argumentos:

  - phone (str): O número de telefone de entrada que contém os símbolos a serem removidos.

  Retorna:

  - str: Uma nova string com os símbolos especificados removidos.

  Exemplo:

  ```python
  >>> from brutils import remove_symbols_phone
  >>> remove_symbols_phone('(21)2569-6969')
  '2125696969'
  >>> remove_symbols_phone('11 9999-8888')
  '1199998888'
  >>> remove_symbols_phone('333333')
  '333333'
  ```



  Remove o código internacional (+55) de uma string que contém um número de telefone brasileiro, mantendo outros caracteres especiais.

  Argumentos:

  - phone (str): O número de telefone de entrada que pode conter o código internacional.

  Retorna:

  - str: Uma nova string sem o código internacional, preservando outros caracteres especiais.

  Exemplo:

  ```python
  >>> from brutils import remove_international_dialing_code
  >>> remove_international_dialing_code("5521994029275")
  "21994029275"
  >>> remove_international_dialing_code("+5521994029275")
  "+21994029275"
  >>> remove_international_dialing_code("5555994029275")
  "55994029275"
  >>> remove_international_dialing_code("21994029275")
  "21994029275"
  >>> remove_international_dialing_code("(+55)21994029275")
  "(+)21994029275"
  ```



  Gera um número de telefone aleatório válido.

  Argumentos:

  - type (str): Pode ser "landline" ou "mobile".
                  Se não for especificado, a função gera um número
                  aleatório de qualquer tipo.

  Retorna:

  - str: Um número de telefone válido gerado aleatoriamente.

  Exemplo:

  ```python
  >>> from brutils import generate_phone
  >>> generate_phone()
  "5929797740"
  >>> generate_phone("mobile")
  "1899115895"
  >>> generate_phone("landline")
  "5535317900"
  ```





  Verificar se uma string corresponde a um endereço de e-mail válido.

  Argumentos:

  - email (str): A string de entrada a ser verificada.

  Retorna:

  - bool: Verdadeiro se o email for um endereço de e-mail válido, Falso
            caso contrário.

  Exemplo:

  ```python
  from brutils import is_valid_email

  >>> is_valid_email("joao.ninguem@gmail.com")
  True
  >>> is_valid_email(".joao.ninguem@gmail.com")
  False
  >>> is_valid_email("joao.ninguem@gmail.")
  False
  >>> is_valid_email("joao ninguem@gmail.com")
  False
  ```





  Verifica se uma placa de carro é válida.
  Esta função não verifica se a placa de carro é uma placa de carro real,
  apenas valida o formato da string.

  Argumentos:

  - license_plate (str): Uma string representando uma placa de carro.
  - type (str): "old_format" ou "mercosul".
                  Se não especificado, verifica um ou outro.

  Retorna:

  - bool: True se a placa de carro for válida, False caso contrário.

  Exemplo:

  ```python
  >>> from brutils import is_valid_license_plate
  >>> is_valid_license_plate('ABC1234')
  True
  >>> is_valid_license_plate('def5678', type="old_format")
  True
  >>> is_valid_license_plate('ABC4E67')
  True
  >>> is_valid_license_plate('ABC4E67', type="mercosul")
  True
  >>> is_valid_license_plate('GHI-4567')
  False
  ```



  Formata uma placa de carro no padrão correto.
  Esta função recebe uma placa de carro em qualquer formato (LLLNNNN ou LLLNLNN) e retorna uma versão formatada.

  Argumentos:

  - license_plate (str): Uma string representando uma placa de carro.

  Retorna:

  - str: A string da placa de carro formatada ou
           'None' se a entrada for inválida.

  Exemplo:

  ```python
  >>> from brutils import format_license_plate
  >>> format_license_plate("ABC1234")
  "ABC-1234"

  >>> format_license_plate("abc1234")
  "ABC-1234"

  >>> format_license_plate("ABC1D23")
  "ABC1D23"

  >>> format_license_plate("abc1d23")
  "ABC1D23"

  >>> format_license_plate("ABCD123")
  None
  ```



  Remove o símbolo de hífen (-) de uma string de placa de carro.

  Argumentos:

  - license_plate_number (str): Uma string de placa de carro contendo símbolos a serem removidos.

  Retorna:

  - str: A string da placa de carro com os símbolos especificados removidos.

  Exemplo:

  ```python
  from brutils import remove_symbols_license_plate
  >>> remove_symbols_license_plate("ABC-123")
  "ABC123"
  >>> remove_symbols_license_plate("abc123")
  "abc123"
  >>> remove_symbols_license_plate("ABCD123")
  "ABCD123"
  >>> remove_symbols_license_plate("@abc#-#123@")
  "@abc##123@"
  ```



  Gera uma placa de carro válida no formato especificado. Caso nenhum formato seja fornecido, ele retornará uma placa de carro no formato Mercosul.

  Argumentos:

  - format (str): O formato desejado para a placa de carro. 'LLLNNNN' para o formato antigo ou 'LLLNLNN' para o formato Mercosul. O padrão é 'LLLNLNN'.

  Retorna:

  - str: Um número de placa de carro gerado aleatoriamente ou
     None se o formato for inválido.

  Exemplo:

  ```python
  from brutils import generate_license_plate
  >>> generate_license_plate()
  "ABC1D23"
  >>> generate_license_plate(format="LLLNLNN")
  "ABC4D56"
  >>> generate_license_plate(format="LLLNNNN")
  "ABC123"
  >>> generate_license_plate(format="invalid")
  None
  ```



  Converte uma placa de carro no formato antigo (LLLNNNN) para o formato Mercosul (LLLNLNN).

  Argumentos:

  - license_plate(str): Uma string com o tamanho adequado que representa a placa no formato antigo.

  Retorna:

  - str: A placa Mercosul convertida (LLLNLNN) ou None se a entrada for inválida.

  Exemplo:

  ```python
  >>> from brutils import convert_license_plate_to_mercosul
  >>> convert_license_plate_to_mercosul("ABC123")
  "ABC1C34"
  >>> convert_license_plate_to_mercosul("abc123")
  "ABC1C34"
  >>> convert_license_plate_to_mercosul("ABC1D23")
  None
  ```



  Retorna o formato de uma placa de carro. 'LLLNNNN' para o formato antigo e
  'LLLNLNN' para o formato Mercosul.

  Argumentos:

  - license_plate (str): Uma string de placa de carro sem símbolos.

  Retorna:

  - str: O formato da placa de carro (LLLNNNN, LLLNLNN) ou
           'None' se o formato for inválido.

  Exemplo:

  ```python
  from brutils import get_format_license_plate
  >>> get_format_license_plate("ABC123")
  "LLLNNNN"
  >>> get_format_license_plate("abc123")
  "LLLNNNN"
  >>> get_format_license_plate("ABC1D23")
  "LLLNLNN"
  >>> get_format_license_plate("abc1d23")
  "LLLNLNN"
  >>> get_format_license_plate("ABCD123")
  None
  ```





  Verifica se o número PIS/PASEP é valido. Apenas números, formatados como string. Não verifica se o PIS/PASEP realmente existe.

  Referências:

  - <https://www.macoratti.net/alg_pis.htm>.

  Argumentos:

  - pis (str): Número PIS como uma string com o comprimento apropriado.

  Retorna:

  - bool: True se o PIS for válido, False caso contrário.

  Exemplo:

  ```python
  from brutils import is_valid_pis
  >>> is_valid_pis("82178537464")
  False
  >>> is_valid_pis("12082043519")
  True
  ```



  Formata uma string de PIS (Programa de Integração Social) válida com símbolos e adiciona símbolos de formatação padrão para exibição.

  Argumentos:

  - pis (str): Uma string válida de PIS contendo apenas números.

  Retorna:

  - str: Uma string de PIS formatada com símbolos visuais padrão ou None se a entrada for inválida.

  Exemplo:

  ```python
  from brutils import format_pis
  >>> format_pis("17033259504")
  '170.33259.50-4'
  >>> format_pis("12013128292")
  '120.13128.29-2'
  ```



  Esta função recebe uma string de PIS (Programa de Integração Social) com símbolos de formatação e retorna uma versão limpa sem símbolos. Remove apenas os símbolos "-" e "." , propositalmente não remove outros símbolos.

  Argumentos:

  - pis (str): Uma string de PIS que pode conter símbolos de formatação.

  Retorna:

  - str: Uma string de PIS limpa, sem símbolos de formatação.

  Exemplo:

  ```python
  from brutils import remove_symbols_pis

  >>> remove_symbols_pis('170.33259.50-4')
  '17033259504'
  >>> remove_symbols_pis("123.456.789-09")
  '12345678909'
  >>> remove_symbols_pis('/._')
  '/_'
  ```



  Gera uma string de dígitos contendo um número de um PIS brasileiro válido aleatório.

  Retorna:

  - str: Um número PIS válido gerado aleatoriamente como string.

  Exemplo:

  ```python
  from brutils import generate_pis
  >>> generate_pis()
  '61352489741'
  >>> generate_pis()
  '73453349671'
  ```





  Verifica se um ID de processo jurídico é válido, não verifica se o ID de processo jurídico é um ID de processo
  jurídico real; ela apenas valida o formato da string.

  Argumentos:

  - legal_process_id (str): Uma string contendo apenas dígitos que representa
                              o ID do processo jurídico.

  Retorna:

  - bool: True se o ID do processo jurídico for válido, False caso
            contrário.

  Examplo:

  ```python
  >>> from brutils import is_valid_legal_process
  >>> is_valid_legal_process('10188748220234018200')
  True
  >>> is_valid_legal_process('45532346920234025107')
  True
  >>> is_valid_legal_process('00000000000000000000')
  False
  >>> is_valid_legal_process('455323423QQWEQWSsasd&*(()')
  False
  >>>
  ```



  Formata um ID de processo jurídico em um formato padrão.

  Argumentos:

  - legal_process_id (str): Uma string de 20 dígitos que representa o ID do
                              processo jurídico.

  Retorna:

  - str: O ID do processo jurídico formatado ou None se a entrada for inválida.

  Exemplo:

  ```python
  >>> from brutils import format_legal_process
  >>> format_legal_process('23141945820055070079')
  '2314194-58.2005.5.07.0079'
  >>> format_legal_process('00000000000000000000')
  '0000000-00.0000.0.00.0000'
  >>>
  ```



  Remove símbolos específicos de um processo jurídico fornecido.

  Esta função recebe um processo jurídico como entrada e remove todas as
  ocorrências dos caracteres '.' e '-' dele.

  Argumentos:

  - legal_process (str): Um processo jurídico contendo símbolos a serem
                           removidos.

  Retorna:

  - str: A string do processo jurídico com os símbolos especificados removidos.

  Exemplo:

  ```python
  from brutils import remove_symbols_legal_process
  >>> remove_symbols_legal_process("6439067-89.2023.4.04.5902")
  "64390678920234045902"
  >>> remove_symbols_legal_process("4976023-82.2012.7.00.2263")
  "49760238220127002263"
  >>> remove_symbols_legal_process("4976023-82.2012.7.00.2263*!*&#")
  "49760238220127002263*!*&#"
  ```



  Gera um número válido aleatório de ID de processo jurídico.

  Argumentos:

  - year (int): O ano para o ID do processo jurídico (o padrão é o ano atual).
                  Não pode ser um ano do passado.
  - orgao (int): O órgão (1-9) para o ID do processo jurídico
                   (o padrão é aleatório).

  Retorna:

  - str: Um ID de processo jurídico gerado aleatoriamente.
           None caso algum dos argumento seja inválido.

  Exemplo:

  ```python
  >>> from brutils import generate_legal_process
  >>> generate_legal_process()
  "45676401020238170592"
  >>> generate_legal_process(ano=2025)
  "32110268020258121130"
  >>> generate_legal_process(orgao=5)
  "37573041520235090313"
  >>> generate_legal_process(ano=2024, orgao=4)
  "33158248820244017105"
  ```





  Verifica se um número de Título de Eleitor brasileiro é válido. Não verifica se realmente existe.

  Referências:

  - <https://pt.wikipedia.org/wiki/T%C3%ADtulo_de_eleitor>
  - <http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-titulo-de-eleitor/>

  Argumentos:

  - voter_id (str): string representando o número do título de eleitor a ser verificado.

  Retorna:

  - bool: True se o número do título de eleitor for válido. False, caso contrário.

  Exemplo:

  ```python
  >>> from brutils import is_valid_voter_id
  >>> is_valid_voter_id('123456789011')
  False
  >>> is_valid_voter_id('427503840213')
  True
  ```



  Formata um número de Título de Eleitor para exibição visual.

  Esta função recebe uma string de Título de Eleitor contendo
  apenas números como entrada e adiciona os espaços de formatação
  padrão para exibição.

  Argumentos:
    * voter_id (str): Uma string de Título de Eleitor contendo apenas números.

  Retorna:
    * str: O Título de Eleitor formatado com os espaços, se for válido.
           Retorna None se não for válido.

  Exemplo:

  ```python
  >>> from brutils import format_voter_id
  >>> format_voter_id("246593980493")
  '2465 9398 04 93'
  >>> format_voter_id("202715292895")
  '2027 1529 28 95'
  >>> format_voter_id("739035552205")
  >>>
  ```



  Gera uma string de dígitos de Título de Eleitor válida aleatória a partir de um estado brasileiro informado.

  Args:
    * federative_union (str): Unidade Federativa para o título de eleitor que será gerado. O valor padrão "ZZ" é usado para Títulos de Eleitor emitidos para estrangeiros.

  Retorna:
    * str: Um Título de Eleitor válido gerado aleatoriamente.

  Exemplo:

  ```python
  >>> from brutils import generate_voter_id
  >>> generate_voter_id()
  '183475722801'
  >>> generate_voter_id(federative_union ="MG")
  '950125640248'
  ```




  Caso queira sugerir novas funcionalidades ou reportar bugs, basta criar
  uma nova [issue][github-issues] e iremos lhe responder por lá!

  (Para saber mais sobre github issues, confira a [documentação oficial do GitHub][github-issues-doc]).



  Dúvidas de como utilizar a biblioteca? Novas ideias para o projeto?
  Quer compartilhar algo com a gente? Fique à vontade para criar um tópico no nosso
  [Discussions][github-discussions] que iremos interagir por lá!

  (Para saber mais sobre github discussions, confira a
  [documentação oficial do GitHub][github-discussions-doc]).



  Sua colaboração é sempre muito bem-vinda! Preparamos o arquivo [CONTRIBUTING.md][contributing] para
  te ajudar nos primeiros passos. Lá você encontrará toda a informação necessária para contribuir com
  o projeto. Não hesite em nos perguntar utilizando o [GitHub Discussions][github-discussions] caso
  haja qualquer dificuldade ou dúvida. Toda ajuda conta!

  Vamos construir juntos! 🚀🚀

  [contributing]: CONTRIBUTING.md
  [github-discussions-doc]: https://docs.github.com/pt/discussions
  [github-discussions]: https://github.com/brazilian-utils/brutils-python/discussions
  [github-issues-doc]: https://docs.github.com/pt/issues/tracking-your-work-with-issues/creating-an-issue
  [github-issues]: https://github.com/brazilian-utils/brutils-python/issues


pkgId: 7cee1fc28a525927e09ccbb615db4b62ae8061d55fefb0ebb4b4b9cf09e26422
name: python-brython-components
arch: src
version: 0.3.1
epoch: 0
release: 1
summary: Brython-components is an easy implementation of brython's webcomonent
url: https://pypi.org/project/brython-components/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-brython-components-0.3.1-1.src.rpm
checksum_type: sha256
description:
  Brython-components is an easy implementation of brython's webcomonent.



  Use the package manager [pip](https://pip.pypa.io/en/stable/) to install.

  ```bash
  pip install brip
  brip install brython-components
  ```




  ```html
  <popup-info>
      <span slot="data-text">Popup info data</span>
  </popup-info>
  ```


  ```python
  from browser import html

  from brython_components import bind, customElement, defineElement, react

  html.maketag("SLOT")

  @defineElement("popup-info")
  class PopupInfo(customElement):
      def __init__(self):
          super().__init__()

          self.render_root <= html.STYLE('''
          .wrapper {
              position: relative;
          }
          .info {
              font-size: 0.8rem;
              width: 200px;
              display: inline-block;
              border: 1px solid black;
              padding: 10px;
              background: white;
              border-radius: 10px;
              opacity: 0;
              transition: 0.6s all;
              position: absolute;
              top: 20px;
              left: 10px;
              z-index: 3;
          }
          .icon:hover + .info, .icon:focus + .info {
              opacity: 1;
          }
          ''')

          wrapper = html.SPAN(Class="wrapper")

          icon = html.SPAN(Class="icon", tabindex="0")
          wrapper <= icon

          info = html.SPAN(Class="info")
          info <= html.SLOT(name="data-text")
          wrapper <= info

          self.render_root <= wrapper

      @bind(".icon", "click")
      def deactivate(self, event):
          info = self.render_root.select_one(".info")
          icon = event.target
          if not info.style.opacity:
              info.style["opacity"] = 1
              icon.style["text-decoration"] = "line-through"
          else:
              info.style["opacity"] = ""
              icon.style["text-decoration"] = ""

      @react(".icon")
      def completed(self, targets):
          targets[0].text = ":) hover me"
  ```



  [MIT](https://choosealicense.com/licenses/mit/)


pkgId: 6a2d237181b4cee9071b7af3deb6ded3334a2bf8f6e0b7aab2f3a00db2b5847b
name: python-brython-dev
arch: src
version: 0.10.3
epoch: 0
release: 1
summary: Brython developer tools
url: https://pypi.org/project/brython-dev/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-brython-dev-0.10.3-1.src.rpm
checksum_type: sha256
description:
  Brython-dev is a Python library for developers in brython.



  Use the package manager [pip](https://pip.pypa.io/en/stable/) to install.

  ```bash
  pip install brython-dev
  ```



  For runserver

  ```bash
  py -m brython_dev run
  ```



  The configuration is in the filename `brython.yml`

  * **name**: String. The name of the proyect
  * **proyect**: String, Default: `Path(name)`. The path of the proyect
  * **app**: String, Default: `app.py`, `null` to disable. The python main filename
  * **template**: String, Default: `app.html`, `null` to disable. The html main template
  * **proyect_tests**: String, Default: `Path(tests)`. The path of the proyect tests
  * **app_tests**: String, Default: `app.py`, `null` to disable. The python tests main filename
  * **template_tests**: String, Default: `app.html`, `null` to disable. The html tests main template
  * **console**: Boolean, Default: `false`. Enable the console in the navegator
  * **stylesheets**: List. A list whith extras stylesheets
  * **extensions**: Dict. A dict whith enable brython extensions
    * **brython**: Boolean, Default: `true`. Enable the brython library
    * **brython_stdlib**: Boolean, Default: `false`. Enable the brython stdlib library
  * **scripts**: List. A list whith extras scripts
  * **pyscripts**: List. A list whith extras python scripts
  * **brython_options**: Dict. A dict whith brython options


  [MIT](https://choosealicense.com/licenses/mit/)


pkgId: 2715e0a6586120f53bdaae4f7dd6190f662a5dcbd7b742f23c889dd13892c043
name: python-bs2json
arch: src
version: 0.1.2
epoch: 0
release: 1
summary: Convert bs4 Tags into Json
url: https://github.com/MrDebugger/bs2json
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bs2json-0.1.2-1.src.rpm
checksum_type: sha256
description:
  This package is available on PyPi. Just use `pip install -U bs2json` to install it. Then you can import it using `from bs2json import bs2json`.


pkgId: 38a6e63f95d909e43f2880386d3e845556aacdd2996e427ad1ecbf6c1fde4ae6
name: python-bs4
arch: src
version: 0.0.2
epoch: 0
release: 1
summary: Dummy package for Beautiful Soup (beautifulsoup4)
url: https://pypi.org/project/bs4/
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bs4-0.0.2-1.src.rpm
checksum_type: sha256
description:
  This is a dummy package designed to prevent namesquatting on PyPI. You should install `beautifulsoup4 <https://pypi.python.org/pypi/beautifulsoup4>`_ instead.


pkgId: 8458747fd518bed6b7c3bbd1aa13694f403a6da3b00b8952a8cff09c39a6dfa9
name: python-bs4-utils
arch: src
version: 0.1.2
epoch: 0
release: 1
summary: A BeautifulSoup wrapper with helpful utils.
url: https://pypi.org/project/bs4-utils/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bs4-utils-0.1.2-1.src.rpm
checksum_type: sha256
description:
  A BeautifulSoup wrapper with helpful utils.

  ```bash
  pip install bs4-utils
  ```



  This package is currently only for the author's personal use.

  It will be properly documented if and only if it would be useful to others (or to the author).


pkgId: 5360bd0f2b7006d9bf83bcebccde9f9607ed05fe20fdb8e85597daff81cf2e7c
name: python-bs_python_utils
arch: src
version: 0.7
epoch: 0
release: 1
summary: my Python utilities
url: https://github.com/bsalanie/bs-python-utils
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bs_python_utils-0.7-1.src.rpm
checksum_type: sha256
description:
  ![GitHub last commit](https://img.shields.io/github/last-commit/bsalanie/bs-python-utils)

  <!-- [![Release](https://img.shields.io/github/v/release/bsalanie/bs-python-utils)](https://img.shields.io/github/v/release/bsalanie/bs-python-utils) -->

  [![Build status](https://img.shields.io/github/actions/workflow/status/bsalanie/bs-python-utils/main.yml?branch=main)](https://github.com/bsalanie/bs-python-utils/actions/workflows/main.yml?query=branch%3Amain) <!-- [![codecov](https://codecov.io/gh/bsalanie/bs-python-utils/branch/main/graph/badge.svg)](https://codecov.io/gh/bsalanie/bs-python-utils) --> <!-- [![Commit activity](https://img.shields.io/github/commit-activity/m/bsalanie/bs-python-utils)](https://img.shields.io/github/commit-activity/m/bsalanie/bs-python-utils) --> [![License](https://img.shields.io/github/license/bsalanie/bs-python-utils)](https://img.shields.io/github/license/bsalanie/bs-python-utils)

  My Python utilities.

  - **Github repository**: <https://github.com/bsalanie/bs-python-utils/>
  - **Documentation** <https://bsalanie.github.io/bs-python-utils/>




  Added `make_lowertri` in `bsnputils`, and some utility code in `bs_plots`.


  Moved to Altair 5.0; made timing optional in `bs_opt`.


  Updated statsmodels dependency.


  Added a Matplotlib plot for discrete choice models, a boxplot for Altair, and a density plot for Seaborn.



  Added matrix heatmap plot in Altair and Streamlit utility code.



  Added `fstring***` in `bsutils`.



  Added two interpolation routines from values at the Chebyshev nodes in `chebyshev` module.



  Added two functions to draw random samples in `bsstats` module.



  Added 1-dimensional root finding in `chebyshev` module.



  Updated the docs.



  Only print if verbose in bivariate quantiles.



  Added bivariate quantiles and ranks à la optimal transportation.



  Added in Numpy utils a function to set upper and lower triangle to a scalar;
  and `minimize_free` in `bs_opt`.



  Fixed printing in accelerated gradient descent.



  Added `grid_function` and the `chebyshev` module.



  Improved docs.



  Added `final_s` in `bsutils`.



  Added Legendre polynomials and quantile routines in `bsnputils`.



  Satisfied mypy.



  Fixed main PyPI page.


pkgId: 8a323ef8a7b3f20319f1076aadf464e8a3de08410cde6d1775a53ac163221e7c
name: python-bsb
arch: src
version: 4.2.0
epoch: 0
release: 1
summary: Black-box component framework for multiscale neural modeling
url: https://pypi.org/project/bsb/
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bsb-4.2.0-1.src.rpm
checksum_type: sha256
description:
  Metadata repository for the `bsb` package, which installs the `bsb-core` framework and a default set of plugins.

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


pkgId: eeb529511a602d67aea0b0505ca2f807b2f2ee1fee4055b8ec6471f10914147d
name: python-bsb
arch: src
version: 4.3.1
epoch: 0
release: 1
summary: Black-box component framework for multiscale neural modeling
url: https://pypi.org/project/bsb/
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bsb-4.3.1-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://github.com/dbbs-lab/bsb/actions/workflows/main.yml/badge.svg)](https://github.com/dbbs-lab/bsb/actions/workflows/main.yml)

  Developed by the Department of Brain and Behavioral Sciences at the University of Pavia,
  the Brain Scaffold Builder (BSB) is a component framework for neural modelling, which focuses on component
  declarations to piece together a brain model.
  The component declarations can be made in any supported configuration language,
  or using the library functions in Python.
  It offers parallel reconstruction and simulation of any network topology, placement and/or connectivity
  strategy.

  BSB is decomposed into several repositories:
  - [bsb-core](#bsb-core) — Install the bsb framework. Core component of the `bsb` suite.
  - [bsb-hdf5](#bsb-hdf5) — Leverage the hdf5 file format to save the models.
  - [bsb-json](#bsb-json) — Read and write configuration files in json format.
  - [bsb-yaml](#bsb-yaml) — Read and write configuration files in yaml format
  - [bsb-nest](#bsb-nest) — Simulate brain models as point-neuron networks with the NEST simulator.
  - [bsb-neuron](#bsb-neuron) — Simulate brain models as detailed neuron networks with the NEURON simulator.
  - [bsb-arbor](#bsb-arbor) — Simulate brain models as detailed neuron networks with the ARBOR simulator.


  This repository contains the metadata for the `bsb` package.
  It is highly recommended that you create a python environment before installing the `bsb` package.
  BSB currently supports python 3.9, 3.10 and 3.11.
  With the `bsb` package will be installed the
  [bsb-core](#bsb-core) framework and the following default set of plugins:
  - [bsb-hdf5](#bsb-hdf5)
  - [bsb-json](#bsb-json)
  - [bsb-yaml](#bsb-yaml)

  You can install these python libraries with the following command:
  ```shell
  pip install bsb
  ```
  Check also the following sections to install the other bsb plugin.




  Useful links:
  [GitHub repo](https://github.com/dbbs-lab/bsb-core),

  This project contains the main `bsb` framework and is needed by all the other repositories.
  It also contains tools to support parallel execution with MPI. To install this support, run the following command:
  ```shell
  pip install bsb[parallel]
  ```



  Useful links:
  [GitHub repo](https://github.com/dbbs-lab/bsb-hdf5).

  This project allows the user to save their model into the hdf5 file format.
  This plugin is installed by default with the `bsb` package.



  Useful links:
  [GitHub repo](https://github.com/dbbs-lab/bsb-json).

  This project allows the user to write their model configuration in the json file format.
  This plugin is installed by default with the `bsb` package.



  Useful links:
  [GitHub repo](https://github.com/dbbs-lab/bsb-yaml).

  This project allows the user to write their model configuration in the yaml file format.
  This plugin is installed by default with the `bsb` package.



  Useful links:
  [GitHub repo](https://github.com/dbbs-lab/bsb-nest).

  This project allows the user to simulate their brain model as point-neuron networks with the
  [NEST simulator](https://www.nest-simulator.org/).
  This plugin is not installed by default with the `bsb` package. To install it, you can run the following command:

  ```shell
  pip install bsb[nest]
  ```
  > [!WARNING]
  > The NEST simulator is not installed with the bsb-nest package and should be installed separately.



  Useful links:
  [GitHub repo](https://github.com/dbbs-lab/bsb-neuron).

  This project allows the user to simulate their brain model as detailed neural circuits with the
  [NEURON simulator](https://www.neuron.yale.edu/neuron/).
  This plugin is not installed by default with the `bsb` package. To install it, you can run the following command:
  ```shell
  pip install bsb[neuron]
  ```



  Useful links:
  [GitHub repo](https://github.com/dbbs-lab/bsb-arbor).

  This project allows the user to simulate their brain model as detailed neural circuits with the
  [ARBOR simulator](https://arbor-sim.org/).
  This plugin is not installed by default with the `bsb` package. To install it, you can run the following command:
  ```shell
  pip install bsb[arbor]
  ```


  Check BSB [Documentation](https://bsb.readthedocs.io/en/latest).



  This research has received funding from the European Union’s Horizon 2020 Framework
  Program for Research and Innovation under the Specific Grant Agreement No. 945539
  (Human Brain Project SGA3) and Specific Grant Agreement No. 785907 (Human Brain
  Project SGA2) and from Centro Fermi project “Local Neuronal Microcircuits” to ED. We
  acknowledge the use of EBRAINS platform and Fenix Infrastructure resources, which are
  partially funded from the European Union’s Horizon 2020 research and innovation
  programme through the ICEI project under the grant agreement No. 800858

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


pkgId: c7e7b1dce25a89d75d9c7269c80f0ca356bf7c3dae5f361ac5aab8d5eb38d27c
name: python-bsb-lookup
arch: src
version: 0.0.5
epoch: 0
release: 1
summary: Sample Python Project for creating a new Python Module
url: https://pypi.org/project/bsb-lookup/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bsb-lookup-0.0.5-1.src.rpm
checksum_type: sha256
description:
  [![pypi](https://img.shields.io/pypi/v/bsb-lookup.svg)](https://pypi.python.org/pypi/bsb-lookup)
  [![versions](https://img.shields.io/pypi/pyversions/bsb-lookup.svg)](https://github.com/ilankessler/bsb-lookup)
  [![license](https://img.shields.io/github/license/ilankessler/bsb-lookup.svg)](https://github.com/ilankessler/bsb-lookup/blob/main/LICENSE)
  ![downloads](https://static.pepy.tech/badge/bsb-lookup)
  [![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy-lang.org/)
  [![Linting: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)

  Australian Bank State Branch number enricher used for validating and looking up bank names given a BSB number. Ideal for financial applications, banking software, and fintech solutions.



  - [Installation](#installation)
  - [Usage](#usage)
  - [Background](#background)
  - [Contributing](#contributing)
  - [License](#license)
  - [Contact](#contact)



  Before installing, ensure you have Python 3.x installed on your system. You can install BSB Lookup using pip:

  ```bash
  pip install bsb-lookup
  ```



  Here's a simple example to get started with BSB Lookup:

  ```py
  from bsb import to_bank_info

  result = to_bank_info(bsb="082055")

  print(result)
















  ```


  A BSB, or Bank State Branch number, is a six-digit code used to identify the specific branch of an Australian bank or financial institution. The BSB is normally used in association with the account number system used by each financial institution.

  <img width="400" alt="image" src="https://github.com/ilankessler/bsb-lookup/assets/11990626/e026f52e-5e0b-43a5-b124-bfa65d84f3f1">



  Contributions are welcome! If you have a suggestion or want to contribute code, please follow these steps:

  1. Fork the repository
  2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
  3. Commit your changes (`git commit -am '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](https://github.com/ilankessler/bsb-lookup/blob/main/LICENSE) - see the LICENSE file for details.



  For support or queries, reach out to ilan@refundid.com


pkgId: 90bf520c316a0757f3420a22da88820432484bf1a33c89101fe81327b171db46
name: python-bsb-neuron
arch: src
version: 4.2.1
epoch: 0
release: 1
summary: NEURON simulator adapter for the BSB framework
url: https://pypi.org/project/bsb-neuron/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bsb-neuron-4.2.1-1.src.rpm
checksum_type: sha256
description:
  [![Build Status](https://github.com/dbbs-lab/bsb-neuron/actions/workflows/main.yml/badge.svg)](https://github.com/dbbs-lab/bsb-neuron/actions/workflows/main.yml)
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)



  bsb-neuron is a pluggin of [BSB](https://github.com/dbbs-lab/bsb) (see also
  [bsb-core](https://github.com/dbbs-lab/bsb-core)).
  It contains the interfaces and tools to simulate BSB circuit with the
  [neuron simulator](https://www.neuron.yale.edu/neuron/).


pkgId: ab7d03858ba7b2bc22a3039e75e65b885fd62aed54815df88db1e0b2b7206885
name: python-bsblan
arch: src
version: 0.5.0
epoch: 0
release: 1
summary: Asynchronous Python client for BSBLan.
url: https://github.com/liudger/python-bsblan
rpm_license: MIT license
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bsblan-0.5.0-1.src.rpm
checksum_type: sha256
description:
  [![GitHub Release][releases-shield]][releases]
  ![Project Stage][project-stage-shield]
  ![Project Maintenance][maintenance-shield]
  [![License][license-shield]](LICENSE.md)

  [![Build Status][build-shield]][build]
  [![Code Coverage][codecov-shield]][codecov]
  [![Code Quality][code-quality-shield]][code-quality]

  [![Buy me a coffee][buymeacoffee-shield]][buymeacoffee]

  Asynchronous Python client for BSBLan.



  This package allows you to control and monitor an BSBLan device
  programmatically. It is mainly created to allow third-party programs to automate
  the behavior of [BSBLan][bsblanmodule].



  ```bash
  pip install bsblan
  ```



  ```python

  """Asynchronous Python client for BSBLan."""

  import asyncio

  from bsblan import BSBLan, Info, State


  async def main(loop):
      """Show example on controlling your BSBLan device.

      Options:
      - passkey (http://url/"passkey"/) if your device is setup for passkey authentication
      - username and password if your device is setup for username/password authentication

      """
      async with BSBLan(
          host="10.0.1.60", passkey=None, username=None, password=None, loop=loop
      ) as bsblan:
          
          state: State = await bsblan.state()
          print(state)

          
          await bsblan.thermostat(target_temperature=19.0)

          
          await bsblan.thermostat(hvac_mode=3)

          
          info: Info = await bsblan.info()
          print(info)


  if __name__ == "__main__":
      loop = asyncio.get_event_loop()
      loop.run_until_complete(main(loop))
  ```



  This repository keeps a change log using [GitHub's releases][releases]
  functionality. The format of the log is based on
  [Keep a Changelog][keepchangelog].

  Releases are based on [Semantic Versioning][semver], and use the format
  of ``MAJOR.MINOR.PATCH``. In a nutshell, the version will be incremented
  based on the following:

  - ``MAJOR``: Incompatible or major changes.
  - ``MINOR``: Backwards-compatible new features and enhancements.
  - ``PATCH``: Backwards-compatible bugfixes and package updates.



  This is an active open-source project. We are always open to people who want to
  use the code or contribute to it.

  We've set up a separate document for our
  [contribution guidelines](CONTRIBUTING.md).

  Thank you for being involved! :heart_eyes:



  In case you'd like to contribute, a `Makefile` has been included to ensure a
  quick start.

  ```bash
  make venv
  source ./venv/bin/activate
  make dev
  ```

  Now you can start developing, run `make` without arguments to get an overview
  of all make goals that are available (including description):

  ```bash
  $ make
  Asynchronous Python client for BSBLan.

  Usage:
    make help                            Shows this message.
    make dev                             Set up a development environment.
    make lint                            Run all linters.
    make lint-black                      Run linting using black & blacken-docs.
    make lint-flake8                     Run linting using flake8 (pycodestyle/pydocstyle).
    make lint-pylint                     Run linting using PyLint.
    make lint-mypy                       Run linting using MyPy.
    make test                            Run tests quickly with the default Python.
    make coverage                        Check code coverage quickly with the default Python.
    make install                         Install the package to the active Python's site-packages.
    make clean                           Removes build, test, coverage and Python artifacts.
    make clean-all                       Removes all venv, build, test, coverage and Python artifacts.
    make clean-build                     Removes build artifacts.
    make clean-pyc                       Removes Python file artifacts.
    make clean-test                      Removes test and coverage artifacts.
    make clean-venv                      Removes Python virtual environment artifacts.
    make dist                            Builds source and wheel package.
    make release                         Release build on PyP
    make venv                            Create Python venv environment.
  ```



  The template is from the repository 'wled' by [Franck Nijhof][frenck].
  Folowing the cool [live coding][live-coding] feed from frenck!
  The original setup of this repository is by [Willem-Jan van Rootselaar][liudger].

  For a full list of all authors and contributors,
  check [the contributor's page][contributors].



  MIT License

  Copyright (c) 2022 WJ van Rootselaar

  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.

  [build-shield]: https://github.com/liudger/python-bsblan/workflows/Continuous%20Integration/badge.svg
  [build]: https://github.com/liudger/python-bsblan/actions
  [buymeacoffee-shield]: https://www.buymeacoffee.com/assets/img/guidelines/download-assets-sm-2.svg
  [buymeacoffee]: https://www.buymeacoffee.com/liudger
  [code-quality-shield]: https://img.shields.io/lgtm/grade/python/g/liudger/python-bsblan.svg?logo=lgtm&logoWidth=18
  [code-quality]: https://lgtm.com/projects/g/liudger/python-bsblan/context:python
  [codecov-shield]: https://codecov.io/gh/liudger/python-bsblan/branch/Dev/graph/badge.svg?token=ypos87GGxv
  [codecov]: https://codecov.io/gh/liudger/python-bsblan
  [contributors]: https://github.com/liudger/python-bsblan/graphs/contributors
  [liudger]: https://github.com/liudger
  [frenck]: https://github.com/frenck
  [keepchangelog]: http://keepachangelog.com/en/1.0.0/
  [bsblanmodule]: https://github.com/fredlcore/bsb_lan
  [license-shield]: https://img.shields.io/github/license/liudger/python-bsblan.svg
  [maintenance-shield]: https://img.shields.io/maintenance/yes/2022.svg
  [live-coding]: https://www.youtube.com/watch?v=6LHeoUS1R40

  [project-stage-shield]: https://img.shields.io/badge/project%20stage-experimental-yellow.svg
  [releases-shield]: https://img.shields.io/github/v/release/liudger/python-bsblan.svg
  [releases]: https://github.com/liudger/python-bsblan/releases
  [semver]: http://semver.org/spec/v2.0.0.html


pkgId: a7d2a1dcc33c03798cc1fa7e956578a2e76e4d431403ac3e4b7a16dfcd2a8e59
name: python-bscpylgtv
arch: src
version: 0.4.6
epoch: 0
release: 1
summary: Library to control webOS based LG TV devices.
url: https://github.com/chros73/bscpylgtv
rpm_license: UNKNOWN
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bscpylgtv-0.4.6-1.src.rpm
checksum_type: sha256
description:
  Library to control webOS based LG TV devices. Enhanced and faster version of
   [aiopylgtv](https://github.com/bendavid/aiopylgtv), it can be installed without calibration functionality,
   optimized for command line usage (it looks for the same `.aiopylgtv.sqlite` key config file).


  - Python >= 3.8


  ```bash

  pip install bscpylgtv

  pip install bscpylgtv[with_calibration]
  ```


  Run the following command inside this folder:
  ```bash

  pip install --upgrade .

  pip install --upgrade .[with_calibration]
  ```


  Portable Windows binaries can be found under [releases](https://github.com/chros73/bscpylgtv/releases), along with [First use](https://github.com/chros73/bscpylgtv/tree/master/docs/guides/first_use.md) guide.


  Available settings can be found in [docs](https://github.com/chros73/bscpylgtv/tree/master/docs) directory, also available [buttons](https://github.com/chros73/bscpylgtv/tree/master/bscpylgtv/buttons.py).
  ```bash

  bscpylgtvcommand 192.168.1.18 get_apps_all true

  bscpylgtvcommand 192.168.1.18 button INFO

  bscpylgtvcommand 192.168.1.18 set_input HDMI_2

  bscpylgtvcommand 192.168.1.18 get_picture_settings "[\"backlight\", \"contrast\"]" true

  bscpylgtvcommand 192.168.1.18 set_current_picture_mode expert2

  bscpylgtvcommand 192.168.1.18 set_current_picture_settings "{\"backlight\": 0, \"contrast\": 85}"

  bscpylgtvcommand 192.168.1.18 set_current_picture_settings "{\"hdrDynamicToneMapping\": \"on\"}"

  bscpylgtvcommand 192.168.1.18 set_current_picture_settings "{\"colorGamut\": \"auto\"}"

  bscpylgtvcommand 192.168.1.18 set_current_picture_settings "{\"mpegNoiseReduction\": \"off\"}"

  bscpylgtvcommand 192.168.1.18 set_current_picture_settings "{\"ai_Picture\": \"on\"}" aiPicture

  bscpylgtvcommand 192.168.1.18 set_other_settings "{\"eotf\": \"hlg\"}"

  bscpylgtvcommand 192.168.1.18 set_device_info HDMI_2 pc PC
  bscpylgtvcommand 192.168.1.18 set_device_info HDMI_2 hometheater "Home Theatre"

  bscpylgtvcommand 192.168.1.18 launch_app com.webos.app.screensaver
  bscpylgtvcommand 192.168.1.18 close_app com.webos.app.screensaver

  bscpylgtvcommand 192.168.1.18 turn_screen_off
  bscpylgtvcommand 192.168.1.18 turn_screen_on

  bscpylgtvcommand 192.168.1.18 launch_app_with_params com.palm.app.settings "{\"target\": \"PictureMode\"}"

  bscpylgtvcommand 192.168.1.18 launch_app com.webos.app.installation

  bscpylgtvcommand 192.168.1.18 launch_app_with_params com.webos.app.tvhotkey "{\"activateType\": \"mute-hidden-action\"}"

  bscpylgtvcommand 192.168.1.18 launch_app_with_params com.webos.app.tvhotkey "{\"activateType\": \"freesync-info\"}"

  bscpylgtvcommand 192.168.1.18 launch_app com.webos.app.softwareupdate

  bscpylgtvcommand 192.168.1.18 launch_app_with_params com.webos.app.softwareupdate "{\"mode\": \"user\", \"flagUpdate\": true}"

  bscpylgtvcommand 192.168.1.18 enable_tpc_or_gsr tpc false

  bscpylgtvcommand 192.168.1.18 set_sm_white_balance warm 192 169 111

  bscpylgtvcommand 192.168.1.18 launch_app_with_params com.webos.app.factorywin "{\"id\":\"executeFactory\", \"irKey\":\"inStart\"}"

  bscpylgtvcommand 192.168.1.18 launch_app_with_params com.webos.app.factorywin "{\"id\":\"executeFactory\", \"irKey\":\"ezAdjust\"}"

  bscpylgtvcommand 192.168.1.18 set_other_settings "{\"svcMenuFlag\": false}"

  bscpylgtvcommand 192.168.1.18 get_configs "[\"tv.model.*\"]" true

  bscpylgtvcommand 192.168.1.18 set_configs "{\"tv.model.motionProMode\": \"OLED Motion Pro\"}"

  bscpylgtvcommand 192.168.1.18 set_configs "{\"tv.conti.supportUsedTime\": true}"

  bscpylgtvcommand 192.168.1.18 take_screenshot

  bscpylgtvcommand 192.168.1.18 reboot_soft

  bscpylgtvcommand 192.168.1.18 power_off
  ```



  ```bash


  bscpylgtvcommand 192.168.1.18 upload_3d_lut_bt2020_from_file expert1 "test3d-2.cube" -s
  bscpylgtvcommand -s "[\"software_info\"]" 192.168.1.18 upload_3d_lut_bt2020_from_file expert1 "test3d-2.cube"



  bscpylgtvcommand -c "{\"lut3d\": \"33pt\", \"dovi\": \"2019\"}" 192.168.1.18 upload_3d_lut_bt2020_from_file expert1 "test3d-2.cube"

  bscpylgtvcommand -o 192.168.1.18 get_hello_info true

  bscpylgtvcommand -w 192.168.1.18 button INFO

  bscpylgtvcommand -k ef6858b2133d68854612831e3df8e495 192.168.1.18 button INFO

  bscpylgtvcommand -p "D:\config\.aiopylgtv.sqlite" 192.168.1.18 button INFO

  bscpylgtvcommand -l
  bscpylgtvcommand -l -p "D:\config\.aiopylgtv.sqlite"

  bscpylgtvcommand -v
  ```



  ```python
  import asyncio
  from bscpylgtv import WebOsClient

  async def runloop():
      client = await WebOsClient.create('192.168.1.18', ping_interval=None, states=[])
      await client.connect()
      apps = await client.get_apps_all()
      for app in apps:
          print(app)

      await client.disconnect()

  asyncio.run(runloop())
  ```



  ```python
  import asyncio
  from bscpylgtv import WebOsClient

  async def on_state_change(client):
      print("State changed:")
      print(client.apps)
      print(client.inputs)
      print(client.power_state)
      print(client.current_appId)
      print(client.channels)
      print(client.current_channel)
      print(client.channel_info)
      print(client.muted)
      print(client.volume)
      print(client.sound_output)
      print(client.picture_settings)
      print(client.system_info)
      print(client.software_info)
      print(client.hello_info)

  async def runloop():
      client = await WebOsClient.create('192.168.1.18', get_hello_info=True)
      await client.register_state_update_callback(on_state_change)
      await client.connect()

      ret = await client.volume_up()
      print(ret)
      await asyncio.sleep(30)

      await client.disconnect()

  asyncio.run(runloop())
  ```



  Replacing built-in `StorageSqliteDict` key storage with custom `StorageMy` class that implements [methods](https://github.com/chros73/bscpylgtv/tree/master/bscpylgtv/storage_proto.py) of `StorageProto` class:
  ```python
  import asyncio
  from bscpylgtv import WebOsClient
  from storage_my import StorageMy

  async def runloop():
      storage = await StorageMy.create("file_path")
      client = await WebOsClient.create('192.168.1.18', ping_interval=None, states=[], storage=storage)
      await client.connect()
      info = await client.get_software_info()
      print(info)

      await client.disconnect()

  asyncio.run(runloop())
  ```

  More useful examples can be found in [docs/scripts](https://github.com/chros73/bscpylgtv/tree/master/docs/scripts) directory.


  **WARNING:** *Messing with the calibration data COULD brick your TV in some circumstances, requiring a mainboard replacement. All of the currently implemented functions SHOULD be safe (although they have only been extensively tested for the 2018 Alpha 7/9, 2019/2021/2022 Alpha 9 models), but no guarantees.*

  On LG WebOS TVs with Alpha 7 and Alpha 9 chipsets, upload to internal 1D/3D LUTs, resetting factory calibration data uploaded via calibration API, uploading custom tone mapping parameters (>=2019 models), using internal test pattern generator (iTPG, >=2019 models), writing Dolby Vision config file and other calibration commands are supported.



  Here is a simplified version of the [image processing pipeline](https://displaycalibrations.com/images/LG_OLED_Video_Signal_Chain_Diagram_Picture.png) (there may be other not fully known/understood changes).

  Calibration commands can only be run while in calibration mode (controlled by `start_calibration` and `end_calibration`).
  Some of the calibration commands aren't used (question mark behind the name of the method) depending on the model/firmware.
  Most of the commands can be run in any mode, except for `set_tonemap_params` that is only for HDR10+HLG and `set_dolby_vision_config_data` that is only for Dolby Vision.
  Only 3D LUT and Dolby Vision config related commands require `-s` (states) command line switch (or the use of `-c` (calibration_info) instead for unsuppported chip types if other calibration commands work fine, but be very careful!).
  In general, `set_1d_en_*` (de-gamma, re-gamma) and `set_3by3_gamut_data_*` (3x3 color matrices) commands should only be used with unity/custom 3D LUT.

  The following commands are supported via calibration API:
  ```
  start_calibration, end_calibration,
  set_oled_light, set_contrast, set_brightness, set_color
  upload_1d_lut, upload_1d_lut_from_file, set_1d_lut_en (?),
  upload_3d_lut_bt709, upload_3d_lut_bt709_from_file, upload_3d_lut_bt2020, upload_3d_lut_bt2020_from_file,
  set_1d_en_2_2, set_1d_en_0_45,
  set_3by3_gamut_data_bt709, set_3by3_gamut_data_bt2020, set_3by3_gamut_data_hdr (only used in 2019 models), set_3by3_gamut_data_from_file, set_3by3_gamut_en (?),
  set_tonemap_params (for HDR10 picture modes),
  set_dolby_vision_config_data (not recommended on >=2020 models!)
  ```

  Combined commands for setting bypass modes and resetting factory data:
  ```
  set_bypass_modes_sdr, set_bypass_modes_hdr10, set_bypass_modes_dovi,
  reset_factory_data_sdr, reset_factory_data_hdr10, reset_factory_data_dovi
  ```

  Calibration data is specific to each picture mode, and picture modes are independent for SDR, HDR10+HLG, and Dolby Vision.
  Picture modes from each of the three groups are only accessible when the TV is in the appropriate mode. Ie to upload calibration data for HDR10 picture modes, one has to send the TV an HDR10 signal or play an HDR10 file, and similarly for Dolby Vision.

  Known supported `picture_mode` strings are:
  ```
  SDR: cinema, expert1, expert2, game, technicolorExpert, filmMaker
  HDR10(+HLG): hdr_cinema, hdr_game, hdr_technicolorExpert, hdr_filmMaker
  DV: dolby_cinema_bright, dolby_cinema_dark, dolby_game
  ```

  For SDR and HDR10 modes there are two 3D LUTs which will be automatically selected depending on the colorspace flags of the signal or content. In principle almost all SDR content should be BT709 and HDR10 content should be BT2020 but there could be nonstandard cases where this is not true.
  For Dolby Vision the BT709 3D LUT seems to be active and the only one used.

  The supported input formats for LUTs are IRIDAS `.cube` format for both 1D and 3D LUTs, and ArgyllCMS `.cal` files for 1D LUTs.
  Models with Alpha 9 use 33 point 3D LUTs, while those with Alpha 7 use 17 points.

  When uploading any 1D LUT data, service menu white balance settings are ignored, and gamma, colorspace, and white balance settings in the user menu are greyed out and inaccessible. From 2019 models white balance 2pt values can be set.
  While in calibration mode for HDR10 tone mapping is bypassed.



  Modifying expert1 SDR preset (ISF Expert Bright Room):
  ```bash

  bscpylgtvcommand 192.168.1.18 set_input HDMI_2

  bscpylgtvcommand 192.168.1.18 start_calibration expert1

  bscpylgtvcommand 192.168.1.18 set_oled_light 39
  bscpylgtvcommand 192.168.1.18 set_contrast
  bscpylgtvcommand 192.168.1.18 set_brightness
  bscpylgtvcommand 192.168.1.18 set_color

  bscpylgtvcommand 192.168.1.18 set_bypass_modes_sdr true -s

  bscpylgtvcommand 192.168.1.18 upload_1d_lut_from_file "test.cal"

  bscpylgtvcommand 192.168.1.18 upload_3d_lut_bt709_from_file "test3d-1.cube" -s

  bscpylgtvcommand 192.168.1.18 upload_3d_lut_bt2020_from_file "test3d-2.cube" -s

  bscpylgtvcommand 192.168.1.18 end_calibration
  ```

  Same calibration session via scripting:
  ```python
  import asyncio
  from bscpylgtv import WebOsClient

  async def runloop():
      client = await WebOsClient.create('192.168.1.18', states=["software_info"])
      await client.connect()

      await client.set_input("HDMI_2")
      await client.start_calibration(picture_mode="expert1")
      await client.set_oled_light(value=39)
      await client.set_contrast()
      await client.set_brightness()
      await client.set_color()
      await client.set_bypass_modes_sdr(unity_1d_lut=True)
      await client.upload_1d_lut_from_file(filename="test.cal")
      await client.upload_3d_lut_bt709_from_file(filename="test3d-1.cube")
      await client.upload_3d_lut_bt2020_from_file(filename="test3d-2.cube")
      await client.end_calibration()

      await client.disconnect()

  asyncio.run(runloop())
  ```



  The following commands are supported via calibration API beside of the the combined `set_bypass_modes_*` commands:
  ```
  upload_1d_lut,
  upload_3d_lut_bt709, upload_3d_lut_bt2020,
  set_1d_en_2_2, set_1d_en_0_45, set_1d_lut_en (?),
  set_3by3_gamut_data_bt709, set_3by3_gamut_data_bt2020, set_3by3_gamut_data_hdr (only used in 2019 models), set_3by3_gamut_en (?),
  ```

  Example usage (all the supported commands have the same syntax):
  ```bash

  bscpylgtvcommand 192.168.1.18 start_calibration hdr_game

  bscpylgtvcommand 192.168.1.18 upload_1d_lut

  bscpylgtvcommand 192.168.1.18 end_calibration
  ```



  It's possible to reset individual factory calibration data (previously a picture preset reset or factory reset was required for this)
  or reset all/most of them with the combined `reset_factory_data_*` commands.
  The following commands are supported via calibration API:
  ```
  upload_1d_lut,
  upload_3d_lut_bt709, upload_3d_lut_bt2020,
  set_1d_en_2_2, set_1d_en_0_45, set_1d_lut_en (?),
  set_3by3_gamut_data_bt709, set_3by3_gamut_data_bt2020, set_3by3_gamut_data_hdr (only used in 2019 models), set_3by3_gamut_en (?),
  set_tonemap_params (for HDR10 picture modes),
  set_dolby_vision_config_data (not recommended on >=2020 models!)
  ```

  Example usage (all the supported commands have the same syntax except for those that require a `picture_mode`):
  ```bash

  bscpylgtvcommand 192.168.1.18 start_calibration hdr_game

  bscpylgtvcommand 192.168.1.18 upload_1d_lut []

  bscpylgtvcommand 192.168.1.18 set_tonemap_params hdr_game []

  bscpylgtvcommand 192.168.1.18 end_calibration
  ```



  - NOTE: they can be partially or completely broken (depending on firmware version, picture preset, etc)
  - they can be used inside or outside of calibration mode as well
  - they return the data of the currently active picture mode
  - in case of factory LUTs (sometimes even with custom LUTs as well), they return the post-processed LUTs with all customizations factored in (including customizations via the user settings menu or service menu)

  The following commands are supported via calibration API:
  ```
  get_1d_en_2_2, get_1d_en_0_45,
  get_3by3_gamut_data, get_3by3_gamut_data_hdr,
  get_1d_lut, get_3d_lut
  ```

  Example usage (all the supported commands have the same syntax):
  ```bash

  bscpylgtvcommand 192.168.1.18 get_3by3_gamut_data
  ```



  It's possible to backup and resture 1D/3D LUTs and 3x3 color matrices (if the getter interface of the calibration API works fine).

  Example usage for backuping:
  ```bash

  bscpylgtvcommand 192.168.1.18 get_3by3_gamut_data "hdr_cinema_3x3.matrix"

  bscpylgtvcommand 192.168.1.18 get_1d_lut "hdr_cinema.1dlut"

  bscpylgtvcommand 192.168.1.18 get_3d_lut "hdr_cinema.3dlut" -s
  ```

  Example usage for restoring:
  ```bash

  bscpylgtvcommand 192.168.1.18 start_calibration hdr_cinema

  bscpylgtvcommand 192.168.1.18 set_3by3_gamut_data_from_file "bt2020" "hdr_cinema_3x3.matrix"

  bscpylgtvcommand 192.168.1.18 upload_1d_lut_from_file "hdr_cinema.1dlut"

  bscpylgtvcommand 192.168.1.18 upload_3d_lut_bt2020_from_file "hdr_cinema.3dlut" -s

  bscpylgtvcommand 192.168.1.18 end_calibration
  ```



  It's also possible to convert 1D LUT files to ArgyllCMS `cal` files and vica versa.
  Note that the conversion is lossy due to rounding errors and misalignment of points in 1D LUT and I values in cal file.

  Example usage for converting:
  ```bash

  bscpylgtvcommand 192.168.1.18 convert_1dlut_to_cal "dovi_cinema.1dlut" "dovi_cinema.cal"

  bscpylgtvcommand 192.168.1.18 convert_cal_to_1dlut "dovi_cinema.cal" "dovi_cinema.1dlut"
  ```



  - available only on supported models (>=2019)
  - parameters (in this order): picture_mode, peak luminance, mastering_peak_1, rolloff_point_1, mastering_peak_2, rolloff_point_2, mastering_peak_3, rolloff_point_3

  ```bash

  bscpylgtvcommand 192.168.1.18 start_calibration hdr_cinema

  bscpylgtvcommand 192.168.1.18 set_tonemap_params hdr_cinema 760 1000 75 4000 60 10000 50

  bscpylgtvcommand 192.168.1.18 set_tonemap_params hdr_cinema 760 1000 100 4000 100 10000 100

  bscpylgtvcommand 192.168.1.18 end_calibration
  ```



  Copy the generated config `DolbyVision_UserDisplayConfiguration.txt` file into the root of a thumbdrive, plug it into the TV, then play a DoVi content (e.g. with a built-in app), the DoVi config update popup will appear.

  Note: the DoVi config update popup is disabled via USB if any data (e.g. custom 1D LUT) is uploaded via the calibration API to a given DoVi preset. Either you have to update the config beforehand or reset the preset on the UI (or via calibration API), update DoVi config via USB, then upload the data (e.g. custom 1D LUT) again if necessary.

  - picture modes: dolby_cinema_bright - 1 (DoVi Cinema Home), dolby_cinema_dark - 2 (DoVi Cinema), dolby_game - 4 (DoVi Game)
  - primaries (in this order): xr, yr, xg, yg, xb, yb
  - default value of black_level: 0.0001
  - config of 2018 models is different from newer models (>=2019)

  ```bash

  bscpylgtvcommand 192.168.1.18 write_dolby_vision_config_file "[{\"picture_mode\": \"dolby_cinema_dark\", \"white_level\": 750, \"primaries\": [0.6796, 0.3187, 0.2595, 0.6849, 0.1448, 0.0494]}]" -s

  bscpylgtvcommand 192.168.1.18 write_dolby_vision_config_file "[{\"white_level\": 750, \"primaries\": [0.6796, 0.3187, 0.2595, 0.6849, 0.1448, 0.0494]}]" true D:\temp -s

  bscpylgtvcommand 192.168.1.18 write_dolby_vision_config_file "[{\"picture_mode\": \"dolby_cinema_bright\", \"white_level\": 710, \"primaries\": [0.6796, 0.3187, 0.2595, 0.6849, 0.1448, 0.0494]}, {\"picture_mode\": \"dolby_cinema_dark\", \"white_level\": 750, \"primaries\": [0.6796, 0.3187, 0.2595, 0.6849, 0.1448, 0.0494]}, {\"picture_mode\": \"dolby_game\", \"white_level\": 680, \"primaries\": [0.6796, 0.3187, 0.2595, 0.6849, 0.1448, 0.0494]}]" -s
  ```



  - it can be used inside or outside of calibration mode as well
  - it can be broken in many defferent ways in a given firmware version / picture mode / etc
  - available only on supported (>=2019) models
  - 2019 models require Full Range 10 bit values (0-1023) using HDR10, while >=2020 models Limited Range 10 bit values (64-940)
  - all suported models require Full Range 10 bit values (0-1023) using DoVi
  - more useful example can be found in [docs/scripts](https://github.com/chros73/bscpylgtv/tree/master/docs/scripts/lg-itpg-manual-measure-from-csv.py) directory.

  ```bash

  bscpylgtvcommand 192.168.1.18 set_itpg_patch_window 0 0 0 0 3840 2160 0 0

  bscpylgtvcommand 192.168.1.18 set_itpg_patch_window 0 1023 0 1

  bscpylgtvcommand 192.168.1.18 toggle_itpg true 2

  bscpylgtvcommand 192.168.1.18 toggle_itpg false 0


  bscpylgtvcommand 192.168.1.18 set_itpg_patch_window 0 1023 0 0

  bscpylgtvcommand 192.168.1.18 toggle_itpg true 1

  bscpylgtvcommand 192.168.1.18 toggle_itpg false 0
  ```

  Displaying gradation window:
  ```bash

  bscpylgtvcommand 192.168.1.18 set_itpg_gradation_window 0 3 0 0 0 1 1 1

  bscpylgtvcommand 192.168.1.18 toggle_itpg true 1 1

  bscpylgtvcommand 192.168.1.18 set_itpg_gradation_window 0 1 0 0 0 1 1 1

  bscpylgtvcommand 192.168.1.18 toggle_itpg true 1 2

  bscpylgtvcommand 192.168.1.18 set_itpg_gradation_window 0 3 610 520 230 1 1 1
  bscpylgtvcommand 192.168.1.18 set_itpg_gradation_window 1 3 610 50 23 1 1 1
  bscpylgtvcommand 192.168.1.18 toggle_itpg true 2 1

  bscpylgtvcommand 192.168.1.18 toggle_itpg false 0
  ```



  A collection of calibration guides can be found under [docs directory](https://github.com/chros73/bscpylgtv/tree/master/docs/guides/).






  A collection of useful commands and scripts are available under [docs/utils](https://github.com/chros73/bscpylgtv/tree/master/docs/utils) directory to add support for new firmwares in the future and make PRs easier to do.



  Only 3D LUT and Dolby Vision config related calibration commands require chip type to be present to work properly, utilising `calibration_support_info` method.
  The `model_name` field of the response of `get_software_info` method contains the chip type:
  ```bash
  bscpylgtvcommand 192.168.1.18 get_software_info true
  ```



  Required extra packages:
  ```bash
  pip install numpy pytest pytest-asyncio pytest-mock
  ```

  Running unit tests against the installed package:
  ```bash

  pytest tests

  pytest tests/test_webos_client_lite.py

  pytest tests/test_webos_client_calibration.py -k test_set_ui_data_methods
  ```




  Forum [topic](https://forum.doom9.org/showthread.php?t=175007).




  Thanks to the following people:
  - [TheRealLink](https://github.com/TheRealLink/pylgtv) for the original implementation
  - [bendavid](https://github.com/bendavid/aiopylgtv) for lot of modification, especially with calibration functionality
  - [Maassoft](https://github.com/Maassoft/ColorControl) for useful ideas
  - Hifi4Vision for his invaluable calibration knowledge


pkgId: 3ca617d1ab85abea5506c8627d3277888155939a38830f2c833d729801555702
name: python-bsedata
arch: src
version: 0.6.0
epoch: 0
release: 1
summary: A package for fetching data from BSE
url: https://github.com/sdabhi23/bsedata
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bsedata-0.6.0-1.src.rpm
checksum_type: sha256
description:
  [![PyPi Version](https://img.shields.io/pypi/v/bsedata.svg)](https://pypi.org/project/bsedata/)
  [![PyPi License](https://img.shields.io/pypi/l/bsedata.svg)](https://pypi.org/project/bsedata/)
  [![PyPi PyVersions](https://img.shields.io/pypi/pyversions/bsedata.svg)](https://pypi.org/project/bsedata/)
  [![PyPi Format](https://img.shields.io/pypi/format/bsedata.svg)](https://pypi.org/project/bsedata/)

  Python library for extracting real-time data from Bombay Stock Exchange (India).

  | Tests on `master` branch                  | Tests on `dev` branch               | Code coverage                                 | Documentation                         |
  | ----------------------------------------- | ----------------------------------- | --------------------------------------------- | ------------------------------------- |
  | [![tests master][testsmaster]][testsmasterlink] | [![tests dev][testsdev]][testsdevlink] | [![code coverage][codecovbadge]][codecovlink] | [![documentation][docbadge]][doclink] |

  [testsmaster]: https://github.com/sdabhi23/bsedata/actions/workflows/dev-tests.yml/badge.svg?branch=master
  [testsdev]: https://github.com/sdabhi23/bsedata/actions/workflows/dev-tests.yml/badge.svg?branch=dev
  [testsmasterlink]: https://github.com/sdabhi23/bsedata/actions/workflows/dev-tests.yml?query=branch%3Amaster
  [testsdevlink]: https://github.com/sdabhi23/bsedata/actions/workflows/dev-tests.yml?query=branch%3Adev
  [codecovbadge]: https://codecov.io/gh/sdabhi23/bsedata/branch/master/graph/badge.svg?token=QI8ZPA6ODL
  [codecovlink]: https://codecov.io/gh/sdabhi23/bsedata
  [docbadge]: https://readthedocs.org/projects/bsedata/badge/?version=latest
  [doclink]: https://bsedata.readthedocs.io/en/latest/?badge=latest



  bsedata is a library for collecting real-time data from Bombay Stock Exchange (India). It can be used in various types of projects which require getting live quotes for a given stock or index or build large data sets for data analysis.

  The data is as accurate as provided on the [BSE website](m.bseindia.com).

  > **Please do not use this application for production usage. It is best used for learning and building application for your own use. For commercial application you better buy a data service.**
  >
  > **This library uses MIT license hence liability lies with the user and not the author of the application.**
  >
  > **As per India's IT act it is no where mentioned that we cannot scrape a website. It's up to me whether I consume the publicly available data "visually" or through my programme or using some kind of "web reader". As long as data you are scrapping is available in public domain and you are not breaching security and accessing data of private nature with malicious intent, it cannot be termed as illegal.**
  >
  > **But it can certainly be termed "unethical" (which is equally bad) since you are damaging the service itself. Hence be prudent about how much stress you cause to the backend. BSE's website is very capable and even they will not mind if someone is scrapping their website for educational purposes.**



  - Getting live quotes using stock codes in Python dicttionaries
  - Getting list of top losers
  - Getting list of top gainers
  - Getting quotes for all the indices traded in BSE
  - Helper APIs to check whether a given stock code or index code is correct
  - Getting list of all indices and stocks



  - Get details of an individual index
  - Complete unit test coverage
  - Daily OHLCV data



  - [BeautifulSoup 4](https://www.crummy.com/software/BeautifulSoup/bs4/doc/)
  - [Requests](http://docs.python-requests.org/en/master/)
  - [lxml](https://lxml.de/)
  - A working internet connection :wink:



  Refer the documentation at <https://bsedata.readthedocs.io/en/latest/usage.html>



  Refer the documentation at <https://bsedata.readthedocs.io/en/latest/chglog.html>



  MIT License

  Copyright (c) 2018 - 2024 Shrey Dabhi

  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: 61f686a401139c84c5a984aed1a7d6707bd139cc2fcefc0eaac23dd8fd949025
name: python-bsky-bridge
arch: src
version: 1.0.4
epoch: 0
release: 1
summary: A Python interface for interacting with the BlueSky social network's API.
url: https://github.com/4xe1/bsky-bridge
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bsky-bridge-1.0.4-1.src.rpm
checksum_type: sha256
description:
    

    `bsky-bridge` is a Python library designed to bridge the interaction between Python applications and the BlueSky Social Network via its API.

    

    - [Features](#features)
    - [Installation](#installation)
    - [Usage](#usage)
      - [Creating a Session](#creating-a-session)
      - [Posting Content](#posting-content)
      - [Posting Images](#posting-images)
    - [Contribution](#contribution)
    - [License](#license)

    

    - Easy authentication with the BlueSky API.
    - Functions to post text and images to BlueSky via the API.
    - Parser to identify and extract mentions (@handle), links (URLs), and hashtags (#tags) from text, useful for processing and formatting posts.

    

    ```bash
    pip install bsky-bridge
    ```

    

    

    Start by establishing a session with your BlueSky handle and **App passwords** *(To be created in your account settings)*:

    ```python
    from bsky_bridge import BskySession

    session = BskySession("your_handle.bsky.social", "your_APPpassword")
    ```

    

    After initializing a session, you can post text to BlueSky:

    ```python
    from bsky_bridge import BskySession, post_text

    session = BskySession("your_handle.bsky.social", "your_APPpassword")

    response = post_text(session, "Hello BlueSky!")
    print(response)
    ```

    

    To post images along with text, you can use the `post_image` method:

    ```python
    from bsky_bridge import BskySession, post_image

    session = BskySession("your_handle.bsky.social", "your_APPpassword")

    postText = "Check out this cool image!"
    imagePath = "path_to_your_image.jpeg"
    altText = "An awesome image"
    response = post_image(session, postText, imagePath, altText)
    print(response)
    ```

    **Note**: The library automatically handles resizing and compressing larger images to ensure they do not exceed 1 MB in size, all while maintaining a quality balance. This ensures efficient and quick image uploads.

    

    Contributions are welcome! Please submit issues for any bug or problem you discover, and pull requests for new features or fixes.

    

    [MIT License](LICENSE)


pkgId: f5f1cbd4d915909bf875341b69a0b065468cc92fd90ca86529ac0c993202ea93
name: python-bskyshell
arch: src
version: 0.1.0
epoch: 0
release: 1
summary: Add your description here
url: https://pypi.org/project/bskyshell/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bskyshell-0.1.0-1.src.rpm
checksum_type: sha256
description:
  A python CLI to BlueSky.

  Never leave your shell! Check-in on BlueSky or automate using BlueSky Shell.



  - `pip install bskyshell`
  - `pipx install bskyshell`



  - `bsky` to open application.
  - `bsky post` to post.


pkgId: 9f89921cf4f02acb6d43b5d66280c592ee1160cd78c18facf5b19fd4a765e7bf
name: python-bsmplot
arch: src
version: 0.2.3
epoch: 0
release: 1
summary: bsmplot is a tool to visualize time series
url: https://github.com/tianzhuqiao/bsmplot
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bsmplot-0.2.3-1.src.rpm
checksum_type: sha256
description:
  **bsmplot** is a cross-platform tool to visualize time series based on [Matplotlib](https://matplotlib.org/) and [wxPython](https://wxpython.org/). Supported data source
  - VCD (value change dump)
  - PX4 [ulog](https://docs.px4.io/main/en/dev_log/ulog_file_format.html)
  - CSV
  - Matlab .mat
  - [ZMQ](https://zeromq.org/) subscriber

  To install
  ```
  $ pip install bsmplot
  ```
  To start
  ```
  $ bsmplot
  ```
  Add shortcut to desktop and/or Start Menu
  ```
  $ bsmplot --init
  ```
  <img src="https://github.com/tianzhuqiao/bsmplot/blob/main/docs/bsmplot.png?raw=true" width="865" height="575"></img>

rpm_license:
  MIT License  Copyright (c) 2024 Tianzhu Qiao  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: 1055f04758f47e6cdc26476744ae2456676ebaee28aa4fd8ea7355c69f552954
name: python-bsmplot
arch: src
version: 0.2.5
epoch: 0
release: 1
summary: bsmplot is a tool to visualize time series
url: https://github.com/tianzhuqiao/bsmplot
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bsmplot-0.2.5-1.src.rpm
checksum_type: sha256
description:
  **bsmplot** is a cross-platform tool to visualize time series based on [Matplotlib](https://matplotlib.org/) and [wxPython](https://wxpython.org/).

  <img src="./docs/bsmplot.png?raw=true" width="865"></img>


  ```
  $ pip install bsmplot
  ```

  To start from terminal
  ```
  $ bsmplot
  ```

  Add shortcut to desktop / Start Menu
  ```
  $ bsmplot --init
  ```


  - VCD (value change dump)
  - PX4 [ulog](https://docs.px4.io/main/en/dev_log/ulog_file_format.html)
  - CSV
  - Matlab (.mat)
  - [ZMQ](https://zeromq.org/) subscriber


  To plot the data, simply double click a signal. It will either plot on the current figure window, or create one (if there is no figure window) then plot.

  <img src="./docs/plot.png?raw=true" width="600"></img>

  You can also drag the signal to the figure window.

  If the data has timestamp field (e.g., ulog), it will be used as the x-axis data; otherwise (e.g., csv), the x-axis will be the index by default. And you can also set some signal as x-axis data, which will be shown in **bold**.

  <img src="./docs/plot3.png?raw=true" width="600"></img>

  Many operations of the figure can be done in the context menu (right click), and the toolbar on top. For example, to create a subplot with shared x-axis,

  <img src="./docs/plot2.png?raw=true" width="600"></img>



  To process the data, right click the signal, and select the function to run. Following functions are predefined

  1. Quaternion to Yaw/Pitch/Roll
  2. Radian to degree
  3. Degree to Radian
  4. Moving average

  <img src="./docs/quat2angle.png?raw=true" width="600"></img>

  If you are familiar with python code, you can add your own functions. You basically need to define the **inputs**, **equation**, and **outputs**. The number of **outputs** must match the actual ones returned from the **equation**.

  <img src="./docs/addfunc.png?raw=true" width="400"></img>

  If the processing is too complicated, you can also export the data to shell: right click -> Export to shell (or Export to shell with timestamp if available)

  <img src="./docs/exportdata.png?raw=true" width="600"></img>

  Then in the shell, you can access the exported data, and run any python command.

  <img src="./docs/exportdata2.png?raw=true" width="600"></img>

rpm_license:
  MIT License  Copyright (c) 2024 Tianzhu Qiao  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: 55d0d122ff506f228460ba90808e4a14cbc3043f5cc3359183a1a4570adf7ec5
name: python-bspline-sampler
arch: src
version: 0.1.5
epoch: 0
release: 1
url: https://github.com/jeffrey-cochran/sampler
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bspline-sampler-0.1.5-1.src.rpm
checksum_type: sha256
summary:
  A simple tool for sampling B-spline coefficients distributed as Gaussian Random Fields, subject to constraints.

description:
  A simple tool for sampling B-spline coefficients distributed as Gaussian Random Fields, subject to constraints.


pkgId: 77c4f4a0641dd4b2db7718bf40852f400d4abb11df9ef48a29bdd14be7bfee55
name: python-bssclient
arch: src
version: 0.1.3
epoch: 0
release: 1
summary: Fully typed, async client library for Basic Supply Service (BSS)
url: https://github.com/Hochfrequenz/bssclient.py
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bssclient-0.1.3-1.src.rpm
checksum_type: sha256
description:
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
  ![Python Versions (officially) supported](https://img.shields.io/pypi/pyversions/bssclient.svg)
  ![Pypi status badge](https://img.shields.io/pypi/v/bssclient)
  ![Unittests status badge](https://github.com/Hochfrequenz/bssclient.py/workflows/Unittests/badge.svg)
  ![Coverage status badge](https://github.com/Hochfrequenz/bssclient.py/workflows/Coverage/badge.svg)
  ![Linting status badge](https://github.com/Hochfrequenz/bssclient.py/workflows/Linting/badge.svg)
  ![Black status badge](https://github.com/Hochfrequenz/bssclient.py/workflows/Formatting/badge.svg)

  This repository contains the package `bssclient`.
  It is an async, fully typed Python client for the Basic Supply Service (BSS).

  Its features are handwritten and extended as we need them.
  So it is _not_ autogenerated from the BSS OpenAPI.


  Install it [from PyPI](https://pypi.org/project/bssclient/):
  ```bash
  pip install bssclient
  ```



  ```python
  from yarl import URL
  from bssclient import bssclient, BssConfig

  bss_config = BssConfig(
      server_url=URL("https://my-bss.xtk-test.org/"),
      usr="my-usr",
      pwd="my-pwd",
  )
  client = bssclient(bss_config)
  ermittlungsauftraege = await client.get_all_ermittlungsauftraege()
  ```

  Even though we did not fully replicate the BSS data model,
  we tried to make the client as flexible as possible.
  You can use any unmapped field returned by TMDS by using the [`model_extra` property of pydantic](https://docs.pydantic.dev/latest/api/base_model/#pydantic.BaseModel.model_extra).


  For development of this library, follow the instructions in our [Python Template Repository](https://github.com/Hochfrequenz/python_template_repository).
  tl;dr: `tox -e dev` will set up a development environment for you.



  To release a new version of this library, [create a new release](https://github.com/Hochfrequenz/bssclient.py/releases/new) in GitHub.
  Make sure its tag starts with `v` and the version number, e.g. `v1.2.3`.
  Releases are not restricted to the main branch, but we prefer them to happen there.


  You are very welcome to contribute to this template repository by opening a pull request against the main branch.


pkgId: c2d384c68c35157d01727bb433707e1fbce61c026f625329ef8389c30ffcf939
name: python-bst-plugins-experimental
arch: src
version: 1.100.1
epoch: 0
release: 1
summary: A collection of experimental BuildStream plugins.
url: https://buildstream.gitlab.io/bst-plugins-experimental/
rpm_license: LGPL-2.1-or-later
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bst-plugins-experimental-1.100.1-1.src.rpm
checksum_type: sha256
description:
  The plugins in this repo do not provide strong API guarantees or backwards
  compatibility. You should use a specific commit in your project and update it
  manually as needed.
  You are recommended to import these plugins into your project using the
  `junction plugins <https://docs.buildstream.build/master/format_project.html#junction-plugins>`_
  feature of BuildStream 2.0 so you can control exactly what Git commit is used.
  This is done in several stages documented below:
  Using via a junction
  ~~~~~~~~~~~~~~~~~~~~
  First, make sure you have the ``git`` source from
  `buildstream-plugins`_
  available and declared in your ``project.conf`` file. If you installed
  the `PyPI package <https://pypi.org/project/buildstream-plugins/>`_
  then you can import it as a
  `pip plugin <https://docs.buildstream.build/master/format_project.html#pip-plugins>`_::
      plugins:
      - origin: pip
        package-name: buildstream-plugins
        sources:
        - git
  Now, add a
  `junction element <https://docs.buildstream.build/master/elements/junction.html#module-elements.junction>`_
  referencing this repo. Here's an example you could save as ``bst-plugins-experimental.bst``
  in your elements directory::
      kind: junction
      sources:
      - kind: git
        url: https://gitlab.com/BuildStream/bst-plugins-experimental
        track: master
  You can then run ``bst source track bst-plugins-experimental.bst`` to set the ``ref`` field
  appropriately.
  Finally you can define specific plugins you want to use in ``project.conf``::
      plugins:
      - origin: junction
        junction: bst-plugins-experimental.bst
        sources:
        - pypi
        elements:
        - pep517
  Alternative methods
  ~~~~~~~~~~~~~~~~~~~
  You can use Git's 'submodules' feature to import this repo into your project's
  repo, then declare the plugins as
  `local plugins <https://docs.buildstream.build/master/format_project.html#local-plugins>`_.
  BuildStream also supports
  `pip plugins <https://docs.buildstream.build/master/format_project.html#pip-plugins>`_
  which are imported from the host Python environment. While
  `bst-plugins-experimental <https://pypi.org/project/bst-plugins-experimental/>`_
  is available on PyPI, the project does not provide any backwards compatibility
  or "semantic versioning" guarantees. Make sure you can control exactly what of
  the package version is used if you consume it via Pip.


pkgId: 253335629a191e5fe54c1899661aeb2b5902ec3c5155b39f242a32b88ce1fcd2
name: python-bstk-notitia
arch: src
version: 0.6.6
epoch: 0
release: 1
summary: notitia core runtime & modules
url: https://pypi.org/project/bstk-notitia/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bstk-notitia-0.6.6-1.src.rpm
checksum_type: sha256
description:
  ```python
  import motor.motor_asyncio
  from bstk_notitia import Notitia










  motor_client = motor.motor_tornado.AsyncIOMotorClient(host=['localhost:27017'])

  notitia = Notita(
      department="08e32fd8-9259-4a3e-891a-bc39b7c8ef22", # [str | None] - for tenancy isolation
  )

  notitia.set_driver(
      driver="mongodb"
      driver_settings={
          "async_client": motor_client,
          "database": 'myappdb',
          "collection_prefix": "bn_",
          "archive_suffix": "_arch",
          "completion_action": "immoliate",
      },
  )

  notitia.enlist(investigator="portaone/espf")

  espf_payload = {
      "event-type": "Test/Event",
      "variables": {
          "i_event": 1,
          "i_account": 999
      }
  }


  try:
      case = await notitia.dispatch(
          observer="portaone/espf",
          information=espf_payload,
          completion_action="archive". # [archive | immoliate | None]
      )
      print(f"Tracking case as {case.number}")
  except NotitiaInvalidCasePayloadException as ex:
      print(f"Invalid Payload: {ex.message}")

  async for movement in notitia.spy(case):
      print(f"Case moved {movement.id}")


  ```


pkgId: 495f77428f3aee309dea12c5e8cc1d951a501984b5bdbc6d1df2ff1bc1bdc8da
name: python-bstrap
arch: src
version: 0.0.9
epoch: 0
release: 1
summary: A package to perform hypothesis testing and compute confidence intervals using bootstrapping.
url: https://github.com/fpgdubost/bstrap
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bstrap-0.0.9-1.src.rpm
checksum_type: sha256
description:
  <h1>Bstrap: A Python Package for confidence intervals and hypothesis testing using bootstrapping.</h1>

  You are an **amazing machine learning researcher**.

  You invented a new **super cool method**.

  You are **not sure that it is significantly better** than your baseline.

  You don't have 3000 GPUs to rerun your experiment and check it out.

  Then, what you want to do is **bootstrap your results**!

  The bstrap package allows you to compare two methods and claim that one is better than the other.



  ```bash
  pip install bstrap
  ```
  That's all you need, really.

  Maybe tough, you can still read the instructions and check out the examples to make sure you get it right...


  Bootstrapping is a simple method to compute statistics over your custom metrics, using only one run of the method for each sample in your evaluation set. It has the advantage of being very versatile, and can be used with any metric really.

  <ul>
    <li>Bootstrapping for computation of confidence interval</li>
    <li>Bootstrapping for hypothesis testing (claim that one method is better than another for a given metric)</li>
    <li>Supports metrics that can be computed sample-wise and metrics that cannot.</li>
  </ul>

  Keep in mind: non-overlapping confidence intervals means that there is a significant statistical difference. Overlapping confidence intervals does not mean that there is no significant statistical difference. To verify this further, you will need to compute the bootstrap hypothesis testing and check the p-value.



  You will need to implement your metric and provide the data sample-wise as a single Pandas dataframe for each method. That's about it.
  Your metric is more complex than simply averaging results for each sample? For example, you cannot compute sample-wise, maybe like AUC or mAP? Then just give your predictions and ground truths sample-wise, which also works with Boostrap.

  To use this code, you need to:

  <ol>
    <li>Implement your own metric: should take the one pandas dataframe of data as input and return a scalar value.</li>
    <li>Load your data.</li>
    <li>Reformat data to a single pandas dataframe per method with standardized column names, and one sample per row.</li>
    <li>Check that your estimates (confidence interval and p-value) are stable over several runs of the bootstrapping method. If the estimates are not stable, increase nbr_runs</li>
  </ol>

  Enjoy!



  You can find example dataframes under src/bstrap/example_dataframes.


  ```python
  import pandas as pd
  import numpy as np
  from bstrap import bootstrap, boostrapping_CI


  metric = np.mean


  df = pd.read_csv("example_dataframes/example_dataframe_mean.csv")


  data_method1 = df["loss_method_1"]
  data_method2 = df["loss_method_2"]


  stats_method1, stats_method2, p_value = bootstrap(metric, data_method1, data_method2, nbr_runs=1000)
  print(stats_method1)
  print(stats_method2)
  print(p_value)


  stats_method1 = boostrapping_CI(metric, data_method1, nbr_runs=1000)
  stats_method2 = boostrapping_CI(metric, data_method2, nbr_runs=1000)
  print(stats_method1)
  print(stats_method2)
  ```



  ```python
  import pandas as pd
  import sys
  from bstrap import bootstrap, boostrapping_CI


  def compute_f1(data):
      val_target = data["gt"].astype('bool')
      val_predict = data["predictions"].astype('bool')
      tp = np.count_nonzero(val_target * val_predict)
      fp = np.count_nonzero(~val_target * val_predict)
      fn = np.count_nonzero(val_target * ~val_predict)
      return tp * 1. / (tp + 0.5 * (fp + fn) + sys.float_info.epsilon)
  metric = compute_f1


  df = pd.read_csv("example_dataframes/example_dataframe_f1.csv")


  data_method1 = df[["gt", "method1"]]
  data_method1 = data_method1.rename(columns={"method1": "predictions"})
  data_method2 = df[["gt", "method2"]]
  data_method2 = data_method2.rename(columns={"method2": "predictions"})


  stats_method1, stats_method2, p_value = bootstrap(metric, data_method1, data_method2, nbr_runs=1000)
  print(stats_method1)
  print(stats_method2)
  print(p_value)


  stats_method1 = boostrapping_CI(metric, data_method1, nbr_runs=1000)
  stats_method2 = boostrapping_CI(metric, data_method2, nbr_runs=1000)
  print(stats_method1)
  print(stats_method2)
  ```


  ```python
  import pandas as pd
  from sklearn.metrics import auc, roc_curve
  from bstrap import bootstrap, boostrapping_CI


  def compute_auc(data):
      fpr, tpr, thresholds = roc_curve(data["gt"], data["predictions"], pos_label=1)
      return auc(fpr, tpr)
  metric = compute_auc


  df = pd.read_csv("example_dataframes/example_dataframe_auc.csv")


  data_method1 = df[["gt", "method1"]]
  data_method1 = data_method1.rename(columns={"method1": "predictions"})
  data_method2 = df[["gt", "method2"]]
  data_method2 = data_method2.rename(columns={"method2": "predictions"})


  stats_method1, stats_method2, p_value = bootstrap(metric, data_method1, data_method2, nbr_runs=1000)
  print(stats_method1)
  print(stats_method2)
  print(p_value)


  stats_method1 = boostrapping_CI(metric, data_method1, nbr_runs=1000)
  stats_method2 = boostrapping_CI(metric, data_method2, nbr_runs=1000)
  print(stats_method1)
  print(stats_method2)
  ```



  ```python
  import pandas as pd
  from sklearn.metrics import roc_curve
  from bstrap import bootstrap, boostrapping_CI


  def compute_mAP(data):
      gt = data[[column for column in data.columns if 'gt' in column]]
      predictions = data[[column for column in data.columns if 'pred' in column]]
      return average_precision_score(gt, predictions, average='weighted')
  metric = compute_mAP


  gt = pd.read_csv("example_dataframes/example_dataframe_mAP_gt.csv")
  predictions_method1 = pd.read_csv("example_dataframes/example_dataframe_mAP_predictions_method1.csv")
  predictions_method2 = pd.read_csv("example_dataframes/example_dataframe_mAP_predictions_method2.csv")


  gt = gt.rename(columns=dict([(column, 'gt_' + column) for column in gt.columns]))
  predictions_method1 = predictions_method1.rename(
      columns=dict([(column, 'pred_' + column) for column in predictions_method1.columns]))
  predictions_method2 = predictions_method2.rename(
      columns=dict([(column, 'pred_' + column) for column in predictions_method2.columns]))
  data_method1 = pd.concat([gt, predictions_method1], axis=1)
  data_method2 = pd.concat([gt, predictions_method2], axis=1)


  stats_method1, stats_method2, p_value = bootstrap(metric, data_method1, data_method2, nbr_runs=100)
  print(stats_method1)
  print(stats_method2)
  print(p_value)


  stats_method1 = boostrapping_CI(metric, data_method1, nbr_runs=100)
  stats_method2 = boostrapping_CI(metric, data_method2, nbr_runs=100)
  print(stats_method1)
  print(stats_method2)
  ```

  <b>Reference:</b><br/>
  Efron, B. and Tibshirani, R.J., 1994. An introduction to the bootstrap. CRC press.


pkgId: b8f71c150f0fea3d0ccb63e1a4b78ee56950ca9272690c39ac5ce90812047783
name: python-bsv-sdk
arch: src
version: 0.5.2
epoch: 0
release: 1
summary: BSV BLOCKCHAIN | Software Development Kit for Python
url: https://github.com/bitcoin-sv/py-sdk
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bsv-sdk-0.5.2-1.src.rpm
checksum_type: sha256
description:
  [![build](https://github.com/bitcoin-sv/py-sdk/actions/workflows/build.yml/badge.svg)](https://github.com/bitcoin-sv/py-sdk/actions/workflows/build.yml)
  [![PyPI version](https://img.shields.io/pypi/v/bsv-sdk)](https://pypi.org/project/bsv-sdk)
  [![Python versions](https://img.shields.io/pypi/pyversions/bsv-sdk)](https://pypi.org/project/bsv-sdk)

  Welcome to the BSV Blockchain Libraries Project, the comprehensive Python SDK designed to provide an updated and unified layer for
  developing scalable applications on the BSV Blockchain. This SDK addresses the limitations of previous tools by offering a fresh,
  peer-to-peer approach, adhering to SPV, and ensuring privacy and scalability.



  1. [Objective](#objective)
  2. [Getting Started](#getting-started)
  3. [Features & Deliverables](#features--deliverables)
  4. [Documentation](#documentation)
  5. [Contribution Guidelines](#contribution-guidelines)
  6. [Support & Contacts](#support--contacts)



  The BSV Blockchain Libraries Project aims to structure and maintain a middleware layer of the BSV Blockchain technology stack. By
  facilitating the development and maintenance of core libraries, it serves as an essential toolkit for developers looking to build on the BSV
  Blockchain.





  ```bash
  pip install bsv-sdk
  ```



  ```python
  import asyncio
  from bsv import (
      PrivateKey, P2PKH, Transaction, TransactionInput, TransactionOutput
  )



  PRIVATE_KEY = 'KyEox4cjFbwR---------VdgvRNQpDv11nBW2Ufak'


  SOURCE_TX_HEX = '01000000018128b0286d9c6c7b610239bfd8f6dcaed43726ca57c33aa43341b2f360430f23020000006b483045022100b6a60f7221bf898f48e4a49244e43c99109c7d60e1cd6b1f87da30dce6f8067f02203cac1fb58df3d4bf26ea2aa54e508842cb88cc3b3cec9b644fb34656ff3360b5412102cdc6711a310920d8fefbe8ee73b591142eaa7f8668e6be44b837359bfa3f2cb2ffffffff0201000000000000001976a914dd2898df82e086d729854fc0d35a449f30f3cdcc88acce070000000000001976a914dd2898df82e086d729854fc0d35a449f30f3cdcc88ac00000000'

  async def create_and_broadcast_transaction():
      priv_key = PrivateKey(PRIVATE_KEY)
      source_tx = Transaction.from_hex(SOURCE_TX_HEX)

      tx_input = TransactionInput(
          source_transaction=source_tx,
          source_txid=source_tx.txid(),
          source_output_index=1,
          unlocking_script_template=P2PKH().unlock(priv_key),
      )

      tx_output = TransactionOutput(
          locking_script=P2PKH().lock(priv_key.address()),
          change=True
      )

      tx = Transaction([tx_input], [tx_output], version=1)

      tx.fee()
      tx.sign()

      await tx.broadcast()

      print(f"Transaction ID: {tx.txid()}")
      print(f"Raw hex: {tx.hex()}")

  if __name__ == "__main__":
      asyncio.run(create_and_broadcast_transaction())
  ```

  For a more detailed tutorial and advanced examples, check our [Documentation](#documentation).



  - **Main Project Feature**: Description of the feature

  - **Main Project Feature 2**: Description of the feature

  - **Secondary Project Feature**: Description of the feature



  Detailed documentation of the SDK with code examples can be found at [BSV Skills Center](https://docs.bsvblockchain.org/guides/sdks/py).



  We're always looking for contributors to help us improve the project. Whether it's bug reports, feature requests, or pull requests - all
  contributions are welcome.

  1. **Fork & Clone**: Fork this repository and clone it to your local machine.
  2. **Set Up**: Run `pip install -r requirements.txt` to install all dependencies.
  3. **Make Changes**: Create a new branch and make your changes.
  4. **Test**: Ensure all tests pass by running `pytest --cov=bsv --cov-report=html`.
  5. **Commit**: Commit your changes and push to your fork.
  6. **Pull Request**: Open a pull request from your fork to this repository.

  For more details, check the [contribution guidelines](./CONTRIBUTING.md).

  For information on past releases, check out the [changelog](./CHANGELOG.md). For future plans, check the [roadmap](./ROADMAP.md)!



  Project Owners: `<names and email addresses>`

  Development Team Lead: `<name and email>`

  For questions, bug reports, or feature requests, please open an issue on GitHub or contact us directly.



  The license for the code in this repository is the Open BSV License. Refer to [LICENSE.txt](./LICENSE.txt) for the license text.

  Thank you for being a part of the BSV Blockchain ecosystem. Let's build the future of BSV Blockchain together!


pkgId: 38812e11527569208ac2fa6844092494e5e5369e68579b3473cb9fcf71bfeb99
name: python-bsvlib
arch: src
version: 0.10.0
epoch: 0
release: 1
summary: Bitcoin SV (BSV) Python Library
url: https://github.com/gitzhou/bsvlib
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bsvlib-0.10.0-1.src.rpm
checksum_type: sha256
description:
  [![build](https://github.com/gitzhou/bsvlib/actions/workflows/build.yml/badge.svg)](https://github.com/gitzhou/bsvlib/actions/workflows/build.yml)
  [![codecov](https://codecov.io/gh/gitzhou/bsvlib/branch/master/graph/badge.svg?token=ZD1AS8JG9W)](https://codecov.io/gh/gitzhou/bsvlib)
  [![PyPI version](https://img.shields.io/pypi/v/bsvlib)](https://pypi.org/project/bsvlib)
  [![Python versions](https://img.shields.io/pypi/pyversions/bsvlib)](https://pypi.org/project/bsvlib)
  [![MIT license](https://img.shields.io/badge/license-MIT-blue)](https://en.wikipedia.org/wiki/MIT_License)

  A Bitcoin SV (BSV) Python Library that is extremely simple to use but more.

  - MAINNET and TESTNET supported
  - P2PKH, P2PK, and bare-multisig supported
  - All the SIGHASH flags supported
  - Additional script types can be customized
  - [WhatsOnChain](https://developers.whatsonchain.com/) API integrated
  - Ability to adapt to different service providers
  - Fully ECDSA implementation
  - ECDH and Electrum ECIES (aka BIE1) implementation
  - HD implementation (BIP-32, BIP-39, BIP-44)



  ```
  $ pip install bsvlib
  ```



  1. Send BSV in one line

  ```python
  from bsvlib import Wallet


  outputs = [('1HYeFCE2KG4CW4Jwz5NmDqAZK9Q626ChmN', 724996)]
  print(Wallet(['YOUR_WIF']).create_transaction(outputs=outputs).broadcast())
  ```

  2. Send unspent locked by different keys in one transaction, support OP_RETURN output as well

  ```python
  from bsvlib import Wallet
  from bsvlib.constants import Chain

  w = Wallet(chain=Chain.TEST)

  w.add_key('cVwfreZB3i8iv9JpdSStd9PWhZZGGJCFLS4rEKWfbkahibwhticA')
  w.add_key('93UnxexmsTYCmDJdctz4zacuwxQd5prDmH6rfpEyKkQViAVA3me')
  print(w.get_balance(refresh=True))

  outputs = [('mqBuyzdHfD87VfgxaYeM9pex3sJn4ihYHY', 724), ('mr1FHq6GwWzmD1y8Jxq6rNDGsiiQ9caF7r', 996)]
  pushdatas = ['hello', b'world']
  print(w.create_transaction(outputs=outputs, pushdatas=pushdatas, combine=True).broadcast())
  ```

  3. Operate P2PK

  ```python
  import time

  from bsvlib import Wallet, TxOutput, Transaction
  from bsvlib.constants import Chain
  from bsvlib.keys import Key
  from bsvlib.script import P2pkScriptType

  chain = Chain.TEST

  k = Key('cVwfreZB3i8iv9JpdSStd9PWhZZGGJCFLS4rEKWfbkahibwhticA')
  p2pk_output = TxOutput(P2pkScriptType.locking(k.public_key().serialize()), 996, P2pkScriptType())

  unspents = Wallet(chain=chain).add_keys([k, '93UnxexmsTYCmDJdctz4zacuwxQd5prDmH6rfpEyKkQViAVA3me']).get_unspents(refresh=True)
  t = Transaction(chain=chain).add_inputs(unspents).add_output(p2pk_output).add_change(k.address()).sign()
  print('create p2pk:', t.broadcast())

  time.sleep(2)
  unspents = t.to_unspents(args=[{'private_keys': [k]}] * 2)
  t = Transaction(chain=chain).add_inputs(unspents).add_change(k.address()).sign()
  print('sepnd p2pk:', t.broadcast())
  ```

  4. Operate bare-multisig

  ```python
  import time
  from typing import List, Union

  from bsvlib import Key, Unspent, Transaction, TxOutput
  from bsvlib.constants import Chain
  from bsvlib.script import BareMultisigScriptType, Script
  from bsvlib.service import WhatsOnChain

  k1 = Key('cVwfreZB3i8iv9JpdSStd9PWhZZGGJCFLS4rEKWfbkahibwhticA')
  k2 = Key('93UnxexmsTYCmDJdctz4zacuwxQd5prDmH6rfpEyKkQViAVA3me')
  provider = WhatsOnChain(Chain.TEST)
  unspents = Unspent.get_unspents(provider=provider, private_keys=[k1])


  public_keys: List[Union[str, bytes]] = [k1.public_key().hex(), Key().public_key().hex(), k2.public_key().serialize()]
  multisig_script: Script = BareMultisigScriptType.locking(public_keys, 2)
  output = TxOutput(out=multisig_script, satoshi=1000, script_type=BareMultisigScriptType())


  t = Transaction(provider=provider).add_inputs(unspents).add_output(output).add_change().sign()
  r = t.broadcast()
  print(f'create multisig - {r}')
  assert r.propagated
  time.sleep(2)


  unspent = t.to_unspent(0, private_keys=[k1, k2])
  r = Transaction(provider=provider).add_input(unspent).add_change(k1.address()).sign().broadcast()
  print(f'spend multisig - {r}')
  ```

  5. Sign with different SIGHASH flags, [more examples](https://github.com/gitzhou/bsvlib/tree/master/examples)

  ```python
  from bsvlib import Key, Wallet, Transaction, TxInput, TxOutput
  from bsvlib.constants import SIGHASH, Chain
  from bsvlib.service import WhatsOnChain

  provider = WhatsOnChain(Chain.TEST)
  private_key = Key('cVwfreZB3i8iv9JpdSStd9PWhZZGGJCFLS4rEKWfbkahibwhticA')
  unspents = Wallet([private_key]).get_unspents(refresh=True, provider=provider)

  t = Transaction(provider=provider)
  t.add_input(TxInput(unspents[0], sighash=SIGHASH.SINGLE_FORKID))
  t.add_output(TxOutput(private_key.address(), 135))
  t.sign()


  print(t.add_change().broadcast())
  ```

  6. Sign arbitrary text with private key

  ```python
  from bsvlib import Key, verify_signed_text

  private_key = Key('L5agPjZKceSTkhqZF2dmFptT5LFrbr6ZGPvP7u4A6dvhTrr71WZ9')
  text = 'hello world'


  address, signature = private_key.sign_text(text)


  print(address, signature)


  print(verify_signed_text(text, address, signature))
  ```

  7. Encrypt message with public key, decrypt with the corresponding private key

  ```python
  from bsvlib import Key

  private_key = Key('L5agPjZKceSTkhqZF2dmFptT5LFrbr6ZGPvP7u4A6dvhTrr71WZ9')
  public_key = private_key.public_key()

  plain = 'hello world'


  encrypted = public_key.encrypt_text(plain)
  print(encrypted)


  print(private_key.decrypt_text(encrypted))
  ```

  8. Process HD wallet derivation

  ![image](https://user-images.githubusercontent.com/1585505/150875831-2663e158-b00d-4089-8276-1ad72e335d28.png)

  ```python
  from typing import List

  from bsvlib.hd import mnemonic_from_entropy, Xprv, derive_xprvs_from_mnemonic




  entropy = 'cd9b819d9c62f0027116c1849e7d497f'


  mnemonic: str = mnemonic_from_entropy(entropy)
  print(mnemonic)

  keys: List[Xprv] = derive_xprvs_from_mnemonic(mnemonic, path="m/44'/0'/0'", change=1, index_start=0, index_end=5)
  for key in keys:
      print(key.address(), key.private_key().wif())




  print()
  print(mnemonic_from_entropy())
  print(mnemonic_from_entropy(lang='en'))
  print(mnemonic_from_entropy(lang='zh-cn'))
  ```



  - [AustEcon / bitsv](https://github.com/AustEcon/bitsv)
  - [ofek / coincurve](https://github.com/ofek/coincurve/)
  - [btclib-org / btclib](https://github.com/btclib-org/btclib)
  - [@xiangpengm](https://github.com/xiangpengm)



  If you like my work or have found this library useful, feel free to donate me a cup of coffee.

  Every little satoshi helps. 👏

  ```
  1HYeFCE2KG4CW4Jwz5NmDqAZK9Q626ChmN
  ```

  ![](https://aaron67-public.oss-cn-beijing.aliyuncs.com/202201200232249.png?x-oss-process=image/resize,p_50)


pkgId: 2c7f5774a8b1c8e9e0c4e949449f3e4b0ce12fd2f7be0f2a2c310e059c5cc0ce
name: python-bsx-sdk-py
arch: src
version: 0.0.1b18
epoch: 0
release: 1
summary: please add a summary manually as the author left a blank one
url: https://pypi.org/project/bsx-sdk-py/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bsx-sdk-py-0.0.1b18-1.src.rpm
checksum_type: sha256
description:
  This is the Python SDK for the [BSX Exchange API](https://api-docs.bsx.exchange/reference/general-information).

  See [SDK docs](https://bsx-engineering.github.io) to get started.



  - Python 3.10 or above



  You can install the SDK via pip:

  ```bash
  pip install bsx-sdk-py
  ```





  ```python
  from eth_account import Account

  wallet_private_key = "0x0000000000000000000000000000000000000000000000000000000000000000"
  signer_private_key = "0x1111111111111111111111111111111111111111111111111111111111111111"
  wallet = Account.from_key(wallet_private_key)
  signer = Account.from_key(signer_private_key)
  ```



  ```python
  from eth_account import Account
  from bsx_py import BSXInstance, Environment

  wallet_private_key = "0x0000000000000000000000000000000000000000000000000000000000000000"
  signer_private_key = "0x1111111111111111111111111111111111111111111111111111111111111111"
  wallet = Account.from_key(wallet_private_key)
  signer = Account.from_key(signer_private_key)
  bsx_instance = BSXInstance(env=Environment.TESTNET, wallet=wallet, signer=signer)
  ```



  ```python
  from eth_account import Account
  from bsx_py import BSXInstance, Environment

  signer_private_key = "0x1111111111111111111111111111111111111111111111111111111111111111"
  signer = Account.from_key(signer_private_key)
  bsx_instance = BSXInstance.from_api_key(api_key="xxx", api_secret="zzz", signer=signer, env=Environment.TESTNET)
  ```



  ```python

  import time
  from decimal import Decimal
  from bsx_py.common.types.market import CreateOrderParams, Side, OrderType

  params = CreateOrderParams(
      type=OrderType.LIMIT,
      side=Side.BUY,
      product_index=3,
      price=Decimal("100"),
      size=Decimal("1"),
      time_in_force="GTC",
      nonce=int(time.time_ns()),
  )
  order = bsx_instance.create_order(params)
  print(order)
  ```

  See [Getting Started](https://bsx-engineering.github.io/getting-started.html) for more.



  1. Clone [github repo](https://github.com/bsx-engineering/bsx-python-sdk)

  2. Install poetry

  ```

  $ curl -sSL https://install.python-poetry.org | python3 -

  ```

  3. Setup a virtual environment and activate it

  ```

  $ python3 -m venv venv
  $ source ./venv/bin/activate

  ```

  4. Install dependencies via `poetry install`


pkgId: 06b8b5d8d452a6c4af9a938d5f3b5c3d695a45144b1dd5c8e3b3968ff00dc2a6
name: python-bt
arch: src
version: 1.1.0
epoch: 0
release: 1
summary: A flexible backtesting framework for Python
url: https://github.com/pmorissette/bt
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bt-1.1.0-1.src.rpm
checksum_type: sha256
description:
  ![](http://pmorissette.github.io/bt/_static/logo.png)

  [![Build Status](https://github.com/pmorissette/bt/workflows/Build%20Status/badge.svg)](https://github.com/pmorissette/bt/actions/)
  [![PyPI Version](https://img.shields.io/pypi/v/bt)](https://pypi.org/project/bt/)
  [![PyPI License](https://img.shields.io/pypi/l/bt)](https://pypi.org/project/bt/)



  bt is currently in alpha stage - if you find a bug, please submit an issue.

  Read the docs here: http://pmorissette.github.io/bt.



  **bt** is a flexible backtesting framework for Python used to test quantitative
  trading strategies. **Backtesting** is the process of testing a strategy over a given
  data set. This framework allows you to easily create strategies that mix and match
  different [Algos](http://pmorissette.github.io/bt/bt.html#bt.core.Algo). It aims to foster the creation of easily testable, re-usable and
  flexible blocks of strategy logic to facilitate the rapid development of complex
  trading strategies.

  The goal: to save **quants** from re-inventing the wheel and let them focus on the
  important part of the job - strategy development.

  **bt** is coded in **Python** and joins a vibrant and rich ecosystem for data analysis.
  Numerous libraries exist for machine learning, signal processing and statistics and can be leveraged to avoid
  re-inventing the wheel - something that happens all too often when using other
  languages that don't have the same wealth of high-quality, open-source projects.

  bt is built atop [ffn](https://github.com/pmorissette/ffn) - a financial function library for Python. Check it out!



  * **Tree Structure**
      [The tree structure](http://pmorissette.github.io/bt/tree.html) facilitates the construction and composition of complex algorithmic trading
      strategies that are modular and re-usable. Furthermore, each tree [Node](http://pmorissette.github.io/bt/bt.html#bt.core.Node) has its own
      price index that can be used by Algos to determine a Node's allocation.

  * **Algorithm Stacks**
      [Algos](http://pmorissette.github.io/bt/bt.html#bt.core.Algo) and [AlgoStacks](http://pmorissette.github.io/bt/bt.html#bt.core.AlgoStack) are
      another core feature that facilitate the creation of modular and re-usable strategy
      logic. Due to their modularity, these logic blocks are also easier to test -
      an important step in building robust financial solutions.

  * **Charting and Reporting**
      bt also provides many useful charting functions that help visualize backtest
      results. We also plan to add more charts, tables and report formats in the future,
      such as automatically generated PDF reports.

  * **Detailed Statistics**
      Furthermore, bt calculates a bunch of stats relating to a backtest and offers a quick way to compare
      these various statistics across many different backtests via [Results](http://pmorissette.github.io/bt/bt.html#bt.backtest.Result) display methods.




  Future development efforts will focus on:

  * **Speed**
      Due to the flexible nature of bt, a trade-off had to be made between
      usability and performance. Usability will always be the priority, but we do
      wish to enhance the performance as much as possible.

  * **Algos**
      We will also be developing more algorithms as time goes on. We also
      encourage anyone to contribute their own algos as well.

  * **Charting and Reporting**
      This is another area we wish to constantly improve on
      as reporting is an important aspect of the job. Charting and reporting also
      facilitate finding bugs in strategy logic.



  The easiest way to install `bt` is from the [Python Package Index](https://pypi.python.org/pypi/bt/)
  using `pip`:

  ```bash
  pip install bt
  ```


  Since bt has many dependencies, we strongly recommend installing the [Anaconda Scientific Python
  Distribution](https://store.continuum.io/cshop/anaconda/), especially on Windows. This distribution
  comes with many of the required packages pre-installed, including pip. Once Anaconda is installed, the above
  command should complete the installation.



  We believe the best environment to develop with bt is the [IPython Notebook](http://ipython.org/notebook.html).
  From their homepage, the IPython Notebook is:

      "[...] a web-based interactive computational environment
      where you can combine code execution, text, mathematics, plots and rich
      media into a single document [...]"

  This environment allows you to plot your charts in-line and also allows you to
  easily add surrounding text with Markdown. You can easily create Notebooks that
  you can share with colleagues and you can also save them as PDFs. If you are not
  yet convinced, head over to their website.


pkgId: f7c830b6cb280713c5b7977f0b87dbf54fdf23fcc1648e9f996e317339adc4da
name: python-bt-proximity
arch: src
version: 0.2.1
epoch: 0
release: 1
url: https://github.com/FrederikBolding/bluetooth-proximity
rpm_license: Apache 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bt-proximity-0.2.1-1.src.rpm
checksum_type: sha256
summary:
  Allows for querying of the RSSI values for nearby devices using pybluez. Ported to Python 3, based on https://github.com/ewenchou/bluetooth-proximity


pkgId: b7e0b02a0729cd67e25109f893e12ac7e37857e154ddc35a00fa29f3fe381e4d
name: python-btc-cycles
arch: src
version: 0.3.4
epoch: 0
release: 1
summary: Track Bitcoin price over halving cycles
url: https://pypi.org/project/btc-cycles/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-btc-cycles-0.3.4-1.src.rpm
checksum_type: sha256
description:
  [![Update chart](https://github.com/giocaizzi/btc-cycles/actions/workflows/run.yml/badge.svg)](https://github.com/giocaizzi/btc-cycles/actions/workflows/run.yml)
  ![PyPI - Version](https://img.shields.io/pypi/v/btc-cycles?color=blue)
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/btc-cycles)
  [![Deploy](https://github.com/giocaizzi/btc-cycles/actions/workflows/deployment.yml/badge.svg)](https://github.com/giocaizzi/btc-cycles/actions/workflows/deployment.yml)

  ______________________________________________________________________

  > ❗ This chart is updated everyday at 5 AM UTC.

  ![Bitcoin](https://github.com/giocaizzi/btc-cycles/blob/main/bitcoin.png)

  ______________________________________________________________________



  > ⚠️ Since v0.3, as _CoinmarketCap v1 API has been deprecated_, **all working sources require an API key** to fetch data. The legacy free *(but broken!)* source `coinmarketcap-free` is however still available, hoping for a workaround is found ([see here](https://github.com/guptarohit/cryptoCMD/issues/86)).



  ```bash
  pip install btc-cycles
  ```



  - **Bitcoin price** data is fetched from a set of available sources, such as:

    - [`coinmarketcap`](https://www.coinmarketcap.com), requires **paid** `api_key`.
    - [`coincompare`](https://www.cryptocompare.com/), requires **free-tier** `api_key`.
    - [`coinmarketcap-free`](https://www.coinmarketcap.com): free *(but broken!)* legacy source, available hoping for a workaround,  ([see here](https://github.com/guptarohit/cryptoCMD/issues/86))

  - **Cycles** are computed considering _past halving dates_ and the _expected future halving date_ fetched from [watchguru](https://watcher.guru/bitcoin-halving)



  See this [notebook](https://github.com/giocaizzi/btc-cycles/blob/main/bitcoin.ipynb).


pkgId: b3cd721babf87d5d9a95e098a62c612a5e0cfc16cb867b7890b54db8a870bb99
name: python-btclib
arch: src
version: 2023.7.12
epoch: 0
release: 1
summary: A library for 'bitcoin cryptography'
url: https://btclib.org
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-btclib-2023.7.12-1.src.rpm
checksum_type: sha256
description:
  <!-- markdownlint-enable MD013 -->
  [btclib](https://btclib.org) is a
  Python3 [type annotated](https://docs.python.org/3/library/typing.html)
  library intended for teaching, learning, and using bitcoin;
  the focus is on elliptic curve cryptography and bitcoin's blockchain.
  It is rigorously and extensively tested: the test suite
  [covers 100%](https://coveralls.io/github/btclib-org/btclib)
  of the code base and reproduces results from both informal
  and major reference sources.
  Originally developed for the
  _[Bitcoin and Blockchain Technology](https://www.ametrano.net/bbt/)_
  course at the University of Milano-Bicocca,
  btclib is not intended for production environments:
  it is often refactored for improved clarity,
  without care for backward compatibility; moreover,
  some of its algorithms could be broken using side-channel attacks.
  The library is not limited to the bitcon elliptic curve secp256k1;
  anyway, FFI bindings to
  [libsecp256k1](https://github.com/bitcoin-core/secp256k1)
  (the optimized C library used by Bitcoin Core)
  are available for this curve and used by default.
  Included features are:
  - modulo algebra functions (gcd, inverse, legendre symbol, square root)
  - octets / integer / point / var_int / var_bytes helper functions
  - elliptic curve class
      - fast algebra implemented using Jacobian coordinates
      - double scalar multiplication (Straus's algorithm, also known as
        Shamir's trick)
      - multi scalar multiplication (Bos-coster's algorithm)
      - point simmetry solution: odd/even, low/high, and quadratic residue
      - elliptic curves: SEC 1 v1 and v2, NIST, Brainpool, and
        low cardinality test curves
  - ECDSA signature with (transaction) DER encoding
  - ECDSA signature with (message) compact encoding: standard p2pkh and
    [BIP137](https://github.com/bitcoin/bips/blob/master/bip-0137.mediawiki)/[Electrum](https://electrum.org/#home)
    extensions to p2wpkh and p2wpkh-p2sh
  - [RFC 6979](https://tools.ietf.org/html/rfc6979) for deterministic signature
    schemes
  - EC Schnorr signature (according to
    [BIP340](https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki)
    bitcoin standardization)
      - batch validation
      - threshold signature (see test-suite)
      - MuSig multi-signature (see test-suite)
  - Borromean ring signature
  - Sign-to-contract commitment
  - Diffie-Hellman
  - Pedersen committment
  - Base58 encoding/decoding
  - p2pkh/p2sh addresses and WIFs
  - Bech32 encoding/decoding
  - p2wpkh/p2wsh native SegWit addresses and their legacy p2sh-wrapped versions
  - [BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki)
    hierarchical deterministic key chains
  - [SLIP132](https://github.com/satoshilabs/slips/blob/master/slip-0132.md)
    key versions (xprv, yprv, zprv, Yprv, Zprv, tprv, uprv, vprv, and Uprv)
    with corresponding mapping to
    p2pkh/p2sh, p2wpkh-p2sh, p2wpkh, p2wsh-p2sh, p2wsh and p2tr addresses
  - [BIP39](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki)
    wordlists and mnemonic for generating deterministic keys
  - [Electrum](https://electrum.org/#home) standard for mnemonic
  - Script encoding/decoding
  - nulldata, p2pk, p2ms, p2pkh, p2sh, p2wpkh, p2wsh and p2tr ScriptPubKeys
  - BlockHeader and Block data classes
  - OutPoint, TxIn, TxOut, and TX data classes
  - legacy, segwit_v0 and taproot transaction hash signatures
  - [BIP174](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki)
    partially signed bitcoin transactions (PSBT):


pkgId: 498893ae17dfc5fde4d27e6f4b1e5fb54c8fbf80e9f7a8f2b6a3896bb4269b17
name: python-btcs-crypto-systems
arch: src
version: 0.0.16
epoch: 0
release: 1
summary: To interact with BTCS crypto systems.
url: https://pypi.org/project/btcs-crypto-systems/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-btcs-crypto-systems-0.0.16-1.src.rpm
checksum_type: sha256
description:
  ```bash
  pip install btcs_crypto_systems
  ```


  ```bash
  pip install btcs_crypto_systems --upgrade
  ```



  Retrieve a the symbol of a specific asset
  ```python
  from btcs_crypto_systems import token_master

  tm = token_master.TokenMaster(env="test")
  print(tm.assets[7].symbol)
  ```

  Find the differences between two TM environments
  ```python
  from btcs_crypto_systems import token_master

  tm_prod = token_master.TokenMaster(env="prod")
  tm_dev = token_master.TokenMaster(env="dev")

  tm_prod.print_diffs(tm_dev)
  ```


  ```python
  from btcs_crypto_systems import utils

  csv_writer = utils.get_csv_writer(file_name="example_output_file", headers=["address", "balance"])
  csv_writer.writerow(["0x8c8d7c46219d9205f056f28fee5950ad564d7465","1.001"])


  ```


  ```python
  from btcs_crypto_systems import address_manangement_service

  ams = address_manangement_service.AMS(env="test")
  print(json.dumps(ams.get_addresses(is_deposit=True, include_balances=True, limit=10, tags=["siba"]), indent=2))
  ```



  Navigate to the folder where the pyproject.toml file is. Update version number.
  ```bash
  python3 -m build
  python3 -m twine upload --repository pypi dist/*
  ```

  Make sure old bulds are not part of the dist folder.

  ```
  username: __token__
  password: get an API key from here https://pypi.org/manage/account/token/
  ```


pkgId: bd006b607c00a57712941904b9cd470ba12c7918dbb262ff7a118c5f454c47dc
name: python-btcturk-api
arch: src
version: 1.8.1
epoch: 0
release: 1
summary: BTCTurk Rest API Python Implementation
url: https://github.com/outlier-1/btcturkapi-python
rpm_license: UNKNOWN
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-btcturk-api-1.8.1-1.src.rpm
checksum_type: sha256
description:
  btcturkapi-python is a wrapper library built around Btcturk's REST api implementation.

  It provides more abstract version of REST Client for traders using Btcturk as a cryptocurrency platform.



  Check out the [documentation](https://btcturkapi-python.readthedocs.io/en/latest/) for learning  how to use this library and further reference

  <!-- TABLE OF CONTENTS -->


  * [Features](#features)
  * [Quickstart](#Quickstart)
    * [Requirements](#Requirements)
    * [Installation](#Installation)
  * [Usage](#Usage)
  * [License](#License)
  * [Contact](#contact)
  * [Donation](#Donation)



  <!-- Features -->


  * Monitor cryptocurrency prices.
  * Place buy, sell orders with stop, limit, or market methods.
  * List and cancel open orders.
  * Get crypto/fiat transaction history.


  <!-- GETTING STARTED -->


  In order to use this library for your projects, you can checkout installation and usage sections



  * BTCTurk API Credentials (For Authentication Necessary Operations)
  ```
  https://www.btcturk.com/ApiAccess
  ```
  You can go to link above and create your api credentials.




  You can install this library via pip.

  It is the best practice using a virtual environment for your project, keep that in mind.

  Run this command through terminal:

  ```sh
  pip install btcturk-api
  ```
  Since the project's current version doesn't have support for websockets and any advanced features, dependencies are simple and you should not encounter any installation error.

  <!-- USAGE EXAMPLES -->


  After installing the library, just import the client and you are good to go. You can use any feature btcturk api provides without dealing with preparing requests, handling responses etc.

  ```py
  from btcturk_api.client import Client
  ```
  You can use public endpoints without providing an api key/secret pair.

  ```py
  >>> my_client = Client()
      >>> my_client.get_server_time()
      {'serverTime': 1613292018131, 'serverTime2': '2021-02-14T08:40:18.1308832+00:00'}
  ```
  If you have an api key/secret pair, you can use account endpoints and trading operations

  ```py
  >>> my_client = Client(api_key='<Your Api Key>', api_secret='<Your Api Secret>')
  >>> my_client.get_account_balance()
      [
        {
         'asset': 'TRY',
         'assetname': 'Türk Lirası',
         'balance': '100.00',
         'locked': '0',
         'free': '100.00',
         'orderFund': '0',
         'requestFund': '0',
         'precision': 2
         },
         {...}
      ]
  ```
  <!-- LICENSE -->


  You can use this library in your personal projects free of charge. Detailed information is in LICENSE.txt file.

  <!-- CONTACT -->


  Miraç Baydemir -  omermirac59@gmail.com

  Project Link: [https://github.com/outlier-1/btcturkapi-python/](https://github.com/outlier-1/btcturkapi-python/)

  <!-- DONATION -->


  Bitcoin Address - '34FSjtdwTSB21uVDcptgJ8kPHHimMSCGxq'


pkgId: 93c17a10294a443f07fcaeb304fbfe3a4db84b6900a7bf22f20e67a529e3d2cf
name: python-btgsolutions-dataservices-python-client
arch: src
version: 2.2.0
epoch: 0
release: 1
url: https://github.com/BTG-Pactual-Solutions/btgsolutions-dataservices-python-client
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-btgsolutions-dataservices-python-client-2.2.0-1.src.rpm
checksum_type: sha256
summary:
  Python package containing several classes and data for extracting and manipulating market and trading data.

description:
  Python library to get Brazilian Financial Market Data.



  ```bash
  pip3 install btgsolutions-dataservices-python-client
  ```





  ```python
  import btgsolutions_dataservices as btg
  ws = btg.MarketDataWebSocketClient(api_key='YOUR_API_KEY', data_type='books', instruments=['PETR4', 'VALE3'])
  ws.run(on_message=lambda message: print(message))








  ```



  ```python
  import btgsolutions_dataservices as btg
  ws = btg.MarketDataWebSocketClient(api_key='YOUR_API_KEY', data_type='trades', stream_type='delayed', instruments=['PETR4', 'VALE3'])
  ws.run(on_message=lambda message: print(message))








  ```



  ```python
  import btgsolutions_dataservices as btg
  ws = btg.MarketDataWebSocketClient(api_key='YOUR_API_KEY', data_type='trades', stream_type='throttle', instruments=['PETR4', 'VALE3'])
  ws.run(on_message=lambda message: print(message))








  ```



  ```python
  import btgsolutions_dataservices as btg
  ws = btg.MarketDataWebSocketClient(api_key='YOUR_API_KEY', data_type='securities', data_subtype='derivatives')
  ws.run(on_message=lambda message: print(message))





  ```



  ```python
  import btgsolutions_dataservices as btg
  ws = btg.MarketDataWebSocketClient(api_key='YOUR_API_KEY', data_type='candles-1S', stream_type='realtime')
  ws.run(on_message=lambda message: print(message))
  ws.candle_subscribe(list_instruments=['PETR4','VALE3'], candle_type='partial')










  ```



  ```python
  import btgsolutions_dataservices as btg
  ws = btg.MarketDataWebSocketClient(api_key='YOUR_API_KEY', exchange='bmv', data_type='trades')
  ws.run(on_message=lambda message: print(message))





  ```



  ```python
  import btgsolutions_dataservices as btg
  ws = btg.MarketDataWebSocketClient(api_key='YOUR_API_KEY', data_type='books', instruments=['PETR4', 'VALE3'])
  ws.run(on_message=lambda message: print(message), spawn_thread=False)








  ```



  ```python
  import btgsolutions_dataservices as btg
  ws = btg.HFNWebSocketClient(api_key='YOUR_API_KEY', country='brazil')
  ws.run(on_message=lambda message: print(message))





  ```



  ```python
  import btgsolutions_dataservices as btg
  int_candles = btg.IntradayCandles(api_key='YOUR_API_KEY')
  int_candles.get_intraday_candles(market_type='stocks', tickers=['PETR4', 'VALE3'], candle_period='1m', delay='delayed', mode='relative', timezone='UTC', raw_data=True)
  ```



  ```python
  import btgsolutions_dataservices as btg
  hist_candles = btg.HistoricalCandles(api_key='YOUR_API_KEY')
  hist_candles.get_interday_history_candles(ticker='PETR4',  market_type='stocks', corporate_events_adj=True, start_date='2023-10-01', end_date='2023-10-13', rmv_after_market=True, timezone='UTC', raw_data=False)
  ```



  ```python
  import btgsolutions_dataservices as btg
  hist_candles = btg.HistoricalCandles(api_key='YOUR_API_KEY')
  hist_candles.get_intraday_history_candles(ticker='PETR4',  market_type='stocks', corporate_events_adj=True, date='2023-10-06', candle='1m', rmv_after_market=True, timezone='UTC', raw_data=False)
  ```



  ```python
  import btgsolutions_dataservices as btg
  hist_candles = btg.HistoricalCandles(api_key='YOUR_API_KEY')
  hist_candles.get_intraday_history_candles(ticker='PETR4',  market_type='stocks', corporate_events_adj=True, date='2023-10-06', candle='1m', rmv_after_market=True, timezone='UTC', raw_data=False).plot(x='candle_time', y='close_price', kind='scatter')
  ```



  ```python
  import btgsolutions_dataservices as btg
  quotes = btg.Quotes(api_key='YOUR_API_KEY')
  quotes.get_quote(market_type = 'stocks', tickers = ['PETR4', 'VALE3'])
  ```



  ```python
  import btgsolutions_dataservices as btg
  last_event = btg.TickerLastEvent(api_key='YOUR_API_KEY')
  last_event.get_trades(data_type='equities', ticker='VALE3')
  ```



  ```python
  import btgsolutions_dataservices as btg
  bulk_data = btg.BulkData(api_key='YOUR_API_KEY')
  bulk_data.get_available_tickers(date='2023-07-03', data_type='trades', prefix='PETR')
  ```



  ```python
  import btgsolutions_dataservices as btg
  bulk_data = btg.BulkData(api_key='YOUR_API_KEY')
  bulk_data.get_data(ticker='DI1F18', date='2017-01-02', data_type='trades')


  ```



  ```python
  import btgsolutions_dataservices as btg
  bulk_data = btg.BulkData(api_key='YOUR_API_KEY')
  bulk_data.get_market_data_channels(date='2024-01-03')
  ```



  ```python
  import btgsolutions_dataservices as btg
  bulk_data = btg.BulkData(api_key='YOUR_API_KEY')
  bulk_data.get_compressed_data(channel='001', date='2024-01-03', data_type='instruments')


  ```



  ```python
  import btgsolutions_dataservices as btg
  intra_tickdata = btg.IntradayTickData(api_key='YOUR_API_KEY')
  intra_tickdata.get_trades(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  hfn = btg.HighFrequencyNews(api_key='YOUR_API_KEY')
  hfn.latest_news()
  ```



  ```python
  import btgsolutions_dataservices as btg
  corporate_events = btg.CorporateEvents(api_key='YOUR_API_KEY')
  corporate_events.get(start_date='2024-05-01', end_date='2024-05-31')

  ```




  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.general_info(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.income_statement(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.balance_sheet(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.cash_flow(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.valuation(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.ratios(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.growth(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.interims(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.all_financial_tables(ticker='PETR4')
  ```



  The official documentation is hosted at https://python-client-docs.dataservices.btgpactualsolutions.com/


pkgId: fb420a8faea1060591fe8f56181260a186e505a5241e03d0e6e6efe6d75bd34b
name: python-btgsolutions-dataservices-python-client
arch: src
version: 2.3.0
epoch: 0
release: 1
url: https://github.com/BTG-Pactual-Solutions/btgsolutions-dataservices-python-client
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-btgsolutions-dataservices-python-client-2.3.0-1.src.rpm
checksum_type: sha256
summary:
  Python package containing several classes and data for extracting and manipulating market and trading data.

description:
  Python library to get Brazilian Financial Market Data.



  ```bash
  pip3 install btgsolutions-dataservices-python-client
  ```





  ```python
  import btgsolutions_dataservices as btg
  ws = btg.MarketDataWebSocketClient(api_key='YOUR_API_KEY', data_type='books', instruments=['PETR4', 'VALE3'])
  ws.run(on_message=lambda message: print(message))








  ```



  ```python
  import btgsolutions_dataservices as btg
  ws = btg.MarketDataWebSocketClient(api_key='YOUR_API_KEY', data_type='trades', stream_type='delayed', instruments=['PETR4', 'VALE3'])
  ws.run(on_message=lambda message: print(message))








  ```



  ```python
  import btgsolutions_dataservices as btg
  ws = btg.MarketDataWebSocketClient(api_key='YOUR_API_KEY', data_type='trades', stream_type='throttle', instruments=['PETR4', 'VALE3'])
  ws.run(on_message=lambda message: print(message))








  ```



  ```python
  import btgsolutions_dataservices as btg
  ws = btg.MarketDataWebSocketClient(api_key='YOUR_API_KEY', data_type='securities', data_subtype='derivatives')
  ws.run(on_message=lambda message: print(message))





  ```



  ```python
  import btgsolutions_dataservices as btg
  ws = btg.MarketDataWebSocketClient(api_key='YOUR_API_KEY', data_type='candles-1S', stream_type='realtime')
  ws.run(on_message=lambda message: print(message))
  ws.candle_subscribe(list_instruments=['PETR4','VALE3'], candle_type='partial')










  ```



  ```python
  import btgsolutions_dataservices as btg
  ws = btg.MarketDataWebSocketClient(api_key='YOUR_API_KEY', exchange='bmv', data_type='trades')
  ws.run(on_message=lambda message: print(message))





  ```



  ```python
  import btgsolutions_dataservices as btg
  ws = btg.MarketDataWebSocketClient(api_key='YOUR_API_KEY', data_type='books', instruments=['PETR4', 'VALE3'])
  ws.run(on_message=lambda message: print(message), spawn_thread=False)








  ```



  ```python
  import btgsolutions_dataservices as btg
  ws = btg.MarketDataWebSocketClient(api_key='YOUR_API_KEY', data_type='books')
  ws.run(on_message=lambda message: print(message))
  ws.subscribe(['PETR4', 'VALE3'], n=1)







  ```





  ```python
  import btgsolutions_dataservices as btg
  ws = btg.HFNWebSocketClient(api_key='YOUR_API_KEY', country='brazil')
  ws.run(on_message=lambda message: print(message))





  ```



  ```python
  import btgsolutions_dataservices as btg
  int_candles = btg.IntradayCandles(api_key='YOUR_API_KEY')
  int_candles.get_intraday_candles(market_type='stocks', tickers=['PETR4', 'VALE3'], candle_period='1m', delay='delayed', mode='relative', timezone='UTC', raw_data=True)
  ```



  ```python
  import btgsolutions_dataservices as btg
  hist_candles = btg.HistoricalCandles(api_key='YOUR_API_KEY')
  hist_candles.get_interday_history_candles(ticker='PETR4',  market_type='stocks', corporate_events_adj=True, start_date='2023-10-01', end_date='2023-10-13', rmv_after_market=True, timezone='UTC', raw_data=False)
  ```



  ```python
  import btgsolutions_dataservices as btg
  hist_candles = btg.HistoricalCandles(api_key='YOUR_API_KEY')
  hist_candles.get_intraday_history_candles(ticker='PETR4',  market_type='stocks', corporate_events_adj=True, date='2023-10-06', candle='1m', rmv_after_market=True, timezone='UTC', raw_data=False)
  ```



  ```python
  import btgsolutions_dataservices as btg
  hist_candles = btg.HistoricalCandles(api_key='YOUR_API_KEY')
  hist_candles.get_intraday_history_candles(ticker='PETR4',  market_type='stocks', corporate_events_adj=True, date='2023-10-06', candle='1m', rmv_after_market=True, timezone='UTC', raw_data=False).plot(x='candle_time', y='close_price', kind='scatter')
  ```



  ```python
  import btgsolutions_dataservices as btg
  quotes = btg.Quotes(api_key='YOUR_API_KEY')
  quotes.get_quote(market_type = 'stocks', tickers = ['PETR4', 'VALE3'])
  ```



  ```python
  import btgsolutions_dataservices as btg
  last_event = btg.TickerLastEvent(api_key='YOUR_API_KEY')
  last_event.get_trades(data_type='equities', ticker='VALE3')
  ```



  ```python
  import btgsolutions_dataservices as btg
  bulk_data = btg.BulkData(api_key='YOUR_API_KEY')
  bulk_data.get_available_tickers(date='2023-07-03', data_type='trades', prefix='PETR')
  ```



  ```python
  import btgsolutions_dataservices as btg
  bulk_data = btg.BulkData(api_key='YOUR_API_KEY')
  bulk_data.get_data(ticker='DI1F18', date='2017-01-02', data_type='trades')


  ```



  ```python
  import btgsolutions_dataservices as btg
  bulk_data = btg.BulkData(api_key='YOUR_API_KEY')
  bulk_data.get_market_data_channels(date='2024-01-03')
  ```



  ```python
  import btgsolutions_dataservices as btg
  bulk_data = btg.BulkData(api_key='YOUR_API_KEY')
  bulk_data.get_compressed_data(channel='001', date='2024-01-03', data_type='instruments')


  ```



  ```python
  import btgsolutions_dataservices as btg
  intra_tickdata = btg.IntradayTickData(api_key='YOUR_API_KEY')
  intra_tickdata.get_trades(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  hfn = btg.HighFrequencyNews(api_key='YOUR_API_KEY')
  hfn.latest_news()
  ```



  ```python
  import btgsolutions_dataservices as btg
  corporate_events = btg.CorporateEvents(api_key='YOUR_API_KEY')
  corporate_events.get(start_date='2024-05-01', end_date='2024-05-31')

  ```




  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.general_info(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.income_statement(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.balance_sheet(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.cash_flow(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.valuation(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.ratios(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.growth(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.interims(ticker='PETR4')
  ```



  ```python
  import btgsolutions_dataservices as btg
  company_data = btg.CompanyData(api_key='YOUR_API_KEY')
  company_data.all_financial_tables(ticker='PETR4')
  ```



  The official documentation is hosted at https://python-client-docs.dataservices.btgpactualsolutions.com/


pkgId: 39ca2b7bf08a09b27fa27c70fd472e5fbeed3d06505309b71f0cc6aad4a6dc05
name: python-btgsolutions-tradeservices-python-client
arch: src
version: 0.1.13
epoch: 0
release: 1
summary: Python client package for trading within BTG Solutions platform.
url: https://github.com/BTG-Pactual-Solutions/btgsolutions-tradeservices-python-client
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-btgsolutions-tradeservices-python-client-0.1.13-1.src.rpm
checksum_type: sha256
description:
  BTG solutions trade api package.




  Get your token and use it in the examples below.

  > Instantiate an order controller. Provide your token, account number, execution broker and entity to start sending orders.
  sampleInterval is optional

  ```Python
  controller = OrderController(
      token="TOKEN",
      order_api_host="URL",
      account="YOUR_ACCOUNT_NUMBER",
      execBroker="YOUR_EXEC_BROKER",
      entity="YOUR_ENTITY",
      sampleInterval = None
  )
  ```

  > One can provide a custom order update callback function.

  ```Python
  def order_update_callback(order):
      print(f"Order update: {order}")

  controller = OrderController(
      token=token,
      order_api_host="URL",
      account="YOUR_ACCOUNT_NUMBER",
      execBroker="YOUR_EXEC_BROKER",
      entity="YOUR_ENTITY",
      order_update_callback=order_update_callback,
      sampleInterval = 5
      )
  ```

  > Create an order and receive the resulting order ID.

  ```Python
  orderId = controller.create_order(
      symbol="PETR4",
      side="S",
      qty="5000",
      price="20.41",
      timeInForce="Day",
      isDMA="true"
  )
  ```

  > Create an order and receive the resulting order ID.
  	This signature allow user to use different account, entity and broker of Controller session

  ```Python
  orderId = controller.create_order(
      symbol="PETR4",
      side="S",
      qty="5000",
      price="20.41",
      timeInForce="Day",
      isDMA="true",
      account="ACCOUNT",
      execBroker="NUMBER_OF_BROKER",
      entity="ENTITY",
      memo = "memo"
  )
  ```


  > Create an order using strategy and receive the resulting order ID.
  	This signature allow user to use different account, entity and broker of Controller session

  ```Python
  strategyParameter = {
  "max-floor": "100",
  "start-time": "20240614-19:00:00",
  "end-time": "20240614-20:00:00"
  }

  orderId = controller.create_order(
      symbol="PETR4",
      side="S",
      qty="5000",
      price="20.41",
      timeInForce="Day",
      isDMA="true",
      account="ACCOUNT",
      execBroker="NUMBER_OF_BROKER",
      entity="ENTITY",
      strategy = "twap",
      strategyParameter = strategyParameter
  )
  ```

  > Change order.

  ```Python
  controller.change_order(
      id="YOUR_ORDER_ID",
      qty="5000",
      price="20.43",
      timeInForce="Day",
      ordType="Limit"
  )
  ```

  > Cancel order.

  ```Python
  controller.cancel_order(
      id="YOUR_ORDER_ID",
  )
  ```

  > Cancel ALL order.

  ```Python
  controller.cancel_all_orders()
  ```

  > Get Trades.

  ```Python
  controller.get_trades()
  ```

  > Get Orders.

  ```Python
  controller.get_orders()
  ```

  > Get Orders by Params.
  All params are optional
  ```Python
  controller.get_ordersByParams(complete = True, symbol = "WEGE3", status = "New", side = "Sell", memo = "memo", parent = True)
  ```

  > Get Orders.

  ```Python
  controller.get_order(
  		id = "ORDER ID"
  )
  ```

  > Get a summary of all your orders.

  ```Python
  controller.summary()
  ```



  Get help at support@btgpactualsolutions.com


pkgId: 6d45a7bb9b3008743c96fcc0836ca8dd94a66b4a45eae8dcf380154f2b4ce669
name: python-bthome-ble
arch: src
version: 3.11.0
epoch: 0
release: 1
summary: BThome BLE support
url: https://github.com/bluetooth-devices/bthome-ble
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bthome-ble-3.11.0-1.src.rpm
checksum_type: sha256
description:
  <p align="center">
    <a href="https://github.com/bluetooth-devices/bthome-ble/actions?query=workflow%3ACI">
      <img src="https://img.shields.io/github/workflow/status/bluetooth-devices/bthome-ble/CI/main?label=CI&logo=github&style=flat-square" alt="CI Status" >
    </a>
    <a href="https://bthome-ble.readthedocs.io">
      <img src="https://img.shields.io/readthedocs/bthome-ble.svg?logo=read-the-docs&logoColor=fff&style=flat-square" alt="Documentation Status">
    </a>
    <a href="https://codecov.io/gh/bluetooth-devices/bthome-ble">
      <img src="https://img.shields.io/codecov/c/github/bluetooth-devices/bthome-ble.svg?logo=codecov&logoColor=fff&style=flat-square" alt="Test coverage percentage">
    </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/bthome-ble/">
      <img src="https://img.shields.io/pypi/v/bthome-ble.svg?logo=python&logoColor=fff&style=flat-square" alt="PyPI Version">
    </a>
    <img src="https://img.shields.io/pypi/pyversions/bthome-ble.svg?style=flat-square&logo=python&amp;logoColor=fff" alt="Supported Python versions">
    <img src="https://img.shields.io/pypi/l/bthome-ble.svg?style=flat-square" alt="License">
  </p>

  BLE parser for sensors that support the BTHome BLE format (V1 and V2).



  Install this via pip (or your favourite package manager):

  `pip install bthome-ble`



  More detailed information about the BTHome BLE format can be found on the [usage page](https://bthome.io/)



  Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

  <!-- 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
  [Cookiecutter](https://github.com/audreyr/cookiecutter) and the
  [browniebroke/cookiecutter-pypackage](https://github.com/browniebroke/cookiecutter-pypackage)
  project template.


pkgId: 07d8d27b2bbde2f891514e3e24f7536574b6cea8dffa3246f2aacfb10c2116c0
name: python-bthomehub5-devicelist
arch: src
version: 0.1.1
epoch: 0
release: 1
summary: A library that returns a list of devices currently connected to a BT Home Hub 5
url: https://github.com/ahobsonsayers/bthomehub5-devicelist
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bthomehub5-devicelist-0.1.1-1.src.rpm
checksum_type: sha256
description:
  This library will return a dictionary containing information about the devices currently connected to a BT Home Hub 5 with a user specified IP Address.



      pip install bthomhub5-devicelist



  Example Usage:

      import bthomehub5_devicelist
      from pprint import pprint


      def main():

          
          devicelist = bthomehub5_devicelist.get_devicelist('192.168.1.254')

          pprint(devicelist)


      if __name__ == '__main__':
          main()

  The library will return a dictionary with connected devices MAC addresses as keys and device names as values

  The console output from running the example code will look like this:

  ```
  >>>
  {'4f:c9:32:04:d3:ec': 'Example-PC',
   '3f:6a:66:49:d4:16': 'Example-IPhone',
   '01:5d:e8:fb:c8:a9': 'Example-Smartlight',
   '65:10:5c:6d:d0:2b': 'Example-Android'}
  ```



  MIT - Feel free to go crazy with the code


pkgId: 055ca456cf4a2c89ae930a1379c19573238112c628b61bd2bb4753dcf3204619
name: python-btlewrap
arch: src
version: 0.1.1
epoch: 0
release: 1
summary: wrapper around different bluetooth low energy backends
url: https://github.com/ChristianKuehnel/btlewrap
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-btlewrap-0.1.1-1.src.rpm
checksum_type: sha256
description:
  Bluetooth LowEnergy wrapper for different python backends. This gives you a nice API so that you can use different Bluetooth implementations on different platforms.
  This library was initially implemented as part of the `miflora <https://github.com/open-homeautomation/miflora>`_ library, but then refactored out, so that it can be used on other projects as well.


pkgId: a37880cdfe6860687b7bc247d7daa66ebab28913dfb148928c527a3e6d630bea
name: python-btnexus-node-python
arch: src
version: 6.3.233
epoch: 0
release: 1
summary: Provides Node, Hook and PostRequests that follow the btProtocol.
url: https://github.com/Blackout-Technologies/btnexus-node-python
rpm_license: GNU Lesser General Public License v3 or later (LGPLv3+)
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-btnexus-node-python-6.3.233-1.src.rpm
checksum_type: sha256
description:
  ![Blackout logo](https://www.blackout.ai/wp-content/uploads/2018/08/logo.png)

  |||
  |---|---|
  |Author|Adrian Lubitz|
  |Author|Marc Fiedler|
  |Email|dev@blackout.ai|
  |Required Instance versions| >= 3.0|
  |Runs on|Python 2.7+ or Python 3.6+|
  |State|`Stable`|



  * Python installed (either 2.7+ or Python 3.6+)
  * Owner of a btNexus instance or a btNexus account


  ```
  pip install btnexus-node-python
  ```
  If you need to install a specific version use
  ```
  pip install btnexus-node-python==[VERSION]
  ```


  You find an API Documentation our [GitHub Page](https://blackout-technologies.github.io/btnexus-node-python/6.3.233)




  The `nexus` by Blackout Technologies is a platform to create Digital Assistants and to connect them via the internet to multiple platforms. Those platforms can be websites, apps or even robots. The `nexus` consists of two major parts, first being the `btNexus` and second the nexusUi. The `btNexus` is the network that connects the A.I. with the nexusUi and the chosen interfaces. The nexusUi is the user interface, that allows the user to create their own A.I.-based Digital Assistant. Those Digital Assistants can be anything, support chatbots or even robot personalities.
  Every user has one or multiple nexusUi instances or short nexus instances, which means, it's their workspace. One nexusUi / nexus instance can host multiple personalities.

  Every part of the `btNexus` is a Node. These Nodes can react on messages and send messages through the `btNexus`. To understand how Nodes work the following key concepts need to be clear.


  Nodes are essentially little programs. It is not important in which language these programs are implemented.
  More important is that they share `Messages` between them in certain `Groups` and `Topics`.
  So every node has its very unique purpose. It reacts on `Messages` with a `Callback` which is subscribed to a `Group` and a `Topic`
  and also sends `Messages` to the same and/or other `Group` and `Topic` to inform other `Nodes`, what is happening.


  `Messages` are the media of communication between `Nodes`.
  A `Message` contains a name for a `Callback` and the corresponding parameters.
  A `Message` is send on a specific `Group` and `Topic`, so only `Callbacks` that subscribed to this `Group` and `Topic` will react.


  `Callbacks` are functions which serves as the reaction to a `Message` on a specific `Topic` in a specific `Group`.
  Every `Callback` returns a `Message` to the `btNexus` with the name of the origin `Callback` + `_response`. So a `Node` can also subscribe to the response of the `Message` send out.


  `Topics` and `Groups` help to organize `Messages`. A `Callback` can only be mapped to one `Group` and  `Topic`.






  Following you will see an example of a Node which sends out the current minute
  and second every five seconds.

  ```python
  """Example for a Node that sends out messages"""

  from threading import Thread
  import datetime
  import time
  import os

  from btNode import Node



  class SendingNode(Node):
      """
      This Node shows how to implement an active Node which sends different Messages
      """
      def onConnected(self):
          """
          This will be executed after a the Node is succesfully connected to the btNexus
          Here you need to subscribe and set everything else up.

          :returns: None
          """
          self.shouldRun = True
          self.subscribe(group="exampleGroup",topic="example", callback=self.fuseTime_response) # Here we subscribe to the response of messages we send out to fuseTime
          self.thread = Thread(target=self.mainLoop)
          self.thread.start() # You want to leave this method so better start everything which is actively doing something in a thread.
      def fuseTime_response(self, orignCall ,originParams, returnValue):
          """
          Reacting to the fused Time with a print in a specific shape.
          responseCallbacks always have the following parameters.

          :param orignCall: The name of the orignCall
          :type orignCall: String
          :param originParams: The parameters given to the orignCall
          :type originParams: List or keywordDict
          :param returnValue: The returned Value from the orignCall
          :type returnValue: any
          :returns: None
          """
          print("[{}]: {}".format(self.__class__.__name__, returnValue))

      def mainLoop(self):
          """
          Sending currenct minute and second to the ListeningNode on the printMsg and fuse callback.

          :returns: Never
          """
          
          
          
          while(self.shouldRun):
              now = datetime.datetime.now()
              self.publish(group="exampleGroup", topic="example", funcName="printTime", params=[now.minute, now.second])
              self.publish(group="exampleGroup", topic="example", funcName="fuseTime", params={"min":now.minute, "sec":now.second})
              time.sleep(5)

      def cleanUp(self):
          """
          Make sure the thread terminates, when reconnecting
          otherwise onConnected will spawn another
          and you will end up with n threads, where n is the number of connects
          """
          super(SendingNode, self).cleanUp()
          self.shouldRun = False
          try:
              self.thread.join()
          except AttributeError:
              pass # This only happens if onConnected was never called before - Node was never connected correctly and therefore closes the connection and calls the cleanUp


  if( __name__ == "__main__" ):
      
      sendingNode = SendingNode() # CONNECT_HASH needs to be in .btnexusrc or environment variable CONNECT_HASH
      sendingNode.connect() # This call is blocking


  ```
  The ListeningNode and all further examples can be seen in the examples folder.



  First you need know the purpose of your Node.
  Nodes should be small and serve only one purpose.
  To implement your own Node you need to inherit from the Node class,
  implement your callbacks and if you are actively doing something implement your
  Threads, that for example read in sensor data. See the examples to get started ;)
  Keep in mind, that you need to set the `CONNECT_HASH` in your `.btnexusrc` or the environment variable `CONNECT_HASH`. If you are using Anaconda you can integrate those into your virtual environment(https://conda.io/docs/user-guide/tasks/manage-environments.html#saving-environment-variables).



  * Since Version 4 the protocol was changed to completely use [socketIO](https://pypi.org/project/python-socketio/) - Therefore it only works with **Dynamic Davinci** *(Instance Version 2.2)*
  * Since Version 5, Nodes and all inheriting classes (Hooks, Integrations) use a `CONNECT_HASH` which can be obtained from the Instance and should be given in the file `.btnexusrc` or the environment variable `CONNECT_HASH` *(The latter overwrites the first)*. Additionally a `package.json` file is needed. It should be minimal the following:

      ```json
      {
          "name": "test",
          "title": "Test",
          "description": "This is just a test",
          "type": "integration",
          "keywords": [
              "test",
              "testing"
          ],
          "version": "0.2.3",
          "nexusVersion": "2.2",
          "license": "See attached LICENSE file",
          "author": {
              "name": "Adrian Lubitz",
              "url": "https://blackout.ai/",
              "email": "al@blackout.ai"
          }
      }
      ```
  * Since Version 6 all Nodes are able to connect to 3.0 Instances


pkgId: dc207c08a144258890b1b5fbf2c6c84f964559d3f8d02a4ae744959251b865db
name: python-btpytools
arch: src
version: 0.1.37
epoch: 0
release: 1
summary: Helper functions for BakingTray and StitchIt
url: https://pypi.org/project/btpytools/
rpm_license: GPL-3.0-or-later
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-btpytools-0.1.37-1.src.rpm
checksum_type: sha256
description:
  [![PyPI](https://img.shields.io/pypi/v/btpytools.svg?color=green)](https://pypi.org/project/btpytools)
  [![Python Version](https://img.shields.io/pypi/pyversions/btpytools.svg?color=green)](https://python.org)
  [![License GNU GPL v3.0](https://img.shields.io/pypi/l/btpytools.svg?color=green)](https://github.com/SWC-Advanced-Microscopy/btpytools/raw/main/LICENSE)


  This package contains Python code for managing BakingTray serial-section 2p data.
  The main functions of interest are `compressRawData.py` and `transferToServer.py`, which are aimed at end users of the microscope.
  The `recipe.py` and `tools.py` modules support these and are aimed at developers.




  If you wish to use the data management tools and do not care about the `brainreg` helper tool:
  ```
  $ pip install btpytools

  ```

  You will then be able to run the following commands at the system command prompt:


  * `transferToServer`
  * `compressRawData`
  * `summariseAcqs`

  If you also want the `brainreg` helper command `brainregbt` (see below) then install with
  ```
  $ pip install btpytools[register]

  ```
  This will also install brainreg and all of its dependencies, which are many.


  For `$ pip install btpytools[register]` to succeed on Apple Silicon you will first have to:

  ```
  pip install cython
  brew install hdf5 c-blosc
  export HDF5_DIR=/opt/homebrew/opt/hdf5
  export BLOSC_DIR=/opt/homebrew/opt/c-blosc
  ```





  `cd` to the sample directory at the command line and run `compressRawData`. This works much faster
  if you to have installed `lbzip2`, which runs parallel bzip. Likely only works on Linux. The
  command also confirms there is enough disk space available to complete successfully.

  ```
  $ cd /mnt/data/BakingTrayStacks/CC_125_1__125_2/
  $ compressRawData
  ```


  The server should be mounted locally to a mount point writable by the user. The tranfer is via `rsync`. The command just ensures no uncompressed raw data or uncropped stacks are copied. It brute-force retries if there is a failure for some reason.

  First `cd` to the directory which **contains your samples**. Not the sample directory. e.g.
  ```
  $ cd /mnt/data/BakingTrayStacks
  ```

  You can now run in either of the following two ways (either one acquisition or multiple acquisitions)
  ```
  $ transferToServer RC_RabiesBrains01 /mnt/server/user/data/histology
  $ transferToServer RC_RabiesBrains01 RC_TwoProbeTracks_test RC_MyOldSample /mnt/server/user/data/histology
  ```

  **NOTE**: If `RC_RabiesBrains01`  contains a compressed raw data archive, the following will **not** transfer it:
  ```
  $ transferToServer RC_RabiesBrains01/sample01 RC_RabiesBrains01/sample02 /mnt/server/user/data/histology
  ```

  If the transfer completed successfully, the command creates an empty filed called `TRANSFER_SUCCEEDED` in the local directory (or directories). This file is not copied to the server.



  With this package installed and also brainreg installed you can run registrations with super easily at the command line using the downsampled stacks generated by StitchIt.

  * `cd` to a BakingTray sample directory
  * Run `brainregbt`


  Sample session
  ```
  $ brainregbt
  Select downsampled stack voxel size for registration.
  (Enter a number and press return)
  1. 25 micron
  2. 50 micron

  [1] ?
  Choose channel for registration.
  1. red channel
  2. green channel

  [1] ?


  Registering data for sample SM_1099839 with 50 micron downsampled red stack.
  Press return to start
  ```

  Running `brainregbt -D` will run the registration with the above defaults. Available resolutions depend on which downsampled stacks were generated by StitchIt.



  Create and activate a fresh conda environment and install with:
  ```
  $ pip install btpytools[dev]
  ```

  You can now `cd` to the project root directory and do the following.

  * Static code analysis: `mypy btpytools`
  * Run pre-commit operations with the command `pre-commit`
  * Run `black` to re-format files using `black ./`


pkgId: 6102304c71b2c6bf8472e8379cee91f73479313e480883632864b4042393bc8d
name: python-btrack
arch: src
version: 0.6.5
epoch: 0
release: 1
summary: A framework for Bayesian multi-object tracking
description: The tracker and hypothesis engine are mostly written in C++ with a Python wrapper.
url: https://pypi.org/project/btrack/
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-btrack-0.6.5-1.src.rpm
checksum_type: sha256
rpm_license:
  MIT License  Copyright (c) 2017 Alan R. Lowe (quantumjot)  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: df720e092f2249bcac799a8eb617e616e90a3ab442f81e4f9e7db4f297fd0fe0
name: python-btrdb
arch: src
version: 5.33.0
epoch: 0
release: 1
summary: Bindings to interact with the Berkeley Tree Database using gRPC.
url: https://pypi.org/project/btrdb/
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-btrdb-5.33.0-1.src.rpm
checksum_type: sha256
description:
  These are BTrDB Bindings for Python allowing you painless and productive access to the Berkeley Tree Database (BTrDB). BTrDB is a time series database focusing on blazing speed with respect to univariate time series data at the nanosecond scale.



  Our goal is to make BTrDB as easy to use as possible, focusing on integration with other tools and the productivity of our users. In keeping with this we continue to add new features such as easy transformation to numpy arrays, pandas Series, etc. See the sample code below and then checkout our [documentation](https://btrdb-python.readthedocs.io/en/latest/) for more in depth instructions.

      import btrdb

      
      conn = btrdb.connect("192.168.1.101:4410")

      
      streams = conn.streams_in_collection("USEAST_NOC1/90807")
      for stream in streams:
          print(stream.name)

      
      
      
      stream = conn.stream_from_uuid("71466a91-dcfe-42ea-9e88-87c51f847942")
      for point, _ in stream.values(start, end):
          print(point)
      >> RawPoint(1500000000000000000, 1.0)
      >> RawPoint(1500000000100000000, 2.0)
      >> RawPoint(1500000000200000000, 3.0)
      ...

      
      
      
      width = 300000000
      depth = 20
      for point, _ in stream.windows(start=start, end=end,
                                     width=width, depth=depth):
      >> StatPoint(1500000000000000000, 1.0, 2.0, 3.0, 3, 0.816496580927726)
      >> StatPoint(1500000000300000000, 4.0, 5.0, 6.0, 3, 0.816496580927726)
      >> StatPoint(1500000000600000000, 7.0, 8.0, 9.0, 3, 0.816496580927726)

  You can also easily work with a group of streams for when you need to evaluate data across multiple time series or serialize to disk.

      from btrdb.utils.timez import to_nanoseconds

      start = to_nanoseconds(datetime(2018,1,1,9,0,0))
      streams = db.streams(*uuid_list)

      
      data = streams.filter(start=start).to_array()

      
      streams.filter(start=start).to_csv("data.csv")

      
      streams.filter(start=start).to_dataframe()
      >>                    time  NOC_1/stream0  NOC_1/stream1
          0  1500000000000000000            NaN            1.0
          1  1500000000100000000            2.0            NaN
          2  1500000000200000000            NaN            3.0
          3  1500000000300000000            4.0            NaN
          4  1500000000400000000            NaN            5.0
          5  1500000000500000000            6.0            NaN
          6  1500000000600000000            NaN            7.0
          7  1500000000700000000            8.0            NaN
          8  1500000000800000000            NaN            9.0
          9  1500000000900000000           10.0            NaN



  See our documentation on [installing](https://btrdb-python.readthedocs.io/en/latest/installing.html) the bindings for more detailed instructions. However, to quickly get started using the latest available versions you can use `pip` to install from pypi with `conda` support coming in the near future.

      $ pip install btrdb



  This project includes a suite of automated tests based upon [pytest](https://docs.pytest.org/en/latest/). For your convenience, a `Makefile` has been provided with a target for evaluating the test suite. Use the following command to run the tests.

      $ make test

  Aside from basic unit tests, the test suite is configured to use [pytest-flake8](https://github.com/tholo/pytest-flake8) for linting and style checking as well as [coverage](https://coverage.readthedocs.io) for measuring test coverage.

  Note that the test suite has additional dependencies that must be installed for them to successfully run: `pip install -r tests/requirements.txt`.



  This codebase uses github actions to control the release process. To create a new release of the software, run `release.sh` with arguments for the new version as shown below. Make sure you are in the master branch when running this script.

  ```
  ./release.sh 5 11 4
  ```

  This will tag and push the current commit and github actions will run the test suite, build the package, and push it to pypi. If any issues are encountered with the automated tests, the build will fail and you will have a tag with no corresponding release.

  After a release is created, you can manually edit the release description through github.



  The project documentation is written in reStructuredText and is built using Sphinx, which also includes the docstring documentation from the `btrdb` Python package. For your convenience, the `Makefile` includes a target for building the documentation:

      $ make html

  This will build the HTML documentation locally in `docs/build`, which can be viewed using `open docs/build/index.html`. Other formats (PDF, epub, etc) can be built using `docs/Makefile`. The documentation is automatically built on every GitHub release and hosted on [Read The Docs](https://btrdb-python.readthedocs.io/en/latest/).

  Note that the documentation also requires Sphix and other dependencies to successfully build: `pip install -r docs/requirements.txt`.



  This codebases uses a form of [Semantic Versioning](http://semver.org/) to structure version numbers. In general, the major version number will track with the BTrDB codebase to transparently maintain version compatibility. Planned features between major versions will increment the minor version while any special releases (bug fixes, etc.) will increment the patch number.



  `pip install pre-commit` and then run
  `pre-commit run --all-files` to comb through changes and make sure they are formatted correctly.
  `pre-commit install` and then run `git commit` to automatically run the pre-commit hooks on every commit.

rpm_license:
  Copyright (c) 2017 Sam Kumar <samkumar@berkeley.edu> Copyright (c) 2017 Michael P Andersen <m.andersen@cs.berkeley.edu> Copyright (c) 2017 University of California, Berkeley 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. * Neither the name of the University of California, Berkeley nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.  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 OWNERS 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.


pkgId: 5699eaab4b6e9d911ea4d658bf5fbced392238cdc0e2431a0f085b3799e8c241
name: python-bts7960-micropython
arch: src
version: 0.0.1
epoch: 0
release: 1
summary: Project to manage H-Brigde model BTS7960 with micropython
url: https://pypi.org/project/bts7960-micropython/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bts7960-micropython-0.0.1-1.src.rpm
checksum_type: sha256
description:
  `bts7960-micropython` is a Python library to control a motor driver using the **BTS7960 H-Bridge** IC. This library allows you to control the motor speed and direction through PWM (Pulse Width Modulation) signals using a microcontroller like the ESP32 or ESP8266.







  - Control motor direction (forward/reverse)

  - Control motor speed (from -100 to 100)

  - Easy-to-use API for integrating into projects











  ```bash

  pip install bts7960-micropython


pkgId: 773e5a3e526def0d0c3a61ea0efbbc108ddc14a942f49a83e62fe55d187cb58a
name: python-bts_tools
arch: src
version: 0.5.3
epoch: 0
release: 1
summary: Graphene blockchains management tools
url: https://github.com/wackou/bts_tools
rpm_license: GNU General Public License v3 or later (GPLv3+)
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bts_tools-0.5.3-1.src.rpm
checksum_type: sha256
description:
  The BTS Tools will help you build, run and monitor any Graphene-based client
  (currently BitShares, Steem, Muse, PeerPlays).
            later expanded to support any Graphene-based network. This means that everywhere
            you will see BitShares mentioned in this documentation, it should be understood
            as BitShares, Steem or Muse. Similarly, ``bts`` can be interchanged with ``steem``
            and ``muse``.
  There are 2 tools currently provided:
  - command line utility allowing to quickly build and run any graphene-based client
  - web application allowing to monitor a running instance of the client and send
    an email or push notification on failure
  If you like these tools, please vote for `witness wackou`_ on the Steem, BitShares
  and Muse networks. Thanks!


pkgId: 6891e9eca96737e9edce8904247d85746c356652c193078816923f74fe93f3bc
name: python-btviewer
arch: src
version: 0.0.1rc16
epoch: 0
release: 1
summary: Web app for human labelling of tracking images
url: https://pypi.org/project/btviewer
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-btviewer-0.0.1rc16-1.src.rpm
checksum_type: sha256
description:
  ![deploy](https://github.com/sheffieldmltracking/btviewer/actions/workflows/deploy.yml/badge.svg)



  This repository contains the code for a user interface for viewing bee tracking photos and human labelling of these tracking images.



  Install the package in a [virtual environment](https://docs.python.org/3/tutorial/venv.html) using the [Python package manager](https://pip.pypa.io/en/stable/).

  ```bash
  pip install btviewer
  ```



  To run the backend, please run the `btviewer` command in your terminal, specifying the root folder that contains your image capture sessions:

  ```bash
  btviewer ~/my_data/
  ```

  To see the other options, run:

  ```
  btviewer --help
  ```



  Please read the [contribution guide](CONTRIBUTING.md).

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


pkgId: 9957618ef93f931c0c282552b28658774662270324f12f70477c4f331aea1c0c
name: python-bubble-api
arch: src
version: 0.5.1
epoch: 0
release: 1
summary: Interactions with Bubble.io API in Python made easy !
url: https://github.com/settorac-nina/bubble-api
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bubble-api-0.5.1-1.src.rpm
checksum_type: sha256
description:
  The easiest way to install it is through **pipy** :
  ```shell
  pip install bubble-api
  ```

  At the moment, there is no documentation for this library.
  You can, however, rely on the integration tests we use to ensure proper integration with Bubble.
  You can find them [here](tests/integration).

  ```python
  from bubble_api import BubbleClient
  bubble_client = BubbleClient(
      base_url="https://cuure.com",
      api_token="YOUR_API_TOKEN",
      bubble_version="live"
  )
  ```

  From the `BubbleClient` instance you can now interact with the data api easily.
  ```python
  object_data = bubble_client.get(
      "table_name",
      bubble_id="bubble_object_id",
  )
  ```
  And so on with all the basic interactions with the api: **delete**, **update**, **replace**, ...
  You can also use constraints for getting or deleting objects.
  This is done through a list of `Contraint` object you can declare by operations with the `Field` class.
  ```python
  from bubble_api import BubbleClient, Field
  from datetime import datetime
  bubble_client = BubbleClient( ... )
  constraints = [
      Field("name") == "Bob",
      Field("Created") > datetime(2023, 1, 1),
  ]
  data = bubble_client.get(
      "table_name",
      constraints=constraints
  )
  ```
  All the fields names and constraints values formatting is handle by the library.

  - [ ] Big request optimization using remaining approximation (exclude_remaining)
  - [ ] Multithreading
  - [ ] Default fields (Modified Date, unique id, Created Date, ...)
  - [ ] Lifetime object management (update, refresh, replace)
  - [ ] Documentation

  * **Dylan Nina** - *Initial work* - [settorac-nina](https://github.com/settorac-nina)
  * **Mathis Bourdin** - *Contributor* - [mathisbrdn](https://github.com/mathisbrdn)

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


pkgId: 083f21b182ba330d17d8f9b3e15015effa990bfe1c7cd1160dd2bf1456e229bb
name: python-bubble-client
arch: src
version: 0.7.3
epoch: 0
release: 1
summary: Python client for Bubble.io APIs
url: https://github.com/Refty/bubble-client
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bubble-client-0.7.3-1.src.rpm
checksum_type: sha256
description:
  [![PyPI](https://img.shields.io/pypi/v/bubble-client.svg)](https://pypi.org/project/bubble-client)
  [![License](https://img.shields.io/github/license/Refty/bubble-client)](LICENSE)
  [![Code style](https://img.shields.io/badge/code%20style-black-black)](https://github.com/ambv/black)
  Python client for the [Bubble.io][] APIs


pkgId: fa69254b7d1f3b7a16898cb60b667c662562a5f606eee7a5d6a162d4efdf453b
name: python-bubop
arch: src
version: 0.1.12
epoch: 0
release: 1
summary: Bergercookie's Useful Bits Of Python
url: https://github.com/bergercookie/bubop
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bubop-0.1.12-1.src.rpm
checksum_type: sha256
description:
  <a href="https://github.com/bergercookie/bubop/actions" alt="CI">
  <img src="https://github.com/bergercookie/bubop/actions/workflows/ci.yml/badge.svg" /></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" alt="pre-commit"></a>

  <a href='https://coveralls.io/github/bergercookie/bubop?branch=master'>
  <img src='https://coveralls.io/repos/github/bergercookie/bubop/badge.svg?branch=master' alt='Coverage Status' /></a>
  <a href="https://github.com/bergercookie/bubop/blob/master/LICENSE.md" alt="LICENSE">
  <img src="https://img.shields.io/github/license/bergercookie/bubop.svg" /></a>
  <a href="https://pypi.org/project/bubop/" alt="pypi">
  <img src="https://img.shields.io/pypi/pyversions/bubop.svg" /></a>
  <a href="https://badge.fury.io/py/bubop">
  <img src="https://badge.fury.io/py/bubop.svg" alt="PyPI version" height="18"></a>
  <a href="https://pepy.tech/project/bubop">
  <img alt="Downloads" src="https://pepy.tech/badge/bubop"></a>
  <a href="https://github.com/psf/black">
  <img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>



  This is a collection of python utils that I seem to be re-writing again and
  again in all new python projects of mine.



  Just install them with pip:

  ```sh
  pip3 install --user bubop


  poetry add bubop
  ```


pkgId: 07167c60145112bfde7151853f1136e695ce80d49bdb2b4ac32375c2bca07581
name: python-bubot-core
arch: src
version: 4.0.5
epoch: 0
release: 1
summary: iot framework based on OCF specification
url: https://github.com/businka/Bubot_Core
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bubot-core-4.0.5-1.src.rpm
checksum_type: sha256
description:
  IoT python framework based on OCF specification.

  Package contains basic primitives.




  This published under the MIT License, see [LICENSE](LICENSE) for details.


  Copyright (c) 2019 Mikhail Razgovorov


pkgId: 402ab542b45a53e4d1d6a2ae85aa30f6e6c192a1b288c4541b1817434940ce69
name: python-bubot-helpers
arch: src
version: 4.0.2
epoch: 0
release: 1
summary: iot framework based on OCF specification
url: https://github.com/businka/Bubot_Helpers
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bubot-helpers-4.0.2-1.src.rpm
checksum_type: sha256
description:
  Helper for modules of the boobot framework



  This published under the MIT License, see [LICENSE](LICENSE) for details.


  Copyright (c) 2019 Mikhail Razgovorov <http://razgovorov.ru/>,


pkgId: ab92e2546c7d9109dd0fa990ef457a4b35cb309f925485737eeb5e0cd1040769
name: python-bubot-webserver
arch: src
version: 4.0.3
epoch: 0
release: 1
summary: Web server for Bubot
url: https://github.com/businka/Bubot_WebServer
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bubot-webserver-4.0.3-1.src.rpm
checksum_type: sha256
description:
  The package implements a web server for the Bubot framework, provides http and websocket API.
  Does not contain static web pages.




  This published under the MIT License, see [LICENSE](LICENSE) for details.


  Copyright (c) 2019 Mikhail Razgovorov


pkgId: 86a903dc5852ea3aceb94fefad89d1145f9c6a7f7264130df54b412023d20c02
name: python-bucket-adapter
arch: src
version: 0.3.3
epoch: 0
release: 1
summary: A generic adapter for gcp/aws services to upload/downlaod files on bucket.
url: https://github.com/shopistan/buckets_adapter
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bucket-adapter-0.3.3-1.src.rpm
checksum_type: sha256
description:
  Buckets Adapter
  Buckets Adapter Django module is a base for upload files on bucket for different web services e.g Google Cloud Platform or Amazon Web Services which will be used as a package in different projects.


pkgId: 8ebec6dcf25576f1e4fc50b70afd3817130338a1fe137acd04819cb2583f9e64
name: python-bucketed-scene-flow-eval
arch: src
version: 2.0.25
epoch: 0
release: 1
summary: Bucketed Scene Flow Evaluation
url: https://pypi.org/project/bucketed-scene-flow-eval/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bucketed-scene-flow-eval-2.0.25-1.src.rpm
checksum_type: sha256
description:
  This repo provides the official implementation of _Bucket Normalized EPE_, as described in our paper [_I Can't Believe It's Not Scene Flow!_](https://vedder.io/trackflow.html)

  This repo provides:
   - A speed and class aware evaluation protocol called _Bucket Normalized EPE_. See our [paper](https://vedder.io/trackflow.html) for more details.
   - A standardized interface for working with Scene Flow datasets.
   - Evaulation infrastructure for the [Argoverse 2 2024 Scene Flow Challenge](https://eval.ai/web/challenges/challenge-page/2210/overview).

  Currently supported datasets:

   - Argoverse 2 (Human Labeled and [NSFP Pseudolabeled](https://github.com/kylevedder/BucketedSceneFlowEval/blob/master/docs/GETTING_STARTED.md#argoverse-2-nsfp-pseudolabels-new))
   - Waymo Open (LiDAR only)
   - NuScenes (LiDAR only, beta)


  If you use this repository as part of a publication, please cite:

  ```
  @inproceedings{khatri2024trackflow,
    author = {Khatri, Ishan and Vedder, Kyle and Peri, Neehar and Ramanan, Deva and Hays, James},
    title = {{I Can't Believe It's Not Scene Flow!}},
    journal = {European Conference on Computer Vision (ECCV)},
    year = {2024},
    pdf = {https://arxiv.org/abs/2403.04739},
    website={http://vedder.io/trackflow.html},
  }
  ```



  ```
  pip install bucketed-scene-flow-eval
  ```



  Follow our [Getting Started](docs/GETTING_STARTED.md) for setup instructions.



  We provide a demo script which shows off the various features of the API.



  To render the lidar and multiple camera views of an Argoverse 2 sequence in 3D, run:

  ```
  python scripts/demo_3d.py --dataset Argoverse2CausalSceneFlow --root_dir /efs/argoverse2/val/ --with_rgb --sequence_length 4
  ```

  ![Argoverse 2 MultiCam](docs/imgs/av2_multicam.png)

  To render RGB frames with lidar imposed on top, run:

  ```
  python scripts/demo_rgb.py --dataset Argoverse2SceneFlow --mode project_lidar  --reduction_factor 16 --root_dir /efs/argoverse2/val --sequence_length 150 --save_dir /efs/av2_camera_render/
  ```

  ![Argoverse 2 LiDAR](docs/imgs/av2_lidar.gif)

  To render the flow field of an Argoverse 2 sequence, run:

  ```
  python scripts/demo_rgb.py --dataset Argoverse2SceneFlow --mode project_flow  --reduction_factor 16 --root_dir /efs/argoverse2/val --sequence_length 150 --save_dir /efs/av2_camera_render/ --flow_dir <path to method flow output>
  ```

  ![Argoverse 2 Flow](docs/imgs/av2_gt_flow.gif)



  ```
  python scripts/demo.py --dataset WaymoOpenSceneFlow --root_dir /efs/waymo_open_processed_flow/validation/
  ```



  To evaluate an AV2 Scene Flow challenge entry named `./submission_val.zip` against validation dataset masks `/efs/argoverse2/val_official_masks.zip`, run

  ```
  python scripts/av2_eval.py /efs/argoverse2/val /efs/argoverse2/val_official_masks.zip ./submission_val.zip
  ```



  See `docs/` for more documentation .


pkgId: 513ad28f42d6c7988b92961cfa15599416a37c932af5b328e2fe88b50f5c7c30
name: python-budget-optimizer
arch: src
version: 0.0.1
epoch: 0
release: 1
summary: Budget optimizer for nested MMMs
url: https://github.com/redam94/budget_optimizer
rpm_license: Apache Software License 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-budget-optimizer-0.0.1-1.src.rpm
checksum_type: sha256
description:
  Matthew Reda

  <!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

  This library is to help wrap custom models for use in budget
  optimization. It is designed to work with nested MMMs, where the budget
  is allocated to different media channels and the performance is measured
  by multiple KPIs which are fed into a downstream revenue model.

  For example in a typical MMM, the budget is allocated to different media
  channels and the performance is measured by sales, website visits, and
  brand awareness. Website visits and brand awareness impact sales,
  website visits are impacted by brand awareness. So the effects of
  changing the budget flow through the nested KPIs.

  The library is designed to work with any model that can be wrapped in a
  `Model` class. The `Model` class should have needs a `predict` method
  that takes a dictionary of parameters and returns an xarray dataset with
  the model prediction for that model’s kpi. These model classes can be
  composed in a `NestedModel` class which will flow the predictions into
  the next stage of the model.

  Model loading and functions to define how budget translates into model
  inputs must be defined in a seperate file. Included in the folder with
  the model artifacts in a file called `model_config.py` which should
  contain the following functions:

  - `model_loader` - a function that takes a path and returns a `Model`
    object
  - `budget_to_model_inputs` - a function that a budget and model object
    and returns a dataset of model inputs

  > [!NOTE]
  >
  > ### How to define the model_config.py file
  >
  > See the example in the `example_files` folder for an example of how to
  > define these functions for a simple model.



  If you are new to using `nbdev` here are some useful pointers to get you
  started.



  ``` sh

  $ pip install -e .





  $ nbdev_prepare
  ```





  Install latest from the GitHub
  [repository](https://github.com/redam94/budget_optimizer):

  ``` sh
  $ pip install git+https://github.com/redam94/budget_optimizer.git
  ```

  or from [conda](https://anaconda.org/redam94/budget_optimizer)

  ``` sh
  $ conda install -c redam94 budget_optimizer
  ```

  or from [pypi](https://pypi.org/project/budget_optimizer/)

  ``` sh
  $ pip install budget_optimizer
  ```



  Documentation can be found hosted on this GitHub
  [repository](https://github.com/redam94/budget_optimizer)’s
  [pages](https://redam94.github.io/budget_optimizer/). Additionally you
  can find package manager specific guidelines on
  [conda](https://anaconda.org/redam94/budget_optimizer) and
  [pypi](https://pypi.org/project/budget_optimizer/) respectively.



  ``` python

  import xarray as xr
  from pathlib import Path
  import numpy as np
  from budget_optimizer.utils.model_classes import _Model, Budget

  INITIAL_BUDGET: Budget = dict(a=2., b=3.)

  class SimpleModel(_Model):
    """
    Simple model that just adds the two variables a and b.
    This can be as complex as you want as long as it has a predict method
    that takes an xarray Dataset and returns an xarray DataArray and
    a contributions method that takes an xarray Dataset and returns an xarray Dataset.

    Ideally, the model should also have data that defines the initial data that the
    model was trained on. You can wrap cutom models or functions in a class like this.
    """
    def __init__(self, data: xr.Dataset = None):
      self.data = data

    def predict(self, x: xr.Dataset) -> xr.DataArray:
      x = x.copy()
      x["prediction"] = x["a"] + x["b"]
      return x["prediction"]

    def contributions(self, x: xr.Dataset) -> xr.Dataset:
      return x

  def budget_to_data(budget: Budget, model: _Model) -> xr.Dataset:
      data = model.data.copy()
      for key, value in budget.items():
          data[key] = value/INITIAL_BUDGET[key]*data[key]
      return data

  def model_loader(path: Path) -> _Model:
      rng = np.random.default_rng(42)
      data_a = xr.DataArray(np.exp(1+rng.normal(0, .1, size=156)), dims='time', coords={"time": np.arange(1, 157)})
      data_b = xr.DataArray(np.exp(2+rng.normal(0, .1, size=156)), dims='time', coords={"time": np.arange(1, 157)})
      return SimpleModel(data = xr.Dataset({"a": data_a, "b": data_b}))
  ```

  ``` python
  class RevenueModel(BaseBudgetModel):
      def __init__(self, model_name: str, model_kpi: str, model_path: str):
          super().__init__(model_name, model_kpi, model_path)
  ```

  ``` python
  MODEL_NAME = "Revenue Model"
  MODEL_KPI = "Revenue"
  MODEL_PATH = "../example_files/model_1"
  model = RevenueModel(MODEL_NAME, MODEL_KPI, MODEL_PATH)
  budget_1 = dict(a=1, b=2)
  budget_2 = dict(a=2, b=1)
  outcome_budget_1 = model.predict(budget_1)
  outcome_budget_2 = model.predict(budget_2)
  ```

  <div id="fig-revenue-performance">

  ![](index_files/figure-commonmark/fig-revenue-performance-output-1.png)


  Figure 1: Revenue Performance of Budget 1 and Budget 2

  </div>


pkgId: 64483a8a70afa1751913ec1000aa3ee81d49d1eba0ab3a361a6ce561b68894d1
name: python-budgetmanager
arch: src
version: 1.2.1
epoch: 0
release: 1
summary: Django app for keeping track of budgets, payees, and payments
url: https://github.com/Grvs44/budgetmanager
rpm_license: BSD-3-Clause-Clear license
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-budgetmanager-1.2.1-1.src.rpm
checksum_type: sha256
description:
  - `urls.py`:
    ```Python
    urlpatterns = [
      path('budgetmanager/', include('budgetmanager.urls')),
    ]
    ```

  - `settings.py`:
    ```Python
    INSTALLED_APPS = [
      'budgetmanager',
      'rest_framework',
      'django_filters',
    ]
    ```
    - To disable the browsable API:
      ```Python
      REST_FRAMEWORK = {
        'DEFAULT_RENDERER_CLASSES': (
          'rest_framework.renderers.JSONRenderer',
        )
      }
      ```


pkgId: 4afb4d2d5365dd1ddd603a9560b396ba841b73512968af6f8fbe40c899c52604
name: python-budoux
arch: src
version: 0.6.3
epoch: 0
release: 1
summary: BudouX is the successor of Budou
url: https://pypi.org/project/budoux/
rpm_license: Apache-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-budoux-0.6.3-1.src.rpm
checksum_type: sha256
description:
  明日は
  曇りでしょう。
  ```
  ```shellsession
  $ budoux 本日は晴天です。 -H
  <span style="word-break: keep-all; overflow-wrap: anywhere;">本日は\u200b晴天です。</span>
  ```
  Please note that separators are denoted as `\u200b` in the example above for
  illustrative purposes, but the actual output is an invisible string as it's a
  zero-width space.
  If you want to see help, run `budoux -h`.
  ```shellsession
  $ budoux -h
  usage: budoux [-h] [-H] [-m JSON | -l LANG] [-d STR] [-V] [TXT]
  BudouX is the successor to Budou,
  the machine learning powered line break organizer tool.
  positional arguments:
    TXT                    text (default: None)
  optional arguments:
    -h, --help             show this help message and exit
    -H, --html             HTML mode (default: False)
    -m JSON, --model JSON  custom model file path (default: /path/to/budoux/models/ja.json)
    -l LANG, --lang LANG   language of custom model (default: None)
    -d STR, --delim STR    output delimiter in TEXT mode (default: ---)
    -V, --version          show program's version number and exit
  supported languages of `-l`, `--lang`:
  - ja
  - zh-hans
  - zh-hant
  - th
  ```

  BudouX supports HTML inputs and outputs HTML strings with markup that wraps phrases, but it's not meant to be used as an HTML sanitizer. **BudouX doesn't sanitize any inputs.** Malicious HTML inputs yield malicious HTML outputs. Please use it with an appropriate sanitizer library if you don't trust the input.

  English text has many clues, like spacing and hyphenation, that enable beautiful and readable line breaks. However, some CJK languages lack these clues, and so are notoriously more difficult to process. Line breaks can occur randomly and usually in the middle of a word or a phrase without a more careful approach. This is a long-standing issue in typography on the Web, which results in a degradation of readability.
  Budou was proposed as a solution to this problem in 2016. It automatically translates CJK sentences into HTML with lexical phrases wrapped in non-breaking markup, so as to semantically control line breaks. Budou has solved this problem to some extent, but it still has some problems integrating with modern web production workflow.
  The biggest barrier in applying Budou to a website is that it has dependency on third-party word segmenters. Usually a word segmenter is a large program that is infeasible to download for every web page request. It would also be an undesirable option making a request to a cloud-based word segmentation service for every sentence, considering the speed and cost. That’s why we need a standalone line break organizer tool equipped with its own segmentation engine small enough to be bundled in a client-side JavaScript code.
  Budou*X* is the successor to Budou, designed to be integrated with your website with no hassle.

  BudouX uses the [AdaBoost algorithm](https://en.wikipedia.org/wiki/AdaBoost) to segment a sentence into phrases by considering the task as a binary classification problem to predict whether to break or not between all characters. It uses features such as the characters around the break point, their Unicode blocks, and combinations of them to make a prediction. The output machine learning model, which is encoded as a JSON file, stores pairs of the feature and its significance score. The BudouX parser takes a model file to construct a segmenter and translates input sentences into a list of phrases.

  You can build your own custom model for any language by preparing training data in the target language.
  A training dataset is a large text file that consists of sentences separated by phrases with the separator symbol "▁" (U+2581) like below.
  ```text
  私は▁遅刻魔で、▁待ち合わせに▁いつも▁遅刻してしまいます。
  メールで▁待ち合わせ▁相手に▁一言、▁「ごめんね」と▁謝れば▁どうにか▁なると▁思っていました。
  海外では▁ケータイを▁持っていない。
  ```
  Assuming the text file is saved as `mysource.txt`, you can build your own custom model by running the following commands.
  ```shellsession
  $ pip install .[dev]
  $ python scripts/encode_data.py mysource.txt -o encoded_data.txt
  $ python scripts/train.py encoded_data.txt -o weights.txt
  $ python scripts/build_model.py weights.txt -o mymodel.json
  ```
  Please note that `train.py` takes time to complete depending on your computer resources.
  Good news is that the training algorithm is an [anytime algorithm](https://en.wikipedia.org/wiki/Anytime_algorithm), so you can get a weights file even if you interrupt the execution. You can build a valid model file by passing that weights file to `build_model.py` even in such a case.

  The default model for Japanese (`budoux/models/ja.json`) is built using the [KNBC corpus](https://nlp.ist.i.kyoto-u.ac.jp/kuntt/).
  You can create a training dataset, which we name `source_knbc.txt` below for example, from the corpus by running the following commands:
  ```shellsession
  $ curl -o knbc.tar.bz2 https://nlp.ist.i.kyoto-u.ac.jp/kuntt/KNBC_v1.0_090925_utf8.tar.bz2
  $ tar -xf knbc.tar.bz2  # outputs KNBC_v1.0_090925_utf8 directory
  $ python scripts/prepare_knbc.py KNBC_v1.0_090925_utf8 -o source_knbc.txt
  ```

  [Shuhei Iitsuka](https://tushuhei.com)

  This is not an officially supported Google product.


pkgId: 0151005f438a8ea35dafef1716cc0dcd7b0d78fa84e35c7afbfc8d0231708198
name: python-budy-api
arch: src
version: 0.5.0
epoch: 0
release: 1
summary: Budy API Client
url: http://budy-api.hive.pt
rpm_license: Apache License, Version 2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-budy-api-0.5.0-1.src.rpm
checksum_type: sha256
description:
  [Budy](http://budy.hive.pt) API Python client, to be used for simple synchronous integration.



  | Name              | Type  | Default                      | Description                                                                                                              |
  | ----------------- | ----- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
  | **BUDY_BASE_URL** | `str` | `http://localhost:8080/api/` | The base URL that is going to be used for API connections.                                                               |
  | **BUDY_COUNTRY**  | `str` | `US`                         | The country as an ISO 3166-1 to be used for API interactions.                                                            |
  | **BUDY_CURRENCY** | `str` | `USD`                        | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) code that describes the currency to be used for API interactions. |
  | **BUDY_USERNAME** | `str` | `None`                       | The username to be used for authentication.                                                                              |
  | **BUDY_PASSWORD** | `str` | `None`                       | The password to be user for authentication.                                                                              |



  Budy API is currently licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/).



  [![Build Status](https://app.travis-ci.com/hivesolutions/budy-api.svg?branch=master)](https://travis-ci.com/github/hivesolutions/budy-api)
  [![Build Status GitHub](https://github.com/hivesolutions/budy-api/workflows/Main%20Workflow/badge.svg)](https://github.com/hivesolutions/budy-api/actions)
  [![Coverage Status](https://coveralls.io/repos/hivesolutions/budy-api/badge.svg?branch=master)](https://coveralls.io/r/hivesolutions/budy-api?branch=master)
  [![PyPi Status](https://img.shields.io/pypi/v/budy-api.svg)](https://pypi.python.org/pypi/budy-api)
  [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://www.apache.org/licenses/)


pkgId: cdf2e844366c346734d25fa568afc0c3cc812f9333c8227378ff8a94a170a639
name: python-buenavista
arch: src
version: 0.5.0
epoch: 0
release: 1
summary: Programmable Presto and Postgres Proxies
url: https://github.com/jwills/buenavista
rpm_license: Apache
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-buenavista-0.5.0-1.src.rpm
checksum_type: sha256
description:
  Buena Vista is a Python library that provides a [socketserver](https://docs.python.org/3/library/socketserver.html)-based implementation
  of the [Postgres wire protocol (PDF)](https://beta.pgcon.org/2014/schedule/attachments/330_postgres-for-the-wire.pdf).

  I started working on this project in order to address a common issue that people had when they were using another
  one of my Python projects, [dbt-duckdb](https://github.com/jwills/dbt-duckdb): when a long-running Python process
  is operating on a [DuckDB](http://duckdb.org) database, you cannot connect to the DuckDB file using the CLI or
  with a database query tool like [DBeaver](https://dbeaver.io/) to examine the state of the database, because each DuckDB file
  may only be open by a single process at a time. The Buena Vista library makes it possible to work with a DuckDB database
  from multiple different processes over the Postgres wire protocol, and the library makes it simple enough to run an example
  that illustrates the idea locally:

  ```sh
  pip3 install buenavista
  python3 -m buenavista.examples.duckdb_postgres <optional_duckdb_file>
  ```

  in order to start a Postgres server on `localhost:5433` backed by the DuckDB database file that you passed in at the command line
  (or by an in-memory DuckDB database if you do not specify an argument.) You should be able to query the database via `psql` in
  another window by running `psql -h localhost -p 5433` (no database/username/password arguments required) or by using the DBeaver
  Postgres client connection.


pkgId: 711b003cff07d2f11647298d19be9a102ef6f9a4bc0c301764f06d6cc9e55e33
name: python-buffalo-gym
arch: src
version: 0.1.0
epoch: 0
release: 1
summary: Buffalo Gym environment
url: https://pypi.org/project/buffalo-gym/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-buffalo-gym-0.1.0-1.src.rpm
checksum_type: sha256
description:
  A multi-armed bandit (MAB) environment for the gymnasium API.
  One-armed Bandit is a reference to slot machines, and Buffalo
  is a reference to one such slot machine that I am fond
  of.  MABs are an excellent playground for theoretical exercise and
  debugging of RL agents as they provide an environment that
  can be reasoned about easily.  It helped me once to step back
  and write an MAB to debug my DQN agent.  But there was a lack
  of native gymnasium environments, so I wrote Buffalo, an easy-to-use
   environment that it might help someone else.



  Default multi-armed bandit environment.  Arm center values
  are drawn from a normal distribution (0, arms).  When an
  arm is pulled, a random value is drawn from a normal
  distribution (0, 1) and added to the chosen arm center
  value.  This is not intended to be challenging for an agent but
  easy for the debugger to reason about.



  This serves as a contextual bandit implementation.  It is a
  k-armed bandit with n states.  These states are indicated to
  the agent in the observation and the two states have different
  reward offsets for each arm.  The goal of the agent is to
  learn and contextualize best action for a given state.  This is
  a good stepping stone to Markov Decision Processes.

  This module had an extra parameter, pace.  By default (None), a
  new state is chosen for every step of the environment.  It can
  be set to any integer to determine how many steps between randomly
  choosing a new state.  Of course, transitioning to a new state is
  not guaranteed as the next state is random.



  This serves as a stateful bandit implementation.  There is a
  pervasive rumor that slot machine manufacturers put in
  a secret sequence of bets which trigger a large reward or the
  jackpot.  It is almost certainly not true in the real world but
  it is here.  A sequence of actions gives the max reward.  The
  sequence is randomly chosen on environment setup and indicated
  in the info of reset.  Not all sequences are aliased and this
  may be an important thing to check in an implementation.  Therefore,
  there is a rudimentary algorithm to force aliasing included.



  Install via pip and import buffalo_gym along with gymnasium.

  ```
  import gymnasium
  import buffalo_gym

  env = gym.make("Buffalo-v0")
  ```


pkgId: 2b503a5c7e0b000c97a4ae5203c492d88edd2702cadddbf18f795956262552e8
name: python-bufferer
arch: src
version: 0.22.1
epoch: 0
release: 1
summary: Insert fake buffering events into video files.
url: https://github.com/slhck/bufferer
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bufferer-0.22.1-1.src.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-1-orange.svg?style=flat-square)](#contributors-)
  <!-- ALL-CONTRIBUTORS-BADGE:END -->

  [![PyPI version](https://img.shields.io/pypi/v/bufferer.svg)](https://pypi.org/project/bufferer)

  [![Python package](https://github.com/slhck/bufferer/actions/workflows/python-package.yml/badge.svg)](https://github.com/slhck/bufferer/actions/workflows/python-package.yml)

  Inserts fake rebuffering events into video, optionally with skipping frames.

  Author: Werner Robitza <werner.robitza@gmail.com>

  ![](preview.gif)

  Contents:

  - [Requirements](#requirements)
  - [Installation](#installation)
  - [Usage](#usage)
  - [Caveats](#caveats)
  - [API](#api)
  - [Acknowledgements](#acknowledgements)
  - [Helpful info](#helpful-info)
  - [Contributors](#contributors)
  - [License](#license)



  - Python 3.8 or higher
  - FFmpeg:
      - download a static build from [their website](http://ffmpeg.org/download.html))
      - put the `ffmpeg` executable in your `$PATH`



      pip3 install bufferer

  Or clone this repository, then run the tool with `python -m bufferer`.



  ```
  bufferer    [-hfne] -i <input> -b <buflist> -o <output>
              [-v <vcodec>] [-a <acodec>]
              [-x <pixfmt>]
              [-s <spinner>] [--disable-spinner] [-p <speed>]
              [-t <trim>]
              [-r <brightness>]
              [-l <blur>]
              [--audio-disable]
              [--black-frame]
              [--force-framerate]
              [--skipping]
              [--verbose] [--version]

  -h --help                     show help message
  -f --force                    force overwrite output files
  -n --dry-run                  only print final command, do not run
  -i --input <input>            input video file
  -b --buflist <buflist>        list of buffering events in format "[[x1,y1], [x2,y2],...]" or
                                  "[x1,y1], [x2,y2], ..." where x = position of event in seconds, y = duration of event
  -o --output <output>          output video file
  -v --vcodec <vcodec>          video encoder to use (see `ffmpeg -encoders`) [default: ffv1]
  -a --acodec <acodec>          audio encoder to use (see `ffmpeg -encoders`) [default: pcm_s16le]
  -x --pixfmt <pixfmt>          set pixel format for output [default: yuv420p]
  -s --spinner <spinner>        path to spinner animated file or video [default: spinners/spinner-256-white.png]
  -e --disable-spinner          disable spinner, just show stopped video
  -p --speed <speed>            speed of the spinner, rounded to integer [default: 2]
  -t --trim <trim>              trim video to length in seconds or "HH:MM:SS.msec" format
  -r --brightness <brightness>  change brightness during buffering, use values between -1.0 and 1.0 [default: 0.0]
  -l --blur <blur>              change blur during buffering, value specifies kernel size [default: 5]
  -c --black-frame              start with a black frame if there is buffering at position 0.0
  --audio-disable               disable audio for the output, even if input contains audio
  --force-framerate             force output framerate to be the same as the input video file
  --skipping                    insert frame freezes with skipping (without indicator) at the <buflist> locations and durations
  --verbose                     show verbose output
  --version                     show version
  ```



  - The time stamps for the buffering list must be given in media time. If, for example, you want an initial loading time of 5 seconds, and then a stalling event to occur 10 seconds into the video, specify `[[0, 5], [10, 5]]`.
  - You need to pick a proper output file format for the codecs you choose. Use `.avi` for the FFV1 and PCM WAV defaults.
  - Make sure to select the right pixel format as output, e.g. `--pixfmt yuv420p` for higher compatibility.



  The program exposes an API that you can use yourself:

  ```python
  from bufferer import Bufferer

  b = Bufferer(input_video, output_video, buflist=[[0, 5], [10, 5]])
  b.insert_buf_audiovisual()
  ```

  For more usage please read [the docs](https://htmlpreview.github.io/?https://github.com/slhck/bufferer/blob/master/docs/bufferer.html).



  - Big Buck Bunny: Blender Foundation
  - Free spinners from http://preloaders.net/en/free
  - Click from http://metronomer.com/
  - Count from https://www.youtube.com/watch?v=U03lLvhBzOw



  To generate AV sync samples:

  ```bash
  ffmpeg \
  -y \
  -f lavfi -i testsrc=duration=60:size=320x240:rate=60,format=pix_fmts=yuv420p \
  -i click_and_count.m4a
  <output>
  ```

  A sample for input:

  ```bash
  ffmpeg -y -f lavfi \
      -i testsrc=duration=10:size=640x480:rate=60,format=pix_fmts=yuv420p \
      -i spinners/click_and_count.m4a \
      -vf 'drawtext=fontfile=/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-R.ttf:text=%{n}:fontsize=72:r=60:x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099' \
      -shortest \
      -c:v libx264 -preset ultrafast \
      -c:a copy \
      test/tmp.mp4
  ```

  Sample command to test buffering:

  ```bash
  ffmpeg \
  -y \
  -f lavfi -i testsrc=duration=60:size=320x240:rate=60,format=pix_fmts=yuv420p \
  -i spinners/click_and_count.m4a \
  -filter_complex " \
      [0:v] \
          loop=loop=240:size=1:start=0, setpts=N/FRAME_RATE/TB, \
          loop=loop=30:size=1:start=840, setpts=N/FRAME_RATE/TB, \
          loop=loop=84:size=1:start=1140, setpts=N/FRAME_RATE/TB, \
          loop=loop=48:size=1:start=1548, setpts=N/FRAME_RATE/TB \
      [stallvid]; \
          movie=filename=spinners/spinner-64-white.png:loop=0, setpts=N/(FRAME_RATE*TB)*2 \
      [spinner]; \
      [stallvid][spinner] \
          overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2:shortest=1:\
          enable='between(t,0,4.0)+between(t,14.0,14.5)+between(t,19.0,20.4)+between(t,25.8,26.6)' \
      [outv];
      [1:a] \
          aloop=loop=192000:size=1:start=0, asetpts=N/SAMPLE_RATE/TB, \
          aloop=loop=24000:size=1:start=672000, asetpts=N/SAMPLE_RATE/TB, \
          aloop=loop=67200:size=1:start=912000, asetpts=N/SAMPLE_RATE/TB, \
          aloop=loop=38400:size=1:start=1238399, asetpts=N/SAMPLE_RATE/TB, \
          volume=0:enable='between(t,0,4.0)+between(t,14.0,14.5)+between(t,19.0,20.4)+between(t,25.8,26.6)' \
      [outa] \
  " -shortest -map "[outv]" -map "[outa]" output.mp4
  ```



  <!-- 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/davidlindero"><img src="https://avatars.githubusercontent.com/u/5320473?v=4?s=100" width="100px;" alt="David Lindero"/><br /><sub><b>David Lindero</b></sub></a><br /><a href="https://github.com/slhck/bufferer/commits?author=davidlindero" title="Code">💻</a></td>
      </tr>
    </tbody>
    <tfoot>
      <tr>
        <td align="center" size="13px" colspan="7">
          <img src="https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg">
            <a href="https://all-contributors.js.org/docs/en/bot/usage">Add your contributions</a>
          </img>
        </td>
      </tr>
    </tfoot>
  </table>

  <!-- markdownlint-restore -->
  <!-- prettier-ignore-end -->

  <!-- ALL-CONTRIBUTORS-LIST:END -->



  bufferer, Copyright (c) 2017-2022 Werner Robitza

  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: 869002f4075b0b8d94e687495fdfd777e8e5248f8e0329ed8c270bbeabad0c9a
name: python-bugout-locust
arch: src
version: 0.3.2
epoch: 0
release: 1
summary: Locust: Track changes to Python code across git refs
url: https://github.com/simiotics/locust
rpm_license: UNKNOWN
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bugout-locust-0.3.2-1.src.rpm
checksum_type: sha256
description:
  "It's `git diff --stat` on steroids!" - [@scottmilliken](https://gitlab.com/scottmilliken)



  Locust helps you reason about your code base as it evolves over time.

  Locust provides a semantic layer on top of `git diff`. It emits metadata describing
  [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree)-level changes to your
  code base between git revisions.

  This metadata is useful to both humans and computers. For example:

  1. (Humans) Locust can generate
     [much more humane summaries of changes](https://github.com/bugout-dev/locust/pull/34) than the
     standard git diff.

  2. (Computers) [Bugout.dev](https://alpha.bugout.dev) uses Locust metadata to learn high level
     abstractions about code.



  Locust requires Python3 (specifically, it was written in Python3.8).



  ```bash
  pip install -U setuptools
  pip install bugout-locust
  ```



  Clone this repository and run from the project root:

  ```bash
  python setup.py install
  ```



  You can also use the Locust docker image:

  ```bash
  docker pull bugout/locust
  ```





  Locust is a command line tool, and you can invoke it as:

  ```bash
  locust 22dd7fd6adf392bb29d13d10f10e7dbb1d97bfce c9813bd5871a9919551ccd917712135c40367c5c --format yaml
  ```

  This produces the following output:

  ```yaml
  locust:
    - file: locust/ci_helpers/github.py
      changes:
        - name: generate_argument_parser
          type: function
          line: 11
          changed_lines: 9
          total_lines: 9
          children: []
        - name: helper_push
          type: function
          line: 22
          changed_lines: 13
          total_lines: 13
          children: []
        - name: helper_pr
          type: function
          line: 37
          changed_lines: 14
          total_lines: 14
          children: []
        - name: main
          type: function
          line: 53
          changed_lines: 29
          total_lines: 29
          children: []
  refs:
    initial: 22dd7fd
    terminal: c9813bd
  ```



  To use Locust to process a code base containing Python (>3.5) and Javascript, use the Javascript
  plugin (written in Node 14).

  If you are running Locust from the root of this project, you would do this as follows:

  ```
  locust -r <path to repo> <initial revision> <terminal revision> --plugins "node js/out/index.js"
  ```

  A Locust language plugin is simply a program that you can invoke from the shell (like
  `node js/out/index.js`) which takes two arguments:

  - `-i` - an input file containing a `locust.git.RunResponse` object

  - `-o` - path to an output file into which it writes a list of tuples consisting of
    `locust.git.PatchInfo` objects and their corresponding list of `locust.parse.RawDefinition`
    objects.

  The [Javascript plugin](./js/) provides a rubric for how to build your own plugin.

  You can add custom plugins to a Locust invocation like this:

  ```
  locust -r <path to repo> <initial revision> <terminal revision> \
    --plugins "node js/out/index.js" "<custom plugin invocation 1>" "<custom plugin invocation 2>"
  ```



  Locust is easy to use in CI/CD pipelines:

  - [Locust GitHub Action](https://github.com/simiotics/locust-action)



  You can use Locust with our [Bugout GitHub Bot](https://github.com/bugout-dev/github-demo).
  Locust extension will work after you push `./github/workflows/locust.yml` file in `main` branch:

  ```yaml
  name: Locust summary
  on: [pull_request_target]
  jobs:
    build:
      runs-on: ubuntu-20.04
      steps:
        - name: PR head repo
          id: head_repo_name
          run: |
            HEAD_REPO_NAME=$(jq -r '.pull_request.head.repo.full_name' "$GITHUB_EVENT_PATH")
            echo "PR head repo: $HEAD_REPO_NAME"
            echo "::set-output name=repo::$HEAD_REPO_NAME"
        - name: Checkout git repo
          uses: actions/checkout@v2
          with:
            repository: ${{ steps.head_repo_name.outputs.repo }}
            fetch-depth: 0
        - name: Install python
          uses: actions/setup-python@v2
          with:
            python-version: "3.8"
        - name: Install dependencies
          run: |
            python -m pip install --upgrade pip setuptools
            pip install bugout-locust
        - name: Generate and send Locust summary
          env:
            BUGOUT_SECRET: ${{ secrets.BUGOUT_SECRET }}
          run: |
            locust.github publish
  ```

  BUGOUT_SECRET should be setted up in repository/organization secrets. Value you can take from Bugout Account token page. Also `BUGOUT_API_URL: ${{ secrets.BUGOUT_API_URL }}` could be specified if you want to setup your personal server for processing locust summaries.



  To run Locust using docker:

  ```bash
  docker run -v $ABSOLUTE_PATH_TO_GIT_REPO:/usr/src/app bugout/locust -r /usr/src/app \
      $INITIAL_REVISION \
      $TERMINAL_REVISION \
      --format yaml
  ```



  Locust can produce output in many formats. The currently supported formats are:

  1. JSON (`--format json`)

  2. YAML (`--format yaml`)

  3. HTML (`--format html`)

  4. GitHub-flavored HTML, meant to be used with GitHub styles (`--format html-github`)





  Make sure to clone [simiotics/locust-test-cases](https://github.com/simiotics/locust-test-cases)
  repo to your machine.

  Run:

  ```bash
  git -c <path to locust-test-cases repo> fetch origin
  ```

  Then, from the root of this repo:

  ```bash
  LOCUST_TESTCASES_DIR=<path to locust-test-cases repo> ./test.sh
  ```





  [Kythe](https://kythe.io) is a Google open source project. It grew out of the need to semantically
  link different parts of Google's code base.

  The goals of Locust are different from those of Kythe. Locust is specifically about generating
  metadata describing _changes_ to code.

  Kythe on GitHub: https://github.com/kythe/kythe


pkgId: b4c780f8715e4303d0d428b8f6039a0eb478628cbf650bbbbcfc6b66fe1069bd
name: python-bugsink
arch: src
version: 0.1.17
epoch: 0
release: 1
summary: bugs happen — own ’em
url: https://pypi.org/project/bugsink/
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bugsink-0.1.17-1.src.rpm
checksum_type: sha256
description:
  Bugsink offers real-time [error tracking](https://www.bugsink.com/error-tracking/) for your applications with full control
  through self-hosting.

  * [Built to self-host](https://www.bugsink.com/built-to-self-host/)
  * [Sentry-compatible SDKs](https://www.bugsink.com/connect-any-application/)
  * [Scalable and reliable](https://www.bugsink.com/scalable-and-reliable/)



  This is what you'll get:

  ![Screenshot](https://www.bugsink.com/static/images/JsonSchemaDefinitionException.5e02c1544273.png)




  [Detailed installation instructions](https://www.bugsink.com/docs/installation/) on the Bugsink website, Pythonists
  may try their luck without reading the docs by doing a

  ```
  pip install bugsink
  ```

  [More information and documentation](https://www.bugsink.com/)

rpm_license:
  With regard to the Bugsink Software:  This software and associated documentation files (the "Software") may only be used under either of the following 2 conditions:  1. In production, if you (and any entity that you represent) have agreed to, and are in compliance with, the Bugsink Subscription Terms of Service, available at TODO (the "Terms"), or other agreement governing the use of the Software, as agreed by you and Bugsink B.V., and otherwise have a valid Bugsink subscription for the correct number of users.  OR  2. In a non-production environment, for a single user, for the purpose of evaluating the Software, provided that you are not using or have not used the Software in a way that would violate the Terms.  Subject to the foregoing condition, you are free to modify this Software, provided that you do not remove the copyright notice and the license notice and do not modify the code in a way that would conflict with the Terms.  You are not granted any other rights beyond what is expressly stated herein.  Subject to the foregoing, it is forbidden to copy, merge, publish, distribute, sublicense, and/or sell 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.  For all third party components incorporated into the Bugsink Software, those components are licensed under the original license provided by the owner of the applicable component:  * The icons in SVG format, directly included in various html templates are from Heroicons by Tailwind Labs, Inc. (MIT License)  * The code in the 'sentry' directory is Copyright 2019 Sentry (https://sentry.io) and individual contributors. (BSD 3-Clause License)  * Your package manager (typically pip) will install additional third party components upon installing Bugsink. Please refer to the license of the respective component in your package manager's repository.


pkgId: 47a326be8f60deb652ed891ad04ec15e3e64f767bd276dd95d68c849fc8cb84e
name: python-bugsink
arch: src
version: 0.1.18
epoch: 0
release: 1
summary: Self-hosted Error Tracking
url: https://pypi.org/project/bugsink/
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bugsink-0.1.18-1.src.rpm
checksum_type: sha256
description:
  [Bugsink](https://www.bugsink.com/) offers real-time [error tracking](https://www.bugsink.com/error-tracking/) for your applications with full control
  through self-hosting.

  * [Built to self-host](https://www.bugsink.com/built-to-self-host/)
  * [Sentry-compatible SDKs](https://www.bugsink.com/connect-any-application/)
  * [Scalable and reliable](https://www.bugsink.com/scalable-and-reliable/)



  This is what you'll get:

  ![Screenshot](https://www.bugsink.com/static/images/JsonSchemaDefinitionException.5e02c1544273.png)




  [Detailed installation instructions](https://www.bugsink.com/docs/installation/) on the Bugsink website, Pythonists
  may try their luck without reading the docs by doing a

  ```
  pip install bugsink
  ```

  [More information and documentation](https://www.bugsink.com/)

rpm_license:
  With regard to the Bugsink Software:  This software and associated documentation files (the "Software") may only be used under either of the following 2 conditions:  1. In production, if you (and any entity that you represent) have agreed to, and are in compliance with, the Bugsink Subscription Terms of Service, available at TODO (the "Terms"), or other agreement governing the use of the Software, as agreed by you and Bugsink B.V., and otherwise have a valid Bugsink subscription for the correct number of users.  OR  2. In a non-production environment, for a single user, for the purpose of evaluating the Software, provided that you are not using or have not used the Software in a way that would violate the Terms.  Subject to the foregoing condition, you are free to modify this Software, provided that you do not remove the copyright notice and the license notice and do not modify the code in a way that would conflict with the Terms.  You are not granted any other rights beyond what is expressly stated herein.  Subject to the foregoing, it is forbidden to copy, merge, publish, distribute, sublicense, and/or sell 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.  For all third party components incorporated into the Bugsink Software, those components are licensed under the original license provided by the owner of the applicable component:  * The icons in SVG format, directly included in various html templates are from Heroicons by Tailwind Labs, Inc. (MIT License)  * The code in the 'sentry' directory is Copyright 2019 Sentry (https://sentry.io) and individual contributors. (BSD 3-Clause License)  * Your package manager (typically pip) will install additional third party components upon installing Bugsink. Please refer to the license of the respective component in your package manager's repository.


pkgId: db6cf769d1b24a1c2b0f51192c8079fc10eaa4b585c0c6008f4ae9d79f757c8e
name: python-bugsink
arch: src
version: 0.1.20
epoch: 0
release: 1
summary: Self-hosted Error Tracking
url: https://pypi.org/project/bugsink/
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bugsink-0.1.20-1.src.rpm
checksum_type: sha256
description:
  [Bugsink](https://www.bugsink.com/) offers real-time [error tracking](https://www.bugsink.com/error-tracking/) for your applications with full control
  through self-hosting.

  * [Built to self-host](https://www.bugsink.com/built-to-self-host/)
  * [Sentry-compatible SDKs](https://www.bugsink.com/connect-any-application/)
  * [Scalable and reliable](https://www.bugsink.com/scalable-and-reliable/)



  This is what you'll get:

  ![Screenshot](https://www.bugsink.com/static/images/JsonSchemaDefinitionException.5e02c1544273.png)




  The **quickest way to evaluate Bugsink** is to spin up a throw-away instance using Docker:

  ```
  docker pull bugsink/bugsink:latest

  docker run \
    -e SECRET_KEY={{ random_secret }} \
    -e CREATE_SUPERUSER=admin:admin \
    -e PORT=8000 \
    -p 8000:8000 \
    bugsink/bugsink
  ```

  Visit [http://localhost:8000/](http://localhost:8000/), where you'll see a login screen. The default username and password
  are `admin`.

  Now, you can [set up your first project](https://www.bugsink.com/docs/quickstart/) and start tracking errors.

  [Detailed installation instructions](https://www.bugsink.com/docs/installation/) are on the Bugsink website.

  [More information and documentation](https://www.bugsink.com/)

rpm_license:
  With regard to the Bugsink Software:  This software and associated documentation files (the "Software") may only be used under either of the following 2 conditions:  1. In production, if you (and any entity that you represent) have agreed to, and are in compliance with, the Bugsink Subscription Terms of Service, available at TODO (the "Terms"), or other agreement governing the use of the Software, as agreed by you and Bugsink B.V., and otherwise have a valid Bugsink subscription for the correct number of users.  OR  2. In a non-production environment, for a single user, for the purpose of evaluating the Software, provided that you are not using or have not used the Software in a way that would violate the Terms.  Subject to the foregoing condition, you are free to modify this Software, provided that you do not remove the copyright notice and the license notice and do not modify the code in a way that would conflict with the Terms.  You are not granted any other rights beyond what is expressly stated herein.  Subject to the foregoing, it is forbidden to copy, merge, publish, distribute, sublicense, and/or sell 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.  For all third party components incorporated into the Bugsink Software, those components are licensed under the original license provided by the owner of the applicable component:  * The icons in SVG format, directly included in various html templates are from Heroicons by Tailwind Labs, Inc. (MIT License)  * The code in the 'sentry' directory is Copyright 2019 Sentry (https://sentry.io) and individual contributors. (BSD 3-Clause License)  * Your package manager (typically pip) will install additional third party components upon installing Bugsink. Please refer to the license of the respective component in your package manager's repository.


pkgId: bf565eef4dff76c0417910b0f26e906ab2564a6f0bd1ae9b8315b39d0a9cea6d
name: python-bugsnag
arch: src
version: 4.7.1
epoch: 0
release: 1
summary: Automatic error monitoring for django, flask, etc.
url: https://bugsnag.com/
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bugsnag-4.7.1-1.src.rpm
checksum_type: sha256
description:
  The official Python notifier for `Bugsnag <https://bugsnag.com/>`_.
  Provides support for automatically capturing and sending exceptions
  in your Django and other Python apps to Bugsnag, to help you find
  and solve your bugs as fast as possible.


pkgId: d339fade8962d2b1290c082569f060943c319c0d5004e66c28096562618d395f
name: python-bugzoo
arch: src
version: 2.3.0
epoch: 0
release: 1
summary: A platform for safely studying historical software versions.
url: https://github.com/squaresLab/BugZoo
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bugzoo-2.3.0-1.src.rpm
checksum_type: sha256
description:
  robust    Local   -                                           /home/chris/bugs/robust                                         -
  genprog   Remote  https://github.com/squaresLab/genprog-code  /home/chris/.bugzoo/sources/github_com_squaresLab_genprog-code  b4de21d7
  manybugs  Remote  https://github.com/squaresLab/ManyBugs      /home/chris/.bugzoo/sources/github_com_squaresLab_ManyBugs      ad83bd9a
  ```
  And `bugzoo bug list` and `bugzoo tool list` can be used to produce a list of
  all bugs and tools that are provided by your registered sources:
  ```
  $ bugzoo bug list


pkgId: cb7fbbb21e05c25c4bade07586fe32a8c21897e404eead2da1df2045d3261a8d
name: python-bui
arch: src
version: 0.3.4
epoch: 0
release: 1
summary: The Blind User Interface: the interface you can design with your eyes closed.
url: https://github.com/vincent-lg/bui/
rpm_license: BSD License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-bui-0.3.4-1.src.rpm
checksum_type: sha256
description:
  Blind User Interface (BUI) is meant to be a simple toolkit to design user interfaces with a Pythonic syntax.  Having been created by a blind user, it gives a lot of importance to accessibility and compatibility with screen readers, while offering a comfortable user interface that anyone can use.  However, this restriction doesn't imply you cannot (and should not) create complex or really beautiful user interfaces with BUI.  You should and you can.  You might consider helping this project, however, to help create more elaborate interfaces should the need arise.

  BUI relies on several core principles:

  - An interface should not break or require any change in code when porting to a new platform.  Thus, BUI is compatible at least with Linux, Mac OS X and Windows platforms.
  - A GUI toolkit perfectly accessible on Windows might break accessibility on Linux or Mac OS X.  Therefore, BUI might choose a different toolkit depending on the user's environment, with the developer's permission.
  - Design and control should be separated: no more code to create interfaces should be necessary.  Designing beautiful interfaces is, after all, a work for the designers, not for the developers.  Developers should focus on the user interactions (that is, how to handle a mouse press on this button, or what to do if some text is typed in this field).
  - A graphical user interface should be easy to test (in unittests for instance).  The stability of the user interface should be a core concern of the developer.

  These simple concepts make for an interesting (and inovative, to some extent) approach to creating interfaces with BUI.



  To install BUI, you should simply run `pip`:

      pip install bui



  Here is a basic usage of BUI.  This example is briefly explained just below.  To test this script, place it in any file and run it with Python, having installed BUI and a supported GUI toolkit:

  ```python
  from bui import Window, start

  class HelloBUI(Window):

      """Class to represent a basic hello world window."""

      layout = mark("""
        <window title="A BUI demonstration">
          <menubar>
            <menu name="File">
              <item>What is it?</item>
              <item>Quit</item>
            </menu>
          </menubar>

          <button x=2 y=2>Click me!</button>
          <text x=3 y=3 id=report>Report</text>
        </window>
      """)

      def on_click_me(self):
          """When the 'Click me!' button is pressed."""
          self["report"].value = "The button was clicked!"

      def on_quit(self):
          """When the user press the quit menu item in the File menu."""
          self.close()

      
      def on_press_alt_f4(self):
          """When the user presses Alt + F4."""
          self.close()

      
      on_press_ctrl_q = on_press_alt_f4


  start(HelloBUI)
  ```

  That's it.  This little code will generate a window with:

  1. A menu bar, containing only one menu (File) with different menu items.
  2. A button in the center of the window, called "Click me!".
  3. A text field below and to the right of this button where the text will be updated when the button is clicked.

  You will find more explanation in the [documentation](https://vincent-lg.github.io/bui/) or by browsing through the [examples](https://vincent-lg.github.io/bui/example/).



  - [BUI full documentation](https://vincent-lg.github.io/bui/)
  - [BUI tutorial](https://vincent-lg.github.io/bui/tutorial/)



  Blind User Interface is available under the terms of the BSD Public License (v3).  In short, you can use this code for whatever reason, provided you keep the copyright identifying this code as from BUI.  Apart from that, you can use this code for whatever purpose, including to design commercial software.  You can find the full terms by reading the LICENSE file.


pkgId: b878cb8ee13d7a6400fb65aa0c9d5c96be6881394e1b633f6e95a30f6479b34e
name: python-buidl
arch: src
version: 0.2.36
epoch: 0
release: 1
summary: An easy-to-use and fully featured bitcoin library written in pure python (no dependencies).
url: https://github.com/buidl-bitcoin/buidl-python
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-buidl-0.2.36-1.src.rpm
checksum_type: sha256
description:
  [![Python](https://github.com/buidl-bitcoin/buidl-python/actions/workflows/python.yml/badge.svg)](https://github.com/buidl-bitcoin/buidl-python/actions/workflows/python.yml)

  `buidl` is a `python3` bitcoin library with 0 dependencies.
  It is easy-to-read, has extensive test coverage, simple to install on airgapped computers (just copy over this directory).

  `buidl` has extensive feature support for the bitcoin blockchain:
  * **Trust-minimized** - easy-to-read cryptography implemented in straightforward/way with no third-party dependencies
  * **Performant** - optional [secp256k1 library bindings](https://github.com/bitcoin-core/secp256k1) offers a ~100x speedup, see [performance section below](#performance)
  * **Wallet tools** for various script types (`p2pkh`, `p2sh`, `p2sh-wrapped-p2wsh`, `p2wsh` and `p2tr` (coming soon) ), compressed/uncompressed pubkeys, address encodings, HD support (BIP32, BIP39, BIP44, seedpicker, etc), PSBT generation/decoding/validation, etc
  * **Extensive multisig support**/tooling for output descriptors, receive address validation, change address detection, fee verification, blinding xpubs, PSBTs, [BCUR v0](https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2020-005-ur.md) (v1 coming soon), airgap signing, etc
  * **SPV proofs and compact block filters** (Neutrino) - build powerful trust-minimized apps without scanning the whole blockchain
  * **P2P gossip network** - connect directly to the bitcoin network
  * **Footgun protection** - from elegantly structured OOP classes to [RFC6979](https://datatracker.ietf.org/doc/html/rfc6979) deterministic k-values, `buidl` is designed to be usable for non-cryptographers
  * **0 altcoins** - for maximum readability/focus. The only other supported coins are bitcoin's `testnet` and `signet`, which intentionally have no value.

  *This repository comes with zero guarantees, use at your own risk.*




  ```bash
  $ pip3 install buidl --upgrade
  ```


  Download this repo and then run:
  ```bash
  $ python3 setup.py install
  ```
  (alternatively, because `buidl` has no dependencies you can just `cd` into this root directory and call `buidl` without installation)


  `multiwallet` is a stateless CLI multisig PSBT wallet.
  Since `buidl` has no dependencies, you can run multiwallet by just `cd`ing to the root directory of this project:

  ```bash
  $ python3 multiwallet.py
  Welcome to multiwallet...
  ```

  If you have installed `buidl`, you can run `multiwallet.py` from any directory:
  ```bash
  $ multiwallet.py
  Welcome to multiwallet...
  ```

  For more information on installing multiwallet, see [multiwallet.md](docs/multiwallet.md) or check out [this demo](https://twitter.com/mflaxman/status/1321503036724989952).

  `singlesweep.py` works the same way for sweeping out of paper wallets, but is intentionally undocumented.



  Run tests with `pytest`:
  ```bash
  $ git clone https://github.com/buidl-bitcoin/buidl-python.git && cd buidl-python
  $ pytest -v
  ```
  (these will be 1-2 orders of magnitue faster with libsec bindings, see [performance section below](#performance))

  Run `black`:
  ```bash
  $ black . --diff --check
  ```

  Run `flake8`:
  ```bash
  $ flake8 .
  ```



  You can speed this library up ~100x by using C-bindings to [bitcoin core's `libsecp256k1` library](https://github.com/bitcoin-core/secp256k1).





  Use [brew](https://brew.sh/) to install `libsecp256k1`:
  ```
  $ brew tap buidl-bitcoin/homebrew-libsecp256k1
  $ brew install pkg-config libffi libsecp256k1
  ```


  Compile `libsecp256k1` from scratch with experimental modules enabled to make Schnorr signatures work:
  ```bash
  $ git clone https://github.com/bitcoin-core/secp256k1
  $ cd secp256k1
  $ ./autogen.sh
  $ ./configure --enable-module-extrakeys --enable-module-schnorrsig --enable-experimental
  $ make
  $ sudo make install
  ```



  ```bash
  $ git clone git@github.com:buidl-bitcoin/buidl-python.git && cd buidl-python && python3 -m pip install -r requirements-libsec.txt && python3 -m pip install --editable . && cd buidl && python3 libsec_build.py && cd .. && python3 -c "from buidl import *; print('success') if is_libsec_enabled() else print('LIBSEC INSTALL FAIL')"

  ```


pkgId: 9837f820dc24e182df60a1eb6baf327508519388d082c63550124bab0c1e57db
name: python-buienradar
arch: src
version: 1.0.6
epoch: 0
release: 1
summary: Library and CLI tools for interacting with buienradar.
url: https://github.com/mjj4791/python-buienradar
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-buienradar-1.0.6-1.src.rpm
checksum_type: sha256
description:
  Library and CLI tools for interacting with buienradar xml/api.
  - https://data.buienradar.nl/2.0/feed/json
  and precipitation forecase from:
  - https://gpsgadget.buienradar.nl/data/raintext?lat=<latitude>&lon=<longitude>
  Old XMI-based APIs used before http://xml.buienradar.nl.


pkgId: d919eca552c08d7899d41e85b8172a13e8a9379711d1dd7338d1655bd4b0a98d
name: python-build
arch: src
version: 1.2.2
epoch: 0
release: 1
summary: A simple, correct Python build frontend
url: https://pypi.org/project/build/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-build-1.2.2-1.src.rpm
checksum_type: sha256
description:
  [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/pypa/build/main.svg)](https://results.pre-commit.ci/latest/github/pypa/build/main)
  [![CI test](https://github.com/pypa/build/actions/workflows/test.yml/badge.svg)](https://github.com/pypa/build/actions/workflows/test.yml)
  [![codecov](https://codecov.io/gh/pypa/build/branch/main/graph/badge.svg)](https://codecov.io/gh/pypa/build)

  [![Documentation Status](https://readthedocs.org/projects/pypa-build/badge/?version=latest)](https://build.pypa.io/en/latest/?badge=latest)
  [![PyPI version](https://badge.fury.io/py/build.svg)](https://pypi.org/project/build/)
  [![Discord](https://img.shields.io/discord/803025117553754132?label=Discord%20chat%20%23build)](https://discord.gg/pypa)

  A simple, correct Python build frontend.

  See the [documentation](https://build.pypa.io) for more information.



  `build` can be installed via `pip` or an equivalent via:

  ```console
  $ pip install build
  ```



  ```console
  $ python -m build
  ```

  This will build the package in an isolated environment, generating a
  source-distribution and wheel in the directory `dist/`.
  See the [documentation](https://build.pypa.io) for full information.



  - `--sdist` (`-s`): Produce just an SDist
  - `--wheel` (`-w`): Produce just a wheel
  - `-C<option>=<value>`: A Config-setting, the PEP 517 way of passing options to a backend. Can be passed multiple times. Matching options will make a list. Note that setuptools has very limited support.
  - `--installer`: Pick an installer for the isolated build (`pip` or `uv`).
  - `--no-isolation` (`-n`): Disable build isolation.
  - `--skip-dependency-check` (`-x`): Disable dependency checking when not isolated; this should be done if some requirements or version ranges are not required for non-isolated builds.
  - `--outdir (`-o`): The output directory (defaults to `dist`)

  Some common combinations of arguments:

  - `--sdist --wheel` (`-sw`): Produce and SDist and a wheel, both from the source distribution. The default (if no flag is passed) is to build an SDist and then build a wheel _from_ the SDist.
  - `-nx`: Disable build isolation and dependency checking. Identical to pip and uv's `--no-build-isolation` flag.





  If you use [pipx][], such as in GitHub Actions, the following command will download
  and run build in one step:

  ```console
  $ pipx run build
  ```



  If you want to use [uv][] to speed up the virtual environment creation, you can use
  `--installer=uv`. You can get a Python wheel for `uv` with the `[uv]` extra.
  Combining both suggestions yields the following:

  ```console
  $ pipx run build[uv] --installer=uv
  ```



  If you are using [cibuildwheel][], build is integrated and can be use with either (in your `pyproject.toml`):

  ```toml
  [tool.cibuildwheel]
  build-frontend = "build"
  ```

  or

  ```toml
  [tool.cibuildwheel]
  build-frontend = "build[uv]"
  ```

  (Be sure to pre-install uv before running cibuildwheel for this one!)



  Everyone interacting in the build's codebase, issue trackers, chat rooms, and mailing lists is expected to follow
  the [PSF Code of Conduct].

  [psf code of conduct]: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md
  [pipx]: https://pipx.pypa.io
  [uv]: https://docs.astral.sh/uv/
  [cibuildwheel]: https://cibuildwheel.pypa.io


pkgId: 9a72cfb1fa73a746d5b6f31818250ec3b03eb6221dbb994ea1f77e44c3bb449c
name: python-build
arch: src
version: 1.2.2.post1
epoch: 0
release: 1
summary: A simple, correct Python build frontend
url: https://pypi.org/project/build/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-build-1.2.2.post1-1.src.rpm
checksum_type: sha256
description:
  [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/pypa/build/main.svg)](https://results.pre-commit.ci/latest/github/pypa/build/main)
  [![CI test](https://github.com/pypa/build/actions/workflows/test.yml/badge.svg)](https://github.com/pypa/build/actions/workflows/test.yml)
  [![codecov](https://codecov.io/gh/pypa/build/branch/main/graph/badge.svg)](https://codecov.io/gh/pypa/build)

  [![Documentation Status](https://readthedocs.org/projects/pypa-build/badge/?version=latest)](https://build.pypa.io/en/latest/?badge=latest)
  [![PyPI version](https://badge.fury.io/py/build.svg)](https://pypi.org/project/build/)
  [![Discord](https://img.shields.io/discord/803025117553754132?label=Discord%20chat%20%23build)](https://discord.gg/pypa)

  A simple, correct Python build frontend.

  See the [documentation](https://build.pypa.io) for more information.



  `build` can be installed via `pip` or an equivalent via:

  ```console
  $ pip install build
  ```



  ```console
  $ python -m build
  ```

  This will build the package in an isolated environment, generating a
  source-distribution and wheel in the directory `dist/`.
  See the [documentation](https://build.pypa.io) for full information.



  - `--sdist` (`-s`): Produce just an SDist
  - `--wheel` (`-w`): Produce just a wheel
  - `-C<option>=<value>`: A Config-setting, the PEP 517 way of passing options to a backend. Can be passed multiple times. Matching options will make a list. Note that setuptools has very limited support.
  - `--installer`: Pick an installer for the isolated build (`pip` or `uv`).
  - `--no-isolation` (`-n`): Disable build isolation.
  - `--skip-dependency-check` (`-x`): Disable dependency checking when not isolated; this should be done if some requirements or version ranges are not required for non-isolated builds.
  - `--outdir` (`-o`): The output directory (defaults to `dist`)

  Some common combinations of arguments:

  - `--sdist --wheel` (`-sw`): Produce and SDist and a wheel, both from the source distribution. The default (if no flag is passed) is to build an SDist and then build a wheel _from_ the SDist.
  - `-nx`: Disable build isolation and dependency checking. Identical to pip and uv's `--no-build-isolation` flag.





  If you use [pipx][], such as in GitHub Actions, the following command will download
  and run build in one step:

  ```console
  $ pipx run build
  ```



  If you want to use [uv][] to speed up the virtual environment creation, you can use
  `--installer=uv`. You can get a Python wheel for `uv` with the `[uv]` extra.
  Combining both suggestions yields the following:

  ```console
  $ pipx run build[uv] --installer=uv
  ```



  If you are using [cibuildwheel][], build is integrated and can be use with either (in your `pyproject.toml`):

  ```toml
  [tool.cibuildwheel]
  build-frontend = "build"
  ```

  or

  ```toml
  [tool.cibuildwheel]
  build-frontend = "build[uv]"
  ```

  (Be sure to pre-install uv before running cibuildwheel for this one!)



  On conda-forge, this package is called [python-build][].



  Everyone interacting in the build's codebase, issue trackers, chat rooms, and mailing lists is expected to follow
  the [PSF Code of Conduct].

  [psf code of conduct]: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md
  [pipx]: https://pipx.pypa.io
  [uv]: https://docs.astral.sh/uv/
  [cibuildwheel]: https://cibuildwheel.pypa.io
  [python-build]: https://github.com/conda-forge/python-build-feedstock


pkgId: 4b64c64440b6132f447d76a02908f0c06f982e05d22ce5415274e7471629e63b
name: python-build-a-brai-stani123
arch: src
version: 0.0.1
epoch: 0
release: 1
summary: Builds a LIF neural network
url: https://github.com/pypa/sampleproject
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-build-a-brai-stani123-0.0.1-1.src.rpm
checksum_type: sha256
description:
  Software project for BIOEN 537 computational systems biology. This package generates a general spiking network model with local field potnetial readout. LFPs can be uses to fit the model to data and estimate parameters of connectivity between layers and neuronal density of layers.


pkgId: ad11b980ef3c5f94a4758a8022d70ab6643ceb74f7fed136267932b9aff842e3
name: python-build-django
arch: src
version: 3.3.0
epoch: 0
release: 1
summary: Command line utility for building Django projects
url: https://notabug.org/kapustlo/build-django
rpm_license: GNU General Public License v3 (GPLv3)
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-build-django-3.3.0-1.src.rpm
checksum_type: sha256
description:
  Command line utility to build Django projects



  - Async
  - Flexible


  ```bash
  pip install build-django
  ```


  ```bash
  build-django my_project --dir my_project_path  --debug --hosts localhost,127.0.0.1,example.com --python python3  --migrate --git --commit --commit-message "My first commit!" --packages bjcli djangorestframework

  ```

  | Argument | Description | Required | Default | Type |
  | ------ | ------ | ------ | ------ | ------ |
  | --version | Show version and exit | False | False | bool
  | --dir | Django project directory | False | ./ | str
  | --debug | Should initialize env with DEBUG=True | False | False | bool
  | --no-compile | pip: Do not compile Python source files to bytecode | False | False | bool
  | --hosts | List of comma sperated Django ALLOWED_HOSTS values | False | '' | str
  | --python | Python command for initializing virtual environment. If not set, the Python used to run the program will be used | False | None | str
  | --migrate | Should apply initial migrations after project built | False | False | bool
  | --git | Should initialize git repository | False | False | bool
  | --commit | Should create initial commit after project built and git initialized | False | False | bool
  | --commit-message | Initial commit message | False | 'Initial commit' | str
  | --packages | List of additional pip packages to be installed | False | [] | [str]
  | --use-ssl | Enable SSL support for reverse proxy (production only) | False | False | bool


pkgId: 4944c965be75bb5c82a4a79a24d595930330df967b3186d35c0cde4ca57553ed
name: python-build123d
arch: src
version: 0.7.0
epoch: 0
release: 1
summary: A python CAD programming library
url: https://github.com/gumyr/build123d
rpm_license: Apache-2.0
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-build123d-0.7.0-1.src.rpm
checksum_type: sha256
description:
  <p align="center">
      <img alt="build123d logo" src="docs/assets/build123d_logo/logo-banner.svg">
  </p>

  [![Documentation Status](https://readthedocs.org/projects/build123d/badge/?version=latest)](https://build123d.readthedocs.io/en/latest/?badge=latest)
  [![tests](https://github.com/gumyr/build123d/actions/workflows/test.yml/badge.svg)](https://github.com/gumyr/build123d/actions/workflows/test.yml)
  [![pylint](https://github.com/gumyr/build123d/actions/workflows/lint.yml/badge.svg)](https://github.com/gumyr/build123d/actions/workflows/lint.yml)
  [![codecov](https://codecov.io/gh/gumyr/build123d/branch/dev/graph/badge.svg)](https://codecov.io/gh/gumyr/build123d)

  Build123d is a python-based, parametric, boundary representation (BREP) modeling framework for 2D and 3D CAD. It's built on the Open Cascade geometric kernel and allows for the creation of complex models using a simple and intuitive python syntax. Build123d can be used to create models for 3D printing, CNC machining, laser cutting, and other manufacturing processes.  Models can be exported to a wide variety of popular CAD tools such as FreeCAD and SolidWorks.

  Build123d could be considered as an evolution of [CadQuery](https://cadquery.readthedocs.io/en/latest/index.html) where the somewhat restrictive Fluent API (method chaining) is replaced with stateful context managers - e.g. `with` blocks - thus enabling the full python toolbox: for loops, references to objects, object sorting and filtering, etc.

  The documentation for **build123d** can found at [readthedocs](https://build123d.readthedocs.io/en/latest/index.html).

  There is a [***Discord***](https://discord.com/invite/Bj9AQPsCfx) server (shared with CadQuery) where you can ask for help in the build123d channel.

  The recommended method for most users is to install **build123d** is:
  ```
  pip install build123d
  ```

  To get the latest non-released version of **build123d*** one can install from GitHub using one of the following two commands:

  In Linux/MacOS, use the following command:
  ```
  python3 -m pip install git+https://github.com/gumyr/build123d
  ```
  In Windows, use the following command:
  ```
  python -m pip install git+https://github.com/gumyr/build123d
  ```

  If you receive errors about conflicting dependencies, you can retry the installation after having upgraded pip to the latest version with the following command:
  ```
  python3 -m pip install --upgrade pip
  ```

  Development install
  ```
  git clone https://github.com/gumyr/build123d.git
  cd build123d
  python3 -m pip install -e .
  ```

  Further installation instructions are available (e.g. Poetry, Apple Silicon) see the [installation section on readthedocs](https://build123d.readthedocs.io/en/latest/installation.html).


pkgId: 9828cc4470353f4d7f3712d66d1a668dbd55b18399c54473ce16f5e43844751e
name: python-buildable
arch: src
version: 0.4.0
epoch: 0
release: 1
summary: Combine and edit Ableton Live sets (.als files).
url: https://pypi.org/project/buildable/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-buildable-0.4.0-1.src.rpm
checksum_type: sha256
description:
  `buildable` allows you to edit and extend Ableton Live sets programmatically. For example, you could
  have a single set that stores your common return tracks, and use `buildable` to add them to various
  template sets.
  Currently you can:
  - copy tracks/returns from other sets.
  - delete and re-order tracks/returns.
  - edit key and MIDI mappings for many set elements.
  - set some high-level view properties, like the session/arrangement state.

  ```console
  pip install buildable
  ```

  For example, you could create a project containing set components that you want to mix together, and
  generate templates from them with something like:
  ```python
  from buildable import LiveSet

  jam_session = LiveSet.from_file('jam-session-tracks.als')
  composition = LiveSet.from_file('composition-tracks.als')

  shared_structure = LiveSet.from_file('shared-structure.als')
  for template_set in (jam_session, composition):
      
      template_set.insert_return_tracks(shared_returns.return_tracks)
      template_set.main_track = shared_main.main_track
      
      template_set.transport.tap_tempo_key_midi.persistent_key_string = "p"

  jam_session.main_track.key_midi_crossfade_equal.channel = 0
  jam_session.main_track.key_midi.crossfade_equal.note_or_controller = 1

  composition.chooser_bar = LiveSet.CHOOSER_BAR_ARRANGEMENT
  jam_session.write_to_file("/path/to/user-library/Templates/JamSession.als")
  composition.write_to_file("/path/to/user-library/Templates/Composition.als")
  ```

  Live sets are represented natively as XML documents, and `buildable` objects mirror a subset of the
  native document structure as closely as possible, with helpers for more complex operations like
  copying tracks. XML elements are also exposed directly if you want to go off-piste. This helps with
  flexibility and maintainability, but comes with some caveats:
  - spelling mistakes and naming inconsistencies are carried over from the native format.
  - some simple operations require using relatively complex accessors - for example, key/MIDI mappings
    for sends are accessed using
    e.g. `live_set.primary_tracks[0].device_chain.mixer.sends.track_send_holders[0].send.key_midi`.
  - `buildable` won't stop you from setting values that are semantically valid, but invalid at
    runtime.
  The best way to familiarize yourself with the native document structure is to examine existing Live
  sets (using e.g. `gunzip -c my-set.als`) and/or look through the `buildable` source code.


pkgId: 95538e4f0b8e400f6783517e9bc96f6cdd84a0b8b143225a710d7bf741616c34
name: python-buildbot
arch: src
version: 4.1.0
epoch: 0
release: 1
summary: The Continuous Integration Framework
url: http://buildbot.net/
rpm_license: None
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-buildbot-4.1.0-1.src.rpm
checksum_type: sha256
description:
  Buildbot is an open-source continuous integration framework for automating software build, test, and release processes.
  * Buildbot is easy to set up, but very extensible and customizable.
    It supports arbitrary build processes, and is not limited to common build processes for particular languages (e.g., autotools or ant)
  * Buildbot supports building and testing on a variety of platforms.
    Developers, who do not have the facilities to test their changes everywhere before committing, will know shortly afterwards whether they have broken the build or not.
  * Buildbot allows to track various metrics (warning counts, lint checks, image size, compile time, etc) over time.
  * Buildbot has minimal requirements for workers: using virtualenv, only a Python installation is required.
  * Workers can be run behind a NAT firewall and communicate with the master.
  * Buildbot has a variety of status-reporting tools to get information about builds in front of developers in a timely manner.


pkgId: 1270865f8ad88910fde7c127f55db0c8ef5dde1d0a9fb6812789320bab66e487
name: python-buildbot-UnrealEngine
arch: src
version: 1.7.1
epoch: 0
release: 1
summary: Easy configuration for the Unreal Automation Tool
url: https://github.com/pampersrocker/buildbot-UnrealEngine
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-buildbot-UnrealEngine-1.7.1-1.src.rpm
checksum_type: sha256
description:
  Buildbot Plugin to run Commands using the Unreal Automation Tool

  [![PyPI version](https://badge.fury.io/py/buildbot-UnrealEngine.svg)](https://badge.fury.io/py/buildbot-UnrealEngine) [![Build Status](https://travis-ci.org/pampersrocker/buildbot-UnrealEngine.svg?branch=master)](https://travis-ci.org/pampersrocker/buildbot-UnrealEngine) [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/pampersrocker/buildbot-UnrealEngine/master/LICENSE)



  ```
  pip install buildbot_UnrealEngine
  ```

  This enables the additional step commands as plugins inside buildbot (which are imported via `from buildbot.plugins import steps`)



  ```py
  from buildbot.plugins import steps

  factory = util.BuildFactory()



  factory.addStep(
      steps.UEBuild(
          "Engine_Location",
          "Path_To_Project.uproject",
          "TargetName",
          
      )
  )

  factory.addStep(
      steps.UERebuild(
          "Engine_Location",
          "Path_To_Project.uproject",
          "TargetName",
          
      )
  )

  factory.addStep(
      steps.UEClean(
          "Engine_Location",
          "Path_To_Project.uproject",
          "TargetName",
          
      )
  )



  factory.addStep(
      steps.BuildCookRun(
          "Engine_Location",
          "Path_To_Project.uproject",
          
      )
  )
  ```



  All commands share the following base parameters:

  | Parameter | Type/Options | Description |
  | --- | --- | --- |
  | engine_path |string (required) | The location to the used engine, the path needs to point to the root folder of the engine (in this folder are at least the `Engine`, `FeaturePacks`, `Samples` and `Templates` folders) |
  | project_path | string (required) | The absolute location to the uproject file to be used. (Usually a `Interpolate("...")` to build the path using the current builddir) |
  | build_platform | string (default `"Windows"`), Options: `"Windows"` `"Linux"` `"Mac"` | The platform on which the build itself will run, used to determine which scripts to run |
  | engine_type | string (default `"Rocket"`), Options: `"Source"` `"Installed"` `"Rocket"` | <p><ul><li>`Source`: Engine is built from GitHub Source</li><li>`Installed`: Engine is self build from GitHub source and made a binary build via the BuildGraph tool</li><li>`Rocket`: Pre-built engine from Epic Games via EpicGamesLauncher</li></ul></p> |



  ```py
  factory.addStep(
      steps.BuildCookRun(
          engine_path,
          project_path,
          target_platform="Win64",
          target_config="Development",
          no_compile_editor=False,
          compile=None,
          cook=None,
          cook_on_the_fly=None,
          build=False,
          clean=False,
          archive=False,
          archive_directory=None,
          p4=None,
          unversioned_cooked_content=False,
          encrypt_ini_files=False,
          release_version=None,
          base_version=None,
          compressed=False,
          distribution=False,
          iterate=False,
          run=False,
          devices=None,
          null_rhi=False,
          nativize=False,
          stage=False,
          map=None,
          pak=False,
          prereqs=False,
          package=False,
          crash_reporter=False,
          title_id=None,
          dlc_name=None,
          dlc_include_engine=False,
          generate_patch=False,
          add_patch_level=False,
          generate_remaster=False,
          extra_args=None,
      )
  )
  ```

  | Parameter | Type/Options | Description |
  | --- | --- | --- |
  | no_compile_editor | bool | If true adds `-NoCompileEditor` to the command line. Skip compiling the editor target for game (needed for cooking), useful if already done before. |
  | compile | bool | If true adds `-Compile` to the command line. `-NoCompile` if false. This switch is usually required on source builds. It tells the UAT to compile itself before running any commandlets, however on Installed/Rocket builds this will result in an error as the sources for UAT are not part of those engine distributions. |
  | cook | bool | If true adds `-Cook` to the command line. `-SkipCook` if false. Enables or disables the cook step. |
  | cook_on_the_fly | bool | If true adds `-CookOnTheFly` to the command line. `-SkipCookOnTheFly` if false. Does not cook the content, but starts the cook process in servermode, where a game can connect to using the `-FileHostIP=<IP>` parameter to connect to this server. The server will then cook requested content on the fly. |
  | build | bool | If true adds `-Build` to the command line. Enables the build step, compiling the game for the target platform. |
  | clean | bool | If true adds `-Clean` to the command line. Perform a clean build |
  | archive | bool | If true adds `-Archive` to the command line. Archive the build after completion. |
  | archive_directory | string | If true adds `-ArchiveDirectory=<TheString>` to the command line. Specify the archive directory. If omitted, the path in the configuration file will be used. |
  | p4 | bool | If true adds `-P4` to the command line, `-NoP4` if false. Enables disabled interaction with Perforce. |
  | unversioned_cooked_content | bool | If true adds `-UnversionedCookedContent` to the command line. This writes no version into the cooked assets. |
  | encrypt_ini_files | bool | If true adds `-EncryptIniFiles` to the command line. Encrypts the packaged ini files. |
  | release_version | string | If set adds `-CreateReleaseVersion=<TheString>` to the command line. This creates a releasee version of the game for later patching (see BasedOnReleaseVersion) |
  | base_version | string | If set adds `-BasedOnReleaseVersion=<TheString>` to the command line. This creates a patch or dlc based on the given release version, containing only changes that differ from the release version. |
  | compressed | bool | If true adds `-Compressed` to the command line. This compressed your pak files to be to use fewer disk space, but increased loading times. |
  | distribution | bool | If true adds `-Distribution` to the command line. Creates a distribution build (used for mobile) |
  | iterate | bool | If true adds `-Iterate` to the command line. Only cooks changed files if run on the same directory as before |
  | run | bool | If true adds `-Run` to the command line. Runs the packaged game after completion. |
  | devices | string array | If set adds `-Device=<The+String+Array>` to the command line. Specifies on which devices the game will be run upon completion. |
  | null_rhi | bool | If true adds `-NullRHI` to the command line. Runs the packaged games with no renderer. |
  | nativize | bool | If true adds `-NativizeAssets` to the command line. Runs blueprint nativization during the cook process |
  | stage | bool | If true adds `-Stage` to the command line. Save the cooked result in a staging directory |
  | map | string array | If set adds `-Map=<The+String+Array> to the command line. Sets the map to include for the cook process. If omitted, used the one specified on the project documentation. |
  | pak | bool | If true adds `-Pak` to the command line. Use pak files for packaging, if omitted uassets file will be directly in the content directory. |
  | prereqs | bool | If true adds `-Prereqs` to the command line. Include prerequisites in the packaged game. |
  | package | bool | If true adds `-Package` to the command line. Package the game for the target platform (app file on Mac, apk on Android or ipa on iPhone) |
  | crash_reporter | bool | If true adds `-CrashReporter` to the command line. Includes the crash reporter during packaging. |
  | dlc_name | string | If set adds -DLCName=<DLCName> to the command line. This will cook the specified Plugin as DLC. |
  | dlc_include_engine | bool | If true adds `-DLCIncludEngineContent` to the command line. DLC should include Engine content. |
  | generate_patch | bool | If true adds `-GeneratePatch` to the command line. Create a patch, requires `base_version` to be set. |
  | add_patch_level | bool | If true adds `-AddPatchLevel` to the command line. Adds a patch pak level, when creating a patch. |
  | generate_remaster | bool | If true adds `-GenerateRemaster` to the command line. PS4 specific patch option. |
  | title_id | string or list of strings | If true adds `-TitleId=<Title+Id+Separated>` to the command line. PS4 specific title id command. |
  | extra_args | string or list of strings | If set adds the given arguments to the command line. Can be used for custom or missing command line parameters. |




  * Download and install [Python 2.7](https://www.python.org/downloads/)

  * Install virtualenv
    ```
    pip install virtualenv
    ```
  * Create a virtualenv in `.workspace\venv`
    ```
    mkdir .workspace
    cd workspace
    C:\Python27\Scripts\virtualenv.exe venv
    cd ..\..\
    .workspace\venv\Scripts\activate.bat
    pip install -r requirements.txt
    ```

  * Download [PyWin32](https://sourceforge.net/projects/pywin32/files/pywin32/) (for twisted) and install it in your venv
    ```
    easy_install <PATH_TO_pywin32-220.win32-py2.7.exe>
    ```

  * Clone Buildbot (in Version 0.9.1) somewhere and install it and its test setup
    ```
    git clone https://github.com/buildbot/buildbot.git -b v0.9.1
    cd buildbot\master
    pip install -e .
    python setup.py test
    ```

  * Install buildbot-UnrealEngine (inside your buildbot-UnrealEngine repo)
    ```
    pip install -e .
    ```

  * Now you can run the tests by writing
    ```
    trial buildbot_UnrealEngine.test
    ```

  * For code coverage install txcovreport:
    ```
    easy_install http://darcs.idyll.org/~t/projects/figleaf-latest.tar.gz
    pip install git+https://github.com/jrydberg/txcovreport.git
    ```

    Now you can run code coverage using
    ```
    trial --reporter=tree-coverage buildbot_UnrealEngine.test
    ```


pkgId: daf3b75ecc7d3fa985fdf70e05ae7c8863c1e0161bf20f44f0b7a381fd07ae66
name: python-buildbot-gitea
arch: src
version: 1.8.0
epoch: 0
release: 1
summary: buildbot plugin for integration with Gitea.
url: https://github.com/lab132/buildbot-gitea
rpm_license: MIT License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-buildbot-gitea-1.8.0-1.src.rpm
checksum_type: sha256
description:
  [![PyPI version](https://badge.fury.io/py/buildbot-gitea.svg)](https://badge.fury.io/py/buildbot-gitea)
  ![GitHub](https://img.shields.io/github/license/lab132/buildbot-gitea)

  This plugin for buildbot adds integration support with gitea, featuring push hooks, commit status updates and a change source.


  ```
  pip install buildbot_gitea
  ```

  This installs itself into the plugin discovery of buildbot, so no extra imports are required to get buildbot to find the plugin.



  The following configuration shows how the different parts of the plugin can be set-up in the buildbot master.cfg:

  ```py

  from buildbot.plugins import *

  c = BuildbotMasterConfig = {}
  c['www'] = {
      'change_hook_dialects': {
          'gitea': {
              'secret': '<SecretToEnterInGitea>',
              'onlyIncludePushCommit': True
          }
      },
  }

  c['services'] = [
      
      reporters.GiteaStatusPush(
          'https://example.com', "SECRET", verbose=True)
  ]

  buildFactory = util.BuildFactory()

  factory.addStep(steps.Gitea(
      repourl="ssh://git@example.com/example_user/example_project.git",
      mode='incremental',
      workdir="build",
      branch="master",
      codebase='example_codebase',
      progress=True,
      logEnviron=False,
  ))
  ```

  The webhook currently supports pushes and pull requests by default, but you can
  subclass `buildbot_gitea.webhook.GiteaHandler` to add supports for other events,
  and then use your subclass by setting the `class` parameter:

  ```py


  from buildbot_gitea.webhook import GiteaHandler
  class MyGiteaHook(GiteaHandler)
      def process_whatever(self, payload, event_type, codebase):
          
          changes = []

          return changes



  from myhook import MyGiteaHook

  c['www'] = {
      'change_hook_dialects': {
          'gitea': {
              'class': MyGiteaHook,
              
          }
      }
  }
  ```

  Note that the handlers need to be named according to the scheme:
  `process_{event}` (e.g., `process_create`, etc).





  The change hook is set as part of the `www` section in the `change_hook_dialects` named `gitea`.

  | Parameter                  | Description                                                                                                                                                                                                                               |
  |----------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | `secret`                   | The secret, which needs to be set in gitea                                                                                                                                                                                                |
  | `onlyIncludePushCommit`    | A push may have more than one commit associated with it. If this is true, only the newest (latest) commit of all received will be added as a change to buildbot. If this is set to false, all commits will inside the push will be added. |
  | `onlyMergeablePullRequest` | Ignore pull request if not mergeable. If this is true, only mergeable pull requests will be processed.                                                                                                                                    |
  | `class`                    | Set this if you want to use your own handler class (see above for details)                                                                                                                                                                |

  In gitea in your project or organization and add a new webhook of type gitea.
  Set the parameters as follows:

  | Parameter | Value |
  | --- | --- |
  | Target URL  | https://example.com/change_hook/gitea/ |
  | HTTP Method  | `POST` |
  | POST Content Type  | `application/json` |
  | Secret  | The `secret` from above |



  The change source is part build step to clone a gitea repository. It includes features to build a pull request, if the pull request can be merged without conflicts. This needs to be used in conjunction with a gitea `change_hook` and have it send pull request updates in order to be able  to handle pull requests.

  The parameters for this are identical to the default [`git`](http://docs.buildbot.net/latest/manual/configuration/buildsteps.html#git) step from buildbot. It just uses information provided by the gitea `change_hook` to be able to handle pull requests.



  The reporter sets the commit status of a commit inside of gitea, so in gitea a small icon will be displayed next to the commit message, indicating the build status.

  The `GiteaStatusPush` is added to the `services` section of the global master config.

  The parameters are as follows:

  | Parameter | Value |
  | --- | --- |
  | URL | The URL to the gitea instance. |
  | `token` | Generate an access token in the profile you want the buildbot to impersonate. Make sure the account in gitea has access to the repositories. |
  | `context` | `Renderable` The context is an identifier for this status, allowing to identify from which builder this came, defaults to `Interpolate('buildbot/s')` |
  | `context_pr` | `Renderable` The context message to use, when building on a pull request, allowing to identify from which builder this came, defaults to `Interpolate('buildbot/pull_request/s')` |
  | `warningAsSuccess` | Treat warnings as build as success to set in the build status of gitea. If false, warnings will be displayed as warnings. |
  | `verbose` | Perform verbose output |



  Gitea supports OAuth2 authentication so it is possible to have buildbot communicate to Gitea to authenticate the user.

  `./master.cfg`

  ```py
  from buildbot.plugins import util
  c['www']['auth'] = util.GiteaAuth(
      endpoint="https://your-gitea-host",
      client_id='oauth2-client-id',
      client_secret='oauth2-client-secret')
  ```

  | Parameter | Value |
  | --- | --- |
  | `endpoint` | The URL to your Gitea app. Something like `https://gitea.example.com/` |
  | `client_id` | The OAuth2 Client ID `GUID`, can be a `Secret`. |
  | `client_secret` | The OAuth2 Client Secret provided, when creating the OAuth application in gitea. Can be a `Secret`. |

  Resources:

  + [Gitea OAuth2 Provider documentation](https://docs.gitea.io/en-us/oauth2-provider/)
  + [Buildbot OAuth2 documentation](https://docs.buildbot.net/current/developer/cls-auth.html?highlight=oauth2#buildbot.www.oauth2.OAuth2Auth)


pkgId: d5c594deeed0f7aaafce23b63471fab572542035c195be4832a9e131fb087ed0
name: python-builddsl
arch: src
version: 1.0.1
epoch: 0
release: 1
summary: A superset of the Python programming language with support for closures and multi-line lambdas.
url: https://github.com/NiklasRosenstein/python-builddsl
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-builddsl-1.0.1-1.src.rpm
checksum_type: sha256
description:
  A superset of the Python programming language with support for closures and multi-line lambdas.

  BuildDSL is an "almost superset" of Python 3; adding a lot of syntactical features that make it more
  convenient to describe build configurations at the cost of some other syntax features of the native Python
  language (like set literals).



      $ pip install builddsl

  The `builddsl` package requires at least Python 3.8.



  * [Novella](https://niklasrosenstein.github.io/novella/)


pkgId: bf80918f86f8812118eb494eeba748710b2c2af8e079c67d9ece014387036cb9
name: python-buildflow
arch: src
version: 0.3.1
epoch: 0
release: 1
url: https://pypi.org/project/buildflow/
rpm_license: Apache Software License
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-buildflow-0.3.1-1.src.rpm
checksum_type: sha256
summary:
  BuildFlow, is an open source framework for building large scale systems using Python. All you need to do is describe where your input is coming from and where your output should be written, and BuildFlow handles the rest.

description:
  <div align="center">

  <img src="https://raw.githubusercontent.com/launchflow/buildflow/main/docs/images/buildflow-light.png#gh-light-mode-only" alt="BuildFlow Logo">
  <img src="https://raw.githubusercontent.com/launchflow/buildflow/main/docs/images/buildflow-dark.png#gh-dark-mode-only" alt="BuildFlow Logo">

  <hr>



  ![CI](https://github.com/launchflow/buildflow/actions/workflows/python_ci.yaml/badge.svg)
  ![Release Tests](https://github.com/launchflow/buildflow/actions/workflows/release_tests.yaml/badge.svg)
  [![Python version](https://badge.fury.io/py/buildflow.svg)](https://pypi.org/project/buildflow)
  [![codecov](https://codecov.io/gh/launchflow/buildflow/branch/main/graph/badge.svg?token=AO0TP8XG7X)](https://codecov.io/gh/launchflow/buildflow)
  [![Slack Icon](https://img.shields.io/badge/slack-@launchflowusers-brightgreen.svg?logo=slack)](https://join.slack.com/t/launchflowusers/shared_invite/zt-27wlowsza-Uiu~8hlCGkvPINjmMiaaMQ)

  </div>



  <div align="center">

  📖 [Docs](https://docs.launchflow.com/buildflow/introduction) &nbsp; | &nbsp; ⚡ [Quickstart](https://docs.launchflow.com/buildflow/quickstart) &nbsp; | &nbsp; 👋 [Slack](https://join.slack.com/t/launchflowusers/shared_invite/zt-27wlowsza-Uiu~8hlCGkvPINjmMiaaMQ) &nbsp; | &nbsp; 🌟 [Contribute](https://docs.launchflow.com/buildflow/developers/contribute) &nbsp; | &nbsp; 🚀 [Deployment](https://www.launchflow.com/) &nbsp;

  </div>



  **BuildFlow** is a Python framework that allows you to build your entire backend system using one framework. With our simple decorator pattern you can turn any function into a component of your backend system. Allowing you to **serve data over HTTP, dump data to a datastore, or process async data from message queues**. All of these can use our built in IO connectors allowing you to create, manage, and connect to your cloud resources using pure Python.





  Turn any function into a component of your backend system.

  ```python

  service = app.service("my-service")
  @service.endpoint("/", method="GET")
  def get():
      return "Hello World"


  @app.collector("/collect", method="POST", sink=SnowflakeTable(...))
  def collect(request: Dict[str, Any]):
    return element


  @app.consumer(source=SQSQueue(...), sink=BigQuery(...))
  def process(element: Dict[str, Any]):
      return element
  ```



  Create and connect to cloud resources using python (powered by [Pulumi](https://github.com/pulumi/pulumi))

  ```python

  sqs_queue = SQSQueue("queue-name")
  gcs_bucket = GCSBucket("bucket-name")


  app.manage(s3_bucket, gcs_bucket)


  @app.consumer(source=sqs_queue, sink=gcs_bucket)
  def process(event: YourSchema) -> OutputSchema:
      
      return OutputSchema(...)
  ```



  Inject any dependency with full control over its setup and lifecycle

  ```python

  @dependency(Scope.GLOBAL)
  class MyStringDependency:
      def __init__(self):
          self.my_string = "HELLO!"


  PostgresDep = SessionDepBuilder(postgres)


  @service.endpoint("/hello", method="GET")
  def hello(db: PostgresDep, custom_dep: MyStringDependency):
      with db.session as session:
          user = session.query(User).first()
      
      return f"{custom_dep.my_string} {user.name}"
  ```



  Scale out parallel tasks across your cluster with [Ray](https://docs.ray.io/en/latest/index.html) or any other async framework.

  ```python
  @ray.remote
  def long_task(elem):
      time.sleep(10)
      return elem

  @app.consumer(PubSubSubscription(...), BigQueryTable(...))
  def my_consumer(elem):
      
      return await long_task.remote(elem)
  ```



  ```bash
  pip install buildflow
  ```





  BuildFlow uses Pulumi to manage resources used by your application. To install Pulumi visit: https://www.pulumi.com/docs/install/

  Installing Pulumi unlocks:

  - allows BuildFlow to manage resource creation and destruction
  - full access to Pulumi API / CLI
  - fine-grained control over Pulumi Stacks & Resources



  We use [black](https://github.com/psf/black) and [ruff](https://github.com/charliermarsh/ruff) with [pre-commit](https://pre-commit.com/) hooks to perform health checks.
  To setup these locally:

  - Clone the repo
  - Install the `dev` dependencies like `python -m pip install -e .[dev]`
  - Check if pre-commit is installed correctly by running `pre-commit --version`
  - Setup pre-commit to run before every commit on staged changes by running `pre-commit install`
  - Pre-commit can also be ran manually as `pre-commit run --all-files`



  BuildFlow is open-source and licensed under the [Apache License 2.0](LICENSE). We welcome contributions, see our [CONTRIBUTING.md](CONTRIBUTING.md) file for details.


pkgId: 8d72a633cec1c8a1dff8897ad5def4339f6a856d6800c1c64d5f6812e7fe028d
name: python-buildgrid-metering-client
arch: src
version: 0.0.4
epoch: 0
release: 1
summary: Client library of buildgrid-metering service
url: https://pypi.org/project/buildgrid-metering-client/
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-buildgrid-metering-client-0.0.4-1.src.rpm
checksum_type: sha256
description:
  🚧 This library is currently WIP and the interfaces might not be stable while the version below `1.0.0`. 🚧

  Asyncio Python client of [`buildgrid-metering`](https://gitlab.com/BuildGrid/buildgrid-metering) service.



  Suppose `buildgrid-metering` is running on `http://localhost:8000` requiring no authentication.
  The service can be queried using this library via its `asyncio` interfaces.

  ```python
  import asyncio
  from buildgrid_metering.client import MeteringServiceClient
  from buildgrid_metering.client.auth import (
      AuthTokenConfig,
      AuthTokenLoader,
      AuthTokenMode,
  )
  from buildgrid_metering.models.dataclasses import ComputingUsage, Identity, Usage

  token_loader = AuthTokenLoader(AuthTokenConfig(AuthTokenMode.NONE, ""))
  client = MeteringServiceClient("http://localhost:8000", token_loader)
  identity = Identity(instance="dev", workflow="build", actor="tool", subject="username")


  async def main():
      
      usage = Usage(computing=ComputingUsage(utime=1, stime=2, maxrss=3))
      await client.put_usage(identity, "op", usage)

      
      resp = await client.get_throttling(identity)
      print(resp)


  if __name__ == "__main__":\
      
      asyncio.run(main())

  ```



  See more details at [BuildGrid Resources](https://buildgrid.build/user/about.html#resources).



  See more details at [CONTRIBUTING.md](./CONTRIBUTING.md) and [BuildGrid](https://buildgrid.build/developer/contributing.html).

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


pkgId: 81c4b37135b8345c9d39e49639df4be2a851f908c711d49ad93e1a935d04235c
name: python-buildingspy
arch: src
version: 5.1.0
epoch: 0
release: 1
summary: Package for simulating and testing models from the Modelica Buildings and IBPSA libraries
url: http://simulationresearch.lbl.gov/modelica/
rpm_license: 3-clause BSD
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-buildingspy-5.1.0-1.src.rpm
checksum_type: sha256
description:
  BuildingsPy is a Python package that can be used to
  * run Modelica simulation using Dymola, OpenModelica or OPTIMICA,
  * process ``*.mat`` output files that were generated by Dymola, OPTIMICA or OpenModelica, and
  * run unit tests and automate other workflows as part of Modelica library development.
  The package provides functions to extract data series from
  the output file for further use in the python packages
  matplotlib for plotting and SciPy for scientific computing.
  Documentation is available at http://simulationresearch.lbl.gov/modelica/buildingspy/
  The license is at buildingspy/license.txt


pkgId: f3f14e04d1785599a0df9ff44400222ac60ba6574ba4cf59cc5b6562c61b4ea4
name: python-buildkite-test-collector
arch: src
version: 0.1.9
epoch: 0
release: 1
summary: Buildkite Test Analytics collector
url: https://github.com/buildkite/test-collector-python
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-buildkite-test-collector-0.1.9-1.src.rpm
checksum_type: sha256
description:
  The official Python adapter for [Buildkite Test Analytics](https://buildkite.com/test-analytics) which collects information about your tests.

  **Supported python versions:** >=3.8

  ⚒ **Supported test frameworks:** pytest.

  📦 **Supported CI systems:** Buildkite, GitHub Actions, CircleCI, and others via the `BUILDKITE_ANALYTICS_*` environment variables.




  1. [Create a test suite](https://buildkite.com/docs/test-analytics), and copy the API token that it gives you.

  2. Add `buildkite-test-collector` to your list of dev dependencies in `setup.py`

  ```python
          extras_require={
              "dev": [
                  "buildkite-test-collector"
              ]
          }
  ```

  3. Set up your API token

  Add the `BUIDLKITE_ANALYTICS_TOKEN` environment variable to your build system's environment.

  4. Run your tests

  Run your tests like normal.  Note that we attempt to detect the presence of several common CI environments, however if this fails you can set the `CI` environment variable to any value and it will work.

  ```sh
  $ pytest
  ```

  5. Verify that it works

  If all is well, you should see the test run in the test analytics section of the Buildkite dashboard.



  The Buildkite Test Analytics REST API has support for tracing potentially slow operations within your tests, and can collect span data of [four types](https://buildkite.com/docs/test-analytics/importing-json#json-test-results-data-reference-span-objects): http, sql, sleep and annotations. This is documented as part of our public JSON API so anyone can instrument any code to send this data.

  This library supports the ability to transmit tracing information to your Test Analytics output by using the new `spans` pytest fixture.  See [the `SpanCollector` documentation](https://github.com/buildkite/test-collector-python/blob/main/src/buildkite_test_collector/pytest_plugin/span_collector.py) for more information.

  You may also need to manually capture the data you wish to trace for your use case. For examples of how we've done this in our Ruby test collector, see:
  - [Instrumenting Rails to capture sql data](https://github.com/buildkite/test-collector-ruby/blob/9ac2b465cad647790d89b501a1754b06e47d5997/lib/buildkite/test_collector.rb#L107)
  - [Monkey patching to various libraries to capture http requests](https://github.com/buildkite/test-collector-ruby/blob/9ac2b465cad647790d89b501a1754b06e47d5997/lib/buildkite/test_collector/network.rb#L58)
  - [Monkey patching for sleep](https://github.com/buildkite/test-collector-ruby/blob/9ac2b465cad647790d89b501a1754b06e47d5997/lib/buildkite/test_collector/object.rb#L20)

  Note: the Ruby test collector is the only Test Analytics collector that automatically captures and transmits span data. This Python collector can transmit information, but data capture must be done manually at this time.



  See the [GitHub 'enhancement' issues](https://github.com/buildkite/test-collector-python/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement) for planned features. Pull requests are always welcome, and we’ll give you feedback and guidance if you choose to contribute 💚



  After cloning the repository, install the dependencies:

  ```
  pip install -e '.[dev]'
  ```

  And run the tests:

  ```
  pytest
  ```

  Useful resources for developing collectors include the [Buildkite Test Analytics docs](https://buildkite.com/docs/test-analytics) and the [RSpec and Minitest collectors](https://github.com/buildkite/rspec-buildkite-analytics).



  Bug reports and pull requests are welcome on GitHub at https://github.com/buildkite/test-collector-python



  1. Version bump the code, tag and push.
  2. Publish to the [Python Package Index](https://pypi.org/):

  ```sh
  python3 -m build
  python3 -m twine upload dist/*
  ```

  3. Create a [new github release](https://github.com/buildkite/test-collector-python/releases).



  The package is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).



  Thanks to the folks at [Alembic](https://alembic.com.au/) for building and maintaining this package.


pkgId: 89ea595a2f6f9e24759eb350e9965c03bbba38d2bbced09c61d793e638c4c67f
name: python-buildozer
arch: src
version: 1.5.0
epoch: 0
release: 1
summary: Generic Python packager for Android / iOS and Desktop
url: https://github.com/kivy/buildozer
rpm_license: MIT
rpm_group: Unspecified
rpm_buildhost: localhost
location_href: Packages/python-buildozer-1.5.0-1.src.rpm
checksum_type: sha256
description:
  [![Tests](https://github.com/kivy/buildozer/workflows/Tests/badge.svg)](https://github.com/kivy/buildozer/actions?query=workflow%3ATests)
  [![Android](https://github.com/kivy/buildozer/workflows/Android/badge.svg)](https://github.com/kivy/buildozer/actions?query=workflow%3AAndroid)
  [![iOS](https://github.com/kivy/buildozer/workflows/iOS/badge.svg)](https://github.com/kivy/buildozer/actions?query=workflow%3AiOS)
  [![Coverage Status](https://coveralls.io/repos/github/kivy/buildozer/badge.svg)](https://coveralls.io/github/kivy/buildozer)
  [![Backers on Open Collective](https://opencollective.com/kivy/backers/badge.svg)](#backers)
  [![Sponsors on Open Collective](https://opencollective.com/kivy/sponsors/badge.svg)](#sponsors)
  Buildozer is a tool for creating application packages easily.
  The goal is to have one "buildozer.spec" file in your app directory, describing
  your application requirements and settings such as title, icon, included modules
  etc. Buildozer will use that spec to create a package for Android, iOS, Windows,
  OSX and/or Linux.
  Buildozer currently supports packaging for Android via the [python-for-android](https://github.com/kivy/python-for-android/)
  project, and for iOS via the kivy-ios project. iOS and OSX are still under work.
  For Android, buildozer will automatically download and prepare the
  build dependencies. For more information, see
  [Android-SDK-NDK-Information](https://github.com/kivy/kivy/wiki/Android-SDK-NDK-Information).
  Note that only Python 3 is supported.
  Note that this tool has nothing to do with the eponymous online build service
  [buildozer.io](https://buildozer.io).

  - Install buildozer:
        
        
        pip install --user buildozer
        
        
        pip install --user https://github.com/kivy/buildozer/archive/master.zip
        
        git clone https://github.com/kivy/buildozer
        cd buildozer
        python setup.py build
        pip install -e .
  - Check buildozer is in your path
        `which buildozer`
        
        export PATH=~/.local/bin/:$PATH
        
        . ~/.bashrc
  - Go into your application directory and run:
        buildozer init
        
        buildozer android debug deploy run

  A Dockerfile is available to use buildozer through a Docker environment.
  - Build with:
        docker build --tag=buildozer .
  - Run with:
        docker run --volume "$(pwd)":/home/user/hostcwd buildozer --version

  Use [ArtemSBulgakov/buildozer-action@v1](https://github.com/ArtemSBulgakov/buildozer-action)
  to build your packages automatically on push or pull request.
  See [full workflow example](https://github.com/ArtemSBulgakov/buildozer-action#full-workflow).

  ```

  buildozer android clean
  buildozer android update
  buildozer android deploy
  buildozer android debug
  buildozer android release

  buildozer android debug deploy

  buildozer setdefault android debug deploy run
  ```

  ```
  Usage:
      buildozer [--profile <name>] [--verbose] [target] <command>...
      buildozer --version
  Available targets:
      android        Android target, based on python-for-android project
      ios            iOS target, based on kivy-ios project
  Global commands (without target):
      distclean          Clean the whole Buildozer environment
      help               Show the Buildozer help
      init               Create an initial buildozer.spec in the current directory
      serve              Serve the bin directory via SimpleHTTPServer
      setdefault         Set the default command to run when no arguments are given
      version            Show the Buildozer version
  Target commands:
      clean      Clean the target environment
      update     Update the target dependencies
      debug      Build the application in debug mode
      release    Build the application in release mode
      deploy     Deploy the application on the device
      run        Run the application on the device
      serve      Serve the bin directory via SimpleHTTPServer
  Target "ios" commands:
      list_identities    List the available identities to use for signing.
      xcode              Open the xcode project.
  Target "android" commands:
      adb                Run adb from the Android SDK. Args must come after --, or
                          use --alias to make an alias
      logcat             Show the log from the device
      p4a                Run p4a commands. Args must come after --, or use --alias
                          to make an alias
  ```

  See [buildozer/default.spec](https://raw.github.com/kivy/buildozer/master/buildozer/default.spec) for an up-to-date spec file.

  You can override the value of *any* `buildozer.spec` config token by
  setting an appropriate environment variable. These are all of the
  form ``$SECTION_TOKEN``, where SECTION is the config file section and
  TOKEN is the config token to override. Dots are replaced by
  underscores.
  For example, here are some config tokens from the [app] section of the
  config, along with the environment variables that would override them.
  - ``title`` -> ``$APP_TITLE``
  - ``package.name`` -> ``$APP_PACKAGE_NAME``
  - ``p4a.source_dir`` -> ``$APP_P4A_SOURCE_DIR``

  If you need assistance, you can ask for help on our mailing list:
  * User Group : https://groups.google.com/group/kivy-users
  * Email      : kivy-users@googlegroups.com
  Discord channel:
  Server : https://chat.kivy.org
  Channel : #support
  For [debugging on Android](https://python-for-android.readthedocs.io/en/stable/troubleshooting/?highlight=adb#debugging-on-android), don't hesitate to use ADB to get logs of your application.

  We love pull requests and discussing novel ideas. Check out our
  [contribution guide](https://kivy.org/docs/contribute.html) and
  feel free to improve buildozer.
  The following mailing list and IRC channel are used exclusively for
  discussions about developing the Kivy framework and its sister projects:
  * Dev Group : https://groups.google.com/group/kivy-dev
  * Email     : kivy-dev@googlegroups.com
  We also have a Discord channel:
  * Server     : https://chat.kivy.org
  * Channel    : #support

  Buildozer is released under the terms of the MIT License. Please refer to the
  LICENSE file.

  Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/kivy#backer)]
  <a href="https://opencollective.com/kivy#backers" target="_blank"><img src="https://opencollective.com/kivy/backers.svg?width=890"></a>

  Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/kivy#sponsor)]
  <a href="https://opencollective.com/kivy/sponsor/0/website" target="_blank"><img src="https://opencollective.com/kivy/sponsor/0/avatar.svg"></a>
  <a href="https://opencollective.com/kivy/sponsor/1/website" target="_blank"><img src="https://opencollective.com/kivy/sponsor/1/avatar.svg"></a>
  <a href="https://opencollective.com/kivy/sponsor/2/website" target="_blank"><img src="https://opencollective.com/kivy/sponsor/2/avatar.svg"></a>
  <a href="https://opencollective.com/kivy/sponsor/3/website" target="_blank"><img src="https://opencollective.com/kivy/sponsor/3/avatar.svg"></a>
  <a href="https://opencollective.com/kivy/sponsor/4/website" target="_blank"><img src="https://opencollective.com/kivy/sponsor/4/avatar.svg"></a>
  <a href="https://opencollective.com/kivy/sponsor/5/website" target="_blank"><img src="https://opencollective.com/kivy/sponsor/5/avatar.svg"></a>
  <a href="https://opencollective.com/kivy/sponsor/6/website" target="_blank"><img src="https://opencollective.com/kivy/sponsor/6/avatar.svg"></a>
  <a href="https://opencollective.com/kivy/sponsor/7/website" target="_blank"><img src="https://opencollective.com/kivy/sponsor/7/avatar.svg"></a>
  <a href="https://opencollective.com/kivy/sponsor/8/website" target="_blank"><img src="https://opencollective.com/kivy/sponsor/8/avatar.svg"></a>
  <a href="https://opencollective.com/kivy/sponsor/9/website" target="_blank"><img src="https://opencollective.com/kivy/sponsor/9/avatar.svg"></a>


  [Full Changelog](https://github.com/kivy/buildozer/compare/1.4.0...1.5.0)
  **Fixed bugs:**
  - Buildozer Error `ValueError: read of closed file` [\#760](https://github.com/kivy/buildozer/issues/760)
  **Closed issues:**
  - kivy app does not support android 10+ [\#1551](https://github.com/kivy/buildozer/issues/1551)
  - Waiting for a response from the server socket [\#1550](https://github.com/kivy/buildozer/issues/1550)
  - orientation = portrait fails [\#1546](https://github.com/kivy/buildozer/issues/1546)
  - When I run the application on my smartphone, the application crashes and gives an error in logcat \[WARNING\] \[Base \] Unknown \<android\> provider [\#1545](https://github.com/kivy/buildozer/issues/1545)
  - Android application crashes trying to use local storage [\#1544](https://github.com/kivy/buildozer/issues/1544)
  - Buildozer failed to work with NDK 25b \(minimum supported by p4a\) [\#1543](https://github.com/kivy/buildozer/issues/1543)
  - The Widget MDTopAppBar is not working in Android 12.0 [\#1542](https://github.com/kivy/buildozer/issues/1542)
  - The 'buildozer==1.4.1.dev0' distribution was not found and is required by the application [\#1541](https://github.com/kivy/buildozer/issues/1541)
  - anyone knows how to install torch with buildozer compiler? [\#1538](https://github.com/kivy/buildozer/issues/1538)
  - Building Kivy from a GitHub repository [\#1536](https://github.com/kivy/buildozer/issues/1536)
  - Request runtime Permission for BLUETOOTH \(NEARBY DEVICES\) Android 31 [\#1534](https://github.com/kivy/buildozer/issues/1534)
  - Configure.ac is outdated [\#1533](https://github.com/kivy/buildozer/issues/1533)
  - Problem in psutil Recipe [\#1532](https://github.com/kivy/buildozer/issues/1532)
  - Two errors in pyzmq recipe [\#1531](https://github.com/kivy/buildozer/issues/1531)
  - Buildozer failed to execute the last command!!!!! [\#1530](https://github.com/kivy/buildozer/issues/1530)
  - Error building apk. /usr/bin/python -m pythonforandroidtoolchain apk [\#1528](https://github.com/kivy/buildozer/issues/1528)
  - ERROR While  run  Buildozer  android Debug [\#1527](https://github.com/kivy/buildozer/issues/1527)
  - Buildozer Requires python-for-android version with AAB [\#1524](https://github.com/kivy/buildozer/issues/1524)
  - Error JVM exception occurred: Didn't find class "com.google.android.gms.auth.api.signin.GoogleSignInOptions" [\#1523](https://github.com/kivy/buildozer/issues/1523)
  -  Could not resolve all files for configuration ':classpath'. [\#1522](https://github.com/kivy/buildozer/issues/1522)
  - Fatal signal 11 \(SIGSEGV\), code 1 \(SEGV\_MAPERR\), fault addr 0x40 but on working app [\#1521](https://github.com/kivy/buildozer/issues/1521)
  - Fatal signal 11 \(SIGSEGV\), code 1 \(SEGV\_MAPERR\), fault addr 0x40 in tid 10919 \(SDLThread\), pid 10882 \(org.test.myapp\) [\#1520](https://github.com/kivy/buildozer/issues/1520)
  - A problem occurred evaluating root project [\#1510](https://github.com/kivy/buildozer/issues/1510)
  - ModuleNotFoundError: No module named 'kivy.\_clock' [\#1509](https://github.com/kivy/buildozer/issues/1509)
  - Buildozer Raise Error when I try to convert my file... [\#1507](https://github.com/kivy/buildozer/issues/1507)
  - i got this error while trying to create an apk using buildozer [\#1506](https://github.com/kivy/buildozer/issues/1506)
  - \# Command failed: \['/usr/bin/python3', '-m', 'pythonforandroid.toolchain', 'create', '--dist\_name=kivy\_example', '--bootstrap=sdl2', '--requirements=python3,kivy==2.0.0rc4,kivy\_garden.graph,numpy', '--arch=arm64-v8a', '--arch=armeabi-v7a', '--copy-libs', '--color=always', '--storage-dir=/home/skander/kivy\_examples/graphs/.buildozer/android/platform/build-arm64-v8a\_armeabi-v7a', '--ndk-api=21', '--ignore-setup-py', '--debug'\] [\#1505](https://github.com/kivy/buildozer/issues/1505)
  - Cannot allocate memory [\#1504](https://github.com/kivy/buildozer/issues/1504)
  - SSL: CERTIFICATE\_VERIFY\_FAILED only on Android [\#1502](https://github.com/kivy/buildozer/issues/1502)
  - Command failed: \['tar', 'xzf', 'apache-ant-1.9.4-bin.tar.gz'\] [\#1501](https://github.com/kivy/buildozer/issues/1501)
  - error while building liblzma [\#1498](https://github.com/kivy/buildozer/issues/1498)
  - How to add custom requirements in your Colab project with Buildozer? [\#1496](https://github.com/kivy/buildozer/issues/1496)
  - Buildozer requires a p4a version with AAB support. [\#1493](https://github.com/kivy/buildozer/issues/1493)
  - APK Keeps crashing [\#1488](https://github.com/kivy/buildozer/issues/1488)
  - android.presplash\_color bug [\#1487](https://github.com/kivy/buildozer/issues/1487)
  - mew error [\#1486](https://github.com/kivy/buildozer/issues/1486)
  - \[ERROR\] Hostpython3 recently got an error [\#1485](https://github.com/kivy/buildozer/issues/1485)
  - Buildozer issue on MacOS M1 [\#1484](https://github.com/kivy/buildozer/issues/1484)
  - kivy + buildozer one place app name and version conventions [\#1482](https://github.com/kivy/buildozer/issues/1482)
  - \[Feature Request\] Arm64 ubuntu support [\#1480](https://github.com/kivy/buildozer/issues/1480)
  - ffmpeg is not supported in latest buildozer update.  [\#1474](https://github.com/kivy/buildozer/issues/1474)
  - Android : Some .jpg are not displayed, some are. [\#1471](https://github.com/kivy/buildozer/issues/1471)
  - Issue while converting my python file to .aab: ERROR: Trying to release a package that starts with org.test [\#1469](https://github.com/kivy/buildozer/issues/1469)
  - Logs: [\#1468](https://github.com/kivy/buildozer/issues/1468)
  - Issue while converting my python file to .aab: ERROR: Trying to release a package that starts with org.test [\#1467](https://github.com/kivy/buildozer/issues/1467)
  - Buildozer stopped working suddenly [\#1459](https://github.com/kivy/buildozer/issues/1459)
  - hostpython3 download error, ssl error [\#1441](https://github.com/kivy/buildozer/issues/1441)
  - Feature: Make buildozer expose app resources folder. [\#1397](https://github.com/kivy/buildozer/issues/1397)
  - Error while trying to create an APK using Buildozer for Kivy Image processing application. Below is the Error Log. Unable to create APK file [\#1376](https://github.com/kivy/buildozer/issues/1376)
  - During APK build, matplotlib build tries to link against wrong libpng version [\#1362](https://github.com/kivy/buildozer/issues/1362)
  - No such file or directory buildozer debug run [\#1361](https://github.com/kivy/buildozer/issues/1361)
  - Question: How can I change the location of org.testapp on android? [\#1359](https://github.com/kivy/buildozer/issues/1359)
  - docker buildozer  Aidl not found, please install it. [\#1357](https://github.com/kivy/buildozer/issues/1357)
  - Building Android app on macOS Catalina gives zlib headers error [\#1334](https://github.com/kivy/buildozer/issues/1334)
  - Has anyone succeeded in converting apk on M1? [\#1331](https://github.com/kivy/buildozer/issues/1331)
  - configure: error: cannot compute sizeof \(long double\) [\#1329](https://github.com/kivy/buildozer/issues/1329)
  - python==3.9.5 [\#1325](https://github.com/kivy/buildozer/issues/1325)
  - Buildozer fails to execute the last command [\#1324](https://github.com/kivy/buildozer/issues/1324)
  - build is crashing when I am trying to run it via docker [\#1323](https://github.com/kivy/buildozer/issues/1323)
  - build an android app with ffpyplayer [\#1322](https://github.com/kivy/buildozer/issues/1322)
  - Build APK with both x86 and arm libs [\#1321](https://github.com/kivy/buildozer/issues/1321)
  - Build failed on MacMini with M1 Processor while PhaseScriptExecution Script-113D17E2153E3DB5001310A6.sh [\#1318](https://github.com/kivy/buildozer/issues/1318)
  - Build APK Error when I append Numpy OpenCV-python matplotlib to requirements , . [\#1316](https://github.com/kivy/buildozer/issues/1316)
  - Error in compilation [\#1313](https://github.com/kivy/buildozer/issues/1313)
  - org/kivy/android/PythonActivity java.lang.NoClassDefFoundError [\#1308](https://github.com/kivy/buildozer/issues/1308)
  - Issue building a simple app, probably a user error [\#1299](https://github.com/kivy/buildozer/issues/1299)
  - Buildozer.spec add numpy to requirements  [\#1282](https://github.com/kivy/buildozer/issues/1282)
  - Libffi not compiling \(aarch64/arm64/armv8\) [\#1281](https://github.com/kivy/buildozer/issues/1281)
  - android debug process stuck at downloading sdl2 [\#1273](https://github.com/kivy/buildozer/issues/1273)
  - having a  problem in installing buildozer for kivy 1.11.1 in Ubuntu 18  [\#1270](https://github.com/kivy/buildozer/issues/1270)
  - Having a problem in installing Buildozer for Kivy in Ubuntu 18.04\(Eror:autogen.sh\) [\#1266](https://github.com/kivy/buildozer/issues/1266)
  - Can't build on MacOS 11.0.1 BigSure [\#1262](https://github.com/kivy/buildozer/issues/1262)
  - NDK Missing [\#1250](https://github.com/kivy/buildozer/issues/1250)
  - buildozer crashes while applying fix\_numpy\_includes.patch for pandas [\#1244](https://github.com/kivy/buildozer/issues/1244)
  - Error when using buildozer android debug [\#1112](https://github.com/kivy/buildozer/issues/1112)
  - Buildozer install doc is very out of date [\#819](https://github.com/kivy/buildozer/issues/819)
  **Merged pull requests:**
  - Removes broken and unneeded checks, now we can support additional permission syntaxes. [\#1549](https://github.com/kivy/buildozer/pull/1549) ([misl6](https://github.com/misl6))
  - Makes orientation option cross-platform and conform to latest python-for-android changes, adds `android.manifest.orientation`. [\#1548](https://github.com/kivy/buildozer/pull/1548) ([misl6](https://github.com/misl6))
  - Update Python versions in test matrix [\#1540](https://github.com/kivy/buildozer/pull/1540) ([misl6](https://github.com/misl6))
  - Flake8 does not support inline comments for any of the keys. + Cleanup some ignored errors/warnings [\#1539](https://github.com/kivy/buildozer/pull/1539) ([misl6](https://github.com/misl6))
  - Removed \(broken\) `--no-byte-compile-pyo` support and added support for `--no-byte-compile-python` [\#1525](https://github.com/kivy/buildozer/pull/1525) ([misl6](https://github.com/misl6))
  - CeDeROM add FreeBSD support 20221014. [\#1516](https://github.com/kivy/buildozer/pull/1516) ([cederom](https://github.com/cederom))
  - Add resources [\#1513](https://github.com/kivy/buildozer/pull/1513) ([RobertFlatt](https://github.com/RobertFlatt))
  - Update Defaults [\#1512](https://github.com/kivy/buildozer/pull/1512) ([RobertFlatt](https://github.com/RobertFlatt))
  - Update installation.rst [\#1500](https://github.com/kivy/buildozer/pull/1500) ([RobertFlatt](https://github.com/RobertFlatt))
  - Fix presplash color [\#1497](https://github.com/kivy/buildozer/pull/1497) ([Apacelus](https://github.com/Apacelus))
  - Fixes some E275 - assert is a keyword. [\#1495](https://github.com/kivy/buildozer/pull/1495) ([misl6](https://github.com/misl6))
  - Show output during aab support check, as p4a may require the user input [\#1494](https://github.com/kivy/buildozer/pull/1494) ([misl6](https://github.com/misl6))
  - Removes `six` dependency in tests [\#1475](https://github.com/kivy/buildozer/pull/1475) ([misl6](https://github.com/misl6))
  - p4a prerequisites install should be done in non-interactive mode during CI builds. [\#1465](https://github.com/kivy/buildozer/pull/1465) ([misl6](https://github.com/misl6))
  - Bump version to 1.4.1.dev0 [\#1464](https://github.com/kivy/buildozer/pull/1464) ([misl6](https://github.com/misl6))
  - Avoid the usage of `shell=True` in Popen, which could lead to potential security risks. [\#1435](https://github.com/kivy/buildozer/pull/1435) ([misl6](https://github.com/misl6))
  - Add support for p4a option --res\_xml [\#1230](https://github.com/kivy/buildozer/pull/1230) ([rambo](https://github.com/rambo))

  [Full Changelog](https://github.com/kivy/buildozer/compare/1.3.0...1.4.0)
  **Closed issues:**
  - error [\#1461](https://github.com/kivy/buildozer/issues/1461)
  - error [\#1460](https://github.com/kivy/buildozer/issues/1460)
  - ModuleNotFoundError: No module named '\_bz2' [\#1457](https://github.com/kivy/buildozer/issues/1457)
  - `java.nio.file.NoSuchFileException` [\#1456](https://github.com/kivy/buildozer/issues/1456)
  - kivy app doesnt start on android [\#1455](https://github.com/kivy/buildozer/issues/1455)
  - \(WSL\) buildozer adb doesn't recognize usb [\#1453](https://github.com/kivy/buildozer/issues/1453)
  - Error: Command \[...\] returned non-zero exit status 1 [\#1452](https://github.com/kivy/buildozer/issues/1452)
  - Command failed: /home/username/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager --sdk\_root=/home/username/.buildozer/android/platform/android-sdk platform-tools [\#1449](https://github.com/kivy/buildozer/issues/1449)
  - gradlew assembly Debug execution error when building apk [\#1447](https://github.com/kivy/buildozer/issues/1447)
  - How to run Python script in background in android? [\#1446](https://github.com/kivy/buildozer/issues/1446)
  - buildozer appclean doesnt work. [\#1443](https://github.com/kivy/buildozer/issues/1443)
  - Flags android.gradle\_dependencies && android.add\_jars don't work. [\#1442](https://github.com/kivy/buildozer/issues/1442)
  - ModuleNotFoundError: No module named 'PIL' [\#1440](https://github.com/kivy/buildozer/issues/1440)
  - Bulldozer error while running "buildozer -v android debug" [\#1439](https://github.com/kivy/buildozer/issues/1439)
  - started app on three different andoid phones - there is no internet connection on 2 of them [\#1434](https://github.com/kivy/buildozer/issues/1434)
  - Not Able to change the python version under buildozer 1.3.0 [\#1432](https://github.com/kivy/buildozer/issues/1432)
  - ndk r22 invalid  [\#1431](https://github.com/kivy/buildozer/issues/1431)
  - error building numpy with bulldozer [\#1426](https://github.com/kivy/buildozer/issues/1426)
  - sh.CommandNotFound: cmake [\#1424](https://github.com/kivy/buildozer/issues/1424)
  - Compile-time name 'JNIUS\_PYTHON3' not defined [\#1422](https://github.com/kivy/buildozer/issues/1422)
  - Error Building hostpython3 for arm64-v8a with buildozer [\#1421](https://github.com/kivy/buildozer/issues/1421)
  - building for android failed [\#1420](https://github.com/kivy/buildozer/issues/1420)
  - Error "Aidl not found, please install it." [\#1416](https://github.com/kivy/buildozer/issues/1416)
  - Buildozer Release Signign Issue [\#1415](https://github.com/kivy/buildozer/issues/1415)
  - Unable to run the buildozer command on initial application [\#1414](https://github.com/kivy/buildozer/issues/1414)
  - buildozer -v android debug error,please help me,thank you! [\#1413](https://github.com/kivy/buildozer/issues/1413)
  - Buildozer failed to create android app [\#1412](https://github.com/kivy/buildozer/issues/1412)
  - module encodings found error or something else [\#1408](https://github.com/kivy/buildozer/issues/1408)
  - \[ERROR\]:   Build failed: Requested API target 27 is not available, install it with the SDK android tool. [\#1404](https://github.com/kivy/buildozer/issues/1404)
  - buildozer requirements for firebase-admin Python?  [\#1402](https://github.com/kivy/buildozer/issues/1402)
  - I am given the following error, which I believe is due to recent changes for aab support in buildozer:  " This buildozer version requires a python-for-android version with AAB \(Android App Bundle\) support. Please update your pinned version accordingly [\#1401](https://github.com/kivy/buildozer/issues/1401)
  - How to mention Python modules used in Kivy buildozer.spec file? [\#1400](https://github.com/kivy/buildozer/issues/1400)
  - Приложение вылетает при запуске [\#1399](https://github.com/kivy/buildozer/issues/1399)
  - Buildozer deploy failed with python3 -m venv venv command [\#1389](https://github.com/kivy/buildozer/issues/1389)
  - Gradlew Build error for Android on Linux [\#1371](https://github.com/kivy/buildozer/issues/1371)
  - AAB [\#1353](https://github.com/kivy/buildozer/issues/1353)
  - Error creating apk on Macos Big Sur [\#1345](https://github.com/kivy/buildozer/issues/1345)
  - BUILD FAILED [\#1335](https://github.com/kivy/buildozer/issues/1335)
  **Merged pull requests:**
  - Updates default buildozer.spec NDK from 19b to 23b [\#1462](https://github.com/kivy/buildozer/pull/1462) ([misl6](https://github.com/misl6))
  - use p4a --add-source instead of manual copy of java files [\#1450](https://github.com/kivy/buildozer/pull/1450) ([tito](https://github.com/tito))
  - fix aar build [\#1444](https://github.com/kivy/buildozer/pull/1444) ([mzakharo](https://github.com/mzakharo))
  - Our self-hosted Apple Silicon runner now has been migrated to actions/runner v2.292.0 which now supports arm64 natively [\#1438](https://github.com/kivy/buildozer/pull/1438) ([misl6](https://github.com/misl6))
  - Changes for NDK23 [\#1427](https://github.com/kivy/buildozer/pull/1427) ([HyTurtle](https://github.com/HyTurtle))
  - Bump version to 1.4.0.dev0 [\#1411](https://github.com/kivy/buildozer/pull/1411) ([misl6](https://github.com/misl6))

  [Full Changelog](https://github.com/kivy/buildozer/compare/1.2.0...1.3.0)
  **Merged pull requests:**
  - Improves iOS CI workflow and adds Apple Silicon M1 runner [\#1393](https://github.com/kivy/buildozer/pull/1393) ([misl6](https://github.com/misl6))
  - iOS: force archive iOS destination [\#1392](https://github.com/kivy/buildozer/pull/1392) ([syrykh](https://github.com/syrykh))
  - simple typo [\#1390](https://github.com/kivy/buildozer/pull/1390) ([Jessime](https://github.com/Jessime))
  - Bump support-request to v2. Previous integration has been shut down. [\#1385](https://github.com/kivy/buildozer/pull/1385) ([misl6](https://github.com/misl6))
  - Add android.add\_assets [\#1382](https://github.com/kivy/buildozer/pull/1382) ([RobertFlatt](https://github.com/RobertFlatt))
  - add the option p4a.extra\_args [\#1369](https://github.com/kivy/buildozer/pull/1369) ([antocuni](https://github.com/antocuni))
  - Fix CI tests for iOS and Android [\#1365](https://github.com/kivy/buildozer/pull/1365) ([misl6](https://github.com/misl6))
  - Add aab \(Android App Bundle\) support [\#1356](https://github.com/kivy/buildozer/pull/1356) ([misl6](https://github.com/misl6))
  - Fixes deprecated plistlib API [\#1347](https://github.com/kivy/buildozer/pull/1347) ([meow464](https://github.com/meow464))
  - docs: fix a few simple typos [\#1327](https://github.com/kivy/buildozer/pull/1327) ([tshirtman](https://github.com/tshirtman))
  - use HTTPS urls [\#1319](https://github.com/kivy/buildozer/pull/1319) ([obfusk](https://github.com/obfusk))
  - iOS OTA manifest generation for in-house app distribution [\#1317](https://github.com/kivy/buildozer/pull/1317) ([syrykh](https://github.com/syrykh))
  - android: adaptive icon/launcher: expose p4a options in buildozer.spec [\#1312](https://github.com/kivy/buildozer/pull/1312) ([SomberNight](https://github.com/SomberNight))
  - Add enable\_androidx [\#1311](https://github.com/kivy/buildozer/pull/1311) ([RobertFlatt](https://github.com/RobertFlatt))
  - Update iOS codesign options [\#1307](https://github.com/kivy/buildozer/pull/1307) ([syrykh](https://github.com/syrykh))
  - Allow setting custom p4a URL instead of fork [\#1305](https://github.com/kivy/buildozer/pull/1305) ([syrykh](https://github.com/syrykh))
  - chore : Fixed code quality issues [\#1300](https://github.com/kivy/buildozer/pull/1300) ([powerexploit](https://github.com/powerexploit))
  - added few additional options for android p4a builds [\#1275](https://github.com/kivy/buildozer/pull/1275) ([vesellov](https://github.com/vesellov))
  - :recycle: Minor check\_requirements\(\) refactoring [\#1274](https://github.com/kivy/buildozer/pull/1274) ([AndreMiras](https://github.com/AndreMiras))
  - Allow displaying only the logcat of our app. [\#1272](https://github.com/kivy/buildozer/pull/1272) ([tshirtman](https://github.com/tshirtman))
  - fix ndk version check & download link [\#1271](https://github.com/kivy/buildozer/pull/1271) ([obfusk](https://github.com/obfusk))
  - Let buildozer.spec files pin to a specific p4a commit hash [\#1269](https://github.com/kivy/buildozer/pull/1269) ([xloem](https://github.com/xloem))
  - Change android.manifest\_placeholders default to None [\#1265](https://github.com/kivy/buildozer/pull/1265) ([misl6](https://github.com/misl6))
  - Pass debug loglevel down through to python for android [\#1260](https://github.com/kivy/buildozer/pull/1260) ([xloem](https://github.com/xloem))
  - Use develop branch for automated tests [\#1257](https://github.com/kivy/buildozer/pull/1257) ([misl6](https://github.com/misl6))
  - Add android.adb\_args option [\#1238](https://github.com/kivy/buildozer/pull/1238) ([germn](https://github.com/germn))
  - Add support for p4a --feature option [\#1229](https://github.com/kivy/buildozer/pull/1229) ([rambo](https://github.com/rambo))
  - Add option for controlling p4a distutils support, fixes \#1224 [\#1225](https://github.com/kivy/buildozer/pull/1225) ([rambo](https://github.com/rambo))
  - WSL workaround now accommodates WSL 2 [\#1220](https://github.com/kivy/buildozer/pull/1220) ([stefan-sherwood](https://github.com/stefan-sherwood))
  - Add android.backup\_rules parameter to buildozer.spec [\#1219](https://github.com/kivy/buildozer/pull/1219) ([Jorilx](https://github.com/Jorilx))
  - make include\_exts etc. properly case-insentitive [\#1217](https://github.com/kivy/buildozer/pull/1217) ([obfusk](https://github.com/obfusk))
  - Add manifestPlaceholders feature [\#1212](https://github.com/kivy/buildozer/pull/1212) ([misl6](https://github.com/misl6))
  - Add support for --presplash-lottie option of p4a [\#1208](https://github.com/kivy/buildozer/pull/1208) ([tshirtman](https://github.com/tshirtman))
  - Fix issue \#881: Add android.allow\_backup parameter to buildozer.spec [\#1206](https://github.com/kivy/buildozer/pull/1206) ([Jorilx](https://github.com/Jorilx))
  - Add link to GitHub action [\#1198](https://github.com/kivy/buildozer/pull/1198) ([ArtemSBulgakov](https://github.com/ArtemSBulgakov))
  - Fixes heading for iOS target [\#1175](https://github.com/kivy/buildozer/pull/1175) ([fullbuffer](https://github.com/fullbuffer))
  - :white\_check\_mark: Increases ios target test coverage [\#1171](https://github.com/kivy/buildozer/pull/1171) ([AndreMiras](https://github.com/AndreMiras))
  - :white\_check\_mark: Unit test ios target [\#1168](https://github.com/kivy/buildozer/pull/1168) ([AndreMiras](https://github.com/AndreMiras))
  - Expand "~" before every path normalization. [\#1165](https://github.com/kivy/buildozer/pull/1165) ([pakal](https://github.com/pakal))
  - :green\_apple: Improves iOS support [\#1160](https://github.com/kivy/buildozer/pull/1160) ([AndreMiras](https://github.com/AndreMiras))
  - :construction\_worker: Moves Android build to dedicated workflow file [\#1158](https://github.com/kivy/buildozer/pull/1158) ([AndreMiras](https://github.com/AndreMiras))
  - SafeConfigParser deprecated. [\#1155](https://github.com/kivy/buildozer/pull/1155) ([Julian-O](https://github.com/Julian-O))
  - Declare Buildozer to be Stable [\#1147](https://github.com/kivy/buildozer/pull/1147) ([Julian-O](https://github.com/Julian-O))
  - :fire: Drops garden support [\#1142](https://github.com/kivy/buildozer/pull/1142) ([AndreMiras](https://github.com/AndreMiras))
  - :arrow\_up: Bumps Ubuntu and OpenJDK versions [\#1140](https://github.com/kivy/buildozer/pull/1140) ([AndreMiras](https://github.com/AndreMiras))
  - Post release bump 1.2.0.dev0 [\#1139](https://github.com/kivy/buildozer/pull/1139) ([AndreMiras](https://github.com/AndreMiras))
  - Update quickstart.rst for Windows 10 [\#1124](https://github.com/kivy/buildozer/pull/1124) ([arqeco](https://github.com/arqeco))
  - Update instalation.rst for Windows 10 [\#1123](https://github.com/kivy/buildozer/pull/1123) ([arqeco](https://github.com/arqeco))

  [Full Changelog](https://github.com/kivy/buildozer/compare/1.1.0...1.2.0)
  **Merged pull requests:**
  - Bumps to latest Cython version [\#1132](https://github.com/kivy/buildozer/pull/1132) ([AndreMiras](https://github.com/AndreMiras))
  - Also integration test on macOS [\#1131](https://github.com/kivy/buildozer/pull/1131) ([AndreMiras](https://github.com/AndreMiras))
  - Tests android.numeric\_version config [\#1129](https://github.com/kivy/buildozer/pull/1129) ([AndreMiras](https://github.com/AndreMiras))
  - Refactored the TargetAndroid tests [\#1127](https://github.com/kivy/buildozer/pull/1127) ([pavelsof](https://github.com/pavelsof))
  - Adds p4a --numeric-version support [\#1126](https://github.com/kivy/buildozer/pull/1126) ([AndreMiras](https://github.com/AndreMiras))
  - Linter fixes and README.md update [\#1118](https://github.com/kivy/buildozer/pull/1118) ([AndreMiras](https://github.com/AndreMiras))
  - Removes Python 2 constructions [\#1114](https://github.com/kivy/buildozer/pull/1114) ([AndreMiras](https://github.com/AndreMiras))

  [Full Changelog](https://github.com/kivy/buildozer/compare/1.0...1.1.0)
  **Fixed bugs:**
  - [Docker image] SSLError("Can't connect to HTTPS URL because the SSL module is not available.") [\#1096](https://github.com/kivy/buildozer/issues/1096)
  - NameError: name 'raw\_input' is not defined [\#1070](https://github.com/kivy/buildozer/issues/1070)
  - Setup coverage testing [\#1058](https://github.com/kivy/buildozer/issues/1058)
  - AttributeError: 'function' object has no attribute 'glob' [\#1044](https://github.com/kivy/buildozer/issues/1044)
  **Closed issues:**
  - Pygallary [\#1109](https://github.com/kivy/buildozer/issues/1109)
  - Buildozer compilation ERROR: No matching distribution found for hostpython2 (from -r requirements.txt (line 2)) [\#1104](https://github.com/kivy/buildozer/issues/1104)
  - Circular errors with Java version and Android SDK [\#1103](https://github.com/kivy/buildozer/issues/1103)
  - APK not running on Android 10? [\#1102](https://github.com/kivy/buildozer/issues/1102)
  - Buildozer command fails: Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate [\#1095](https://github.com/kivy/buildozer/issues/1095)
  - Command Failed Error [\#1092](https://github.com/kivy/buildozer/issues/1092)
  - APK Can't be install (package can't be install in android) [\#1091](https://github.com/kivy/buildozer/issues/1091)
  - buildozer Install python 3.8.1 [\#1090](https://github.com/kivy/buildozer/issues/1090)
  - i have weak reference error while using python 3.8 [\#1089](https://github.com/kivy/buildozer/issues/1089)
  - buildozer is choosing odd venv, and using a different python? [\#1080](https://github.com/kivy/buildozer/issues/1080)
  - Fatal Python error: init\_fs\_encoding: failed to get the Python codec of the filesystem encoding [\#1076](https://github.com/kivy/buildozer/issues/1076)
  - Buildozer just wont compile my app [\#1074](https://github.com/kivy/buildozer/issues/1074)
  - Autoreconf not found? [\#1072](https://github.com/kivy/buildozer/issues/1072)
  - error while buildozer android debug deploy run [\#1064](https://github.com/kivy/buildozer/issues/1064)
  - Syntax error in Kivy and KivyMD dependencies file when using Buildozer to compile KivyMD app [\#1051](https://github.com/kivy/buildozer/issues/1051)
  - Adding CFFI as a Buildozer requirement breaks the Android build [\#1050](https://github.com/kivy/buildozer/issues/1050)
  - Is buildozer compatible with Python 3.7 [\#1048](https://github.com/kivy/buildozer/issues/1048)
  - Could not resolve org.jetbrains.kotlin:kotlin-stdlib-jre8:1.2.0 [\#1042](https://github.com/kivy/buildozer/issues/1042)
  - Error while running buildozer android debug deploy [\#1038](https://github.com/kivy/buildozer/issues/1038)
  - cant able to build apk on linux with python3 [\#1033](https://github.com/kivy/buildozer/issues/1033)
  - Keystore was tampered with, or password was incorrect [\#1028](https://github.com/kivy/buildozer/issues/1028)
  - Windows support to build Android APK [\#1022](https://github.com/kivy/buildozer/issues/1022)
  - How to make third party site-packages 'requests' run on Android [\#1021](https://github.com/kivy/buildozer/issues/1021)
  - Crash on buildozer android debug command. Command failed: /usr/bin/python -m pythonforandroid.toolchain [\#1017](https://github.com/kivy/buildozer/issues/1017)
  - Build failed: Couldn't find executable for CC [\#1014](https://github.com/kivy/buildozer/issues/1014)
  - Cloning Error of python-for-android [\#1008](https://github.com/kivy/buildozer/issues/1008)
  - checking whether the C compiler works... no [\#1007](https://github.com/kivy/buildozer/issues/1007)
  - Kivy :How to ask for storage permission when app starts [\#1004](https://github.com/kivy/buildozer/issues/1004)
  - Buildozer :No module named 'numpy.core.\_multiarray\_umath' [\#1002](https://github.com/kivy/buildozer/issues/1002)
  - Kivy app Crashes while import openpyxl [\#1001](https://github.com/kivy/buildozer/issues/1001)
  - Warning when i run "buildozer -v android debug" [\#982](https://github.com/kivy/buildozer/issues/982)
  - sdkmanager is notinstalled [\#927](https://github.com/kivy/buildozer/issues/927)
  **Merged pull requests:**
  - Update README.md [\#1111](https://github.com/kivy/buildozer/pull/1111) ([tshirtman](https://github.com/tshirtman))
  - Fixes Docker apt cache missed [\#1107](https://github.com/kivy/buildozer/pull/1107) ([AndreMiras](https://github.com/AndreMiras))
  - Adds libssl-dev to the install dependencies [\#1106](https://github.com/kivy/buildozer/pull/1106) ([AndreMiras](https://github.com/AndreMiras))
  - Automatically publish to PyPI upon tagging [\#1105](https://github.com/kivy/buildozer/pull/1105) ([AndreMiras](https://github.com/AndreMiras))
  - Fix punctuation and typo in README.md [\#1101](https://github.com/kivy/buildozer/pull/1101) ([hematogender](https://github.com/hematogender))
  - Build integration test [\#1100](https://github.com/kivy/buildozer/pull/1100) ([AndreMiras](https://github.com/AndreMiras))
  - Fixes missing libssl-dev dependency [\#1099](https://github.com/kivy/buildozer/pull/1099) ([AndreMiras](https://github.com/AndreMiras))
  - Drops Python 2 support [\#1094](https://github.com/kivy/buildozer/pull/1094) ([AndreMiras](https://github.com/AndreMiras))
  - Checks SDK, NDK and p4a get downloaded on first run [\#1093](https://github.com/kivy/buildozer/pull/1093) ([AndreMiras](https://github.com/AndreMiras))
  - Integration testing [\#1083](https://github.com/kivy/buildozer/pull/1083) ([AndreMiras](https://github.com/AndreMiras))
  - Also tests against macOS platform [\#1078](https://github.com/kivy/buildozer/pull/1078) ([AndreMiras](https://github.com/AndreMiras))
  - Fix NameError with Python 3 and iOS target [\#1071](https://github.com/kivy/buildozer/pull/1071) ([lerela](https://github.com/lerela))
  - Unit tests TargetAndroid.build\_package() [\#1069](https://github.com/kivy/buildozer/pull/1069) ([AndreMiras](https://github.com/AndreMiras))
  - Dedicated Docker build/run job [\#1068](https://github.com/kivy/buildozer/pull/1068) ([AndreMiras](https://github.com/AndreMiras))
  - F841: local variable is assigned to but never used [\#1066](https://github.com/kivy/buildozer/pull/1066) ([AndreMiras](https://github.com/AndreMiras))
  - PEP8 organisation and fixes [\#1065](https://github.com/kivy/buildozer/pull/1065) ([AndreMiras](https://github.com/AndreMiras))
  - Fixes coveralls.io on pull requests [\#1063](https://github.com/kivy/buildozer/pull/1063) ([AndreMiras](https://github.com/AndreMiras))
  - Coveralls TOKEN is only available on branch master [\#1062](https://github.com/kivy/buildozer/pull/1062) ([AndreMiras](https://github.com/AndreMiras))
  - Starts unit testing buildozer/targets/android.py [\#1061](https://github.com/kivy/buildozer/pull/1061) ([AndreMiras](https://github.com/AndreMiras))
  - Setup coverage testing [\#1060](https://github.com/kivy/buildozer/pull/1060) ([AndreMiras](https://github.com/AndreMiras))
  - Fix Dockerfile dependencies [\#1053](https://github.com/kivy/buildozer/pull/1053) ([Sirfanas](https://github.com/Sirfanas))
  - Updates default buildozer.spec NDK from 17c to 19b [\#1041](https://github.com/kivy/buildozer/pull/1041) ([AndreMiras](https://github.com/AndreMiras))
  - Fix config typo in default.spec [\#1026](https://github.com/kivy/buildozer/pull/1026) ([touilleMan](https://github.com/touilleMan))
  - Android gradle build: fix apk name [\#1025](https://github.com/kivy/buildozer/pull/1025) ([SomberNight](https://github.com/SomberNight))

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.39...1.0)
  **Fixed bugs:**
  - Accept license terms prompt is not visible [\#916](https://github.com/kivy/buildozer/issues/916)
  - Unable to build release.  File "/usr/lib/python3.6/shutil.py", line 96, in copyfile with open\(src, 'rb'\) as fsrc: IOError: \[Errno 2\] No such file or directory:  [\#851](https://github.com/kivy/buildozer/issues/851)
  - error: cannot find -lpython3.7 [\#842](https://github.com/kivy/buildozer/issues/842)
  - android.accept\_sdk\_license may misbehave [\#816](https://github.com/kivy/buildozer/issues/816)
  - Python3 error with pexpect [\#221](https://github.com/kivy/buildozer/issues/221)
  **Closed issues:**
  - Sup Req : Buildozer debug does not complete - Error threading.py, sh.py, etc.. [\#1000](https://github.com/kivy/buildozer/issues/1000)
  - Buildozer failed to execute the last command [\#999](https://github.com/kivy/buildozer/issues/999)
  - Android fullscreen mode: cannot hide status bar! [\#989](https://github.com/kivy/buildozer/issues/989)
  - buildozer uses wrong python version and disrespects requirement versions [\#988](https://github.com/kivy/buildozer/issues/988)
  - The version of Kivy installed on this system is too old. [\#987](https://github.com/kivy/buildozer/issues/987)
  - Failed to download any source lists!  [\#986](https://github.com/kivy/buildozer/issues/986)
  - Aidl cannot be executed error buildozer [\#984](https://github.com/kivy/buildozer/issues/984)
  - buildozer debug error "\[WARNING\]" when i run buildozer andriod debug  [\#980](https://github.com/kivy/buildozer/issues/980)
  - Building kivy app with python3 requirement gives "No compiled python is present to zip, skipping." warning and "Unable to import kivy.\_clock. Have you perhaps forgotten to compile kivy? ..." error when run on android device. [\#977](https://github.com/kivy/buildozer/issues/977)
  - Java And Python-for-android toolchain errors [\#975](https://github.com/kivy/buildozer/issues/975)
  - buildozer + python3 [\#973](https://github.com/kivy/buildozer/issues/973)
  - Error while running ".buildozer.../native-build/python -OO -m compileall -b -f /.../app [\#972](https://github.com/kivy/buildozer/issues/972)
  - buildozer fails with kivymd link [\#968](https://github.com/kivy/buildozer/issues/968)
  - ndk\_platform doesn't exist: /home/rr/android-ndk-r20/platforms/android-20/arch-arm [\#966](https://github.com/kivy/buildozer/issues/966)
  - Paused at  Installing/updating SDK platform tools if necessary [\#965](https://github.com/kivy/buildozer/issues/965)
  - java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema [\#962](https://github.com/kivy/buildozer/issues/962)
  - please add aidl into Dockerfile [\#960](https://github.com/kivy/buildozer/issues/960)
  - Missing \_ctypes module [\#955](https://github.com/kivy/buildozer/issues/955)
  - Kivy-Buildozer release version doesnt upload google store [\#953](https://github.com/kivy/buildozer/issues/953)
  - buildozer using wrong kivy version [\#943](https://github.com/kivy/buildozer/issues/943)
  - buildozer ndk-api=21 error [\#942](https://github.com/kivy/buildozer/issues/942)
  - app crash [\#939](https://github.com/kivy/buildozer/issues/939)
  - ERROR: JAVA\_HOME is set to an invalid directory: /usr/lib/jvm/java-8-oracle [\#929](https://github.com/kivy/buildozer/issues/929)
  - no-issue [\#926](https://github.com/kivy/buildozer/issues/926)
  - can't find file to patch toggle\_jpg\_png\_webp.patch [\#921](https://github.com/kivy/buildozer/issues/921)
  - No matching distribution found for io [\#915](https://github.com/kivy/buildozer/issues/915)
  - Error: No matching distribution found for io\(from -r requirements.txt \(line 5\)\) [\#914](https://github.com/kivy/buildozer/issues/914)
  - I'm also experiencing the same issue, using macOS 10.14.3 and no Docker -- just plain Buildozer from the PyPi repo. What is the recommended course of action to fix this? [\#913](https://github.com/kivy/buildozer/issues/913)
  - app crash [\#911](https://github.com/kivy/buildozer/issues/911)
  - warnings while building apk using buildozer [\#910](https://github.com/kivy/buildozer/issues/910)
  - buildozer error please help me!! [\#906](https://github.com/kivy/buildozer/issues/906)
  - My application does not open in android but if it works in geany, help please. [\#903](https://github.com/kivy/buildozer/issues/903)
  - \[Docker image\] Can't compile apk: /bin/tar ... "Cannot utime: Operation not permitted"  [\#902](https://github.com/kivy/buildozer/issues/902)
  - Fails to call numpy fft on android [\#899](https://github.com/kivy/buildozer/issues/899)
  - Command failed: /usr/bin/python3 -m pythonforandroid.toolchain [\#898](https://github.com/kivy/buildozer/issues/898)
  -  error: C compiler cannot create executables [\#897](https://github.com/kivy/buildozer/issues/897)
  - stopped at "Installing/updating SDK platform tools if necessary" [\#896](https://github.com/kivy/buildozer/issues/896)
  - ValueError: Tried to access ndk\_ver but it has not been set - this should not happen, something went wrong! [\#893](https://github.com/kivy/buildozer/issues/893)
  - Buildozer not installing from custom source folders [\#892](https://github.com/kivy/buildozer/issues/892)
  - Error with build requirements PIL \(Python 3\) [\#890](https://github.com/kivy/buildozer/issues/890)
  - rocker plants.cvs -an active -r -p rco.png  [\#889](https://github.com/kivy/buildozer/issues/889)
  - rocker plants.cvs -an active -r -p rco.png  [\#888](https://github.com/kivy/buildozer/issues/888)
  - rocker plants.cvs -an active -r -p rco.png  [\#887](https://github.com/kivy/buildozer/issues/887)
  - rocker plants.cvs -an active -r -p rco.png  [\#886](https://github.com/kivy/buildozer/issues/886)
  - rocker plants.cvs -an active -r -p rco.png  [\#885](https://github.com/kivy/buildozer/issues/885)
  - host=arm-linux-androideabi [\#884](https://github.com/kivy/buildozer/issues/884)
  - Buildozer has attribute errors and will not run [\#883](https://github.com/kivy/buildozer/issues/883)
  - buildozer on osx not working [\#879](https://github.com/kivy/buildozer/issues/879)
  - Android API Issue [\#877](https://github.com/kivy/buildozer/issues/877)
  - What is the way to add folders and files? [\#875](https://github.com/kivy/buildozer/issues/875)
  - Buildozer Error  [\#874](https://github.com/kivy/buildozer/issues/874)
  - Problem with "Unpacking sdl2\_image" and "Parent module 'pythonforandroid.recipes' not found" [\#872](https://github.com/kivy/buildozer/issues/872)
  - buildozer android debug deploy is stuck [\#870](https://github.com/kivy/buildozer/issues/870)
  - running autoreconf -vif [\#866](https://github.com/kivy/buildozer/issues/866)
  - Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema [\#862](https://github.com/kivy/buildozer/issues/862)
  - Can not build x86 APK file [\#861](https://github.com/kivy/buildozer/issues/861)
  - But then a lot more issues, deep in the weeds now. [\#858](https://github.com/kivy/buildozer/issues/858)
  - Create tests for PR fix bug when logcat value which cannot be decode to utf-8 [\#857](https://github.com/kivy/buildozer/issues/857)
  - Can't Cythonize pyjnius: TypeError: can't pickle Argument objects [\#850](https://github.com/kivy/buildozer/issues/850)
  - buildozer -h complains about NoneType target [\#849](https://github.com/kivy/buildozer/issues/849)
  - Building failes at compiling openssl\[armeabi-v7a\] [\#841](https://github.com/kivy/buildozer/issues/841)
  - Applying patches for libffi\[armeabi-v7a\] [\#840](https://github.com/kivy/buildozer/issues/840)
  - Errors while running buildozer android debug deploy [\#832](https://github.com/kivy/buildozer/issues/832)
  - "Command failed" when running "buildozer android debug deploy run" [\#829](https://github.com/kivy/buildozer/issues/829)
  - Build Python3 for Android with Azure-keyvault and merest [\#828](https://github.com/kivy/buildozer/issues/828)
  - Outdated Android NDK download URL in Kivy Virtual Machine [\#827](https://github.com/kivy/buildozer/issues/827)
  - App crashes on startup [\#826](https://github.com/kivy/buildozer/issues/826)
  - I found the origin of the problem mentioned in issue \#694 \(Aidl not found\) [\#824](https://github.com/kivy/buildozer/issues/824)
  - download\(\) is not CI log friendly [\#823](https://github.com/kivy/buildozer/issues/823)
  - Application stuck in portrait mode [\#820](https://github.com/kivy/buildozer/issues/820)
  - Orientation landscape when set to portrait [\#818](https://github.com/kivy/buildozer/issues/818)
  - Certain python requirements fail due to `\_ctypes` [\#815](https://github.com/kivy/buildozer/issues/815)
  - Running buildozer help crashes [\#813](https://github.com/kivy/buildozer/issues/813)
  - \[Buildozer 0.40.dev0, Buildozer 0.39\] AttributeError: 'Buildozer' object has no attribute 'translate\_target' [\#812](https://github.com/kivy/buildozer/issues/812)
  - Version number failing to be added to apk [\#810](https://github.com/kivy/buildozer/issues/810)
  - Virtual machine out of date [\#764](https://github.com/kivy/buildozer/issues/764)
  - Docker doesn't build [\#751](https://github.com/kivy/buildozer/issues/751)
  - Buildozer exit code on recipe fail [\#674](https://github.com/kivy/buildozer/issues/674)
  - not able to release apk in release mode - build failed [\#363](https://github.com/kivy/buildozer/issues/363)
  - Issue with NDK r11b [\#308](https://github.com/kivy/buildozer/issues/308)
  - Feature: Create a compat.py for correct PY3 support and implement it [\#300](https://github.com/kivy/buildozer/issues/300)
  - Curl missing in KivyVM [\#296](https://github.com/kivy/buildozer/issues/296)
  - Virtual machine image could have better support for international keyboards [\#295](https://github.com/kivy/buildozer/issues/295)
  - Virtual machine image does not have enough disk space [\#294](https://github.com/kivy/buildozer/issues/294)
  - Not quite an issue, just some dependency stuff [\#247](https://github.com/kivy/buildozer/issues/247)
  - \# Command failed: ./distribute.sh -m "kivy" -d "stapp" [\#204](https://github.com/kivy/buildozer/issues/204)
  - Command ./distribute.sh failed -- no buildozer.spec found when it exists [\#203](https://github.com/kivy/buildozer/issues/203)
  - buildozer -v android debug : Compile fails at fcntlmodule.c [\#196](https://github.com/kivy/buildozer/issues/196)
  - Build errors on OSX 10.10 \(for android\) [\#165](https://github.com/kivy/buildozer/issues/165)
  - Feature Request: Vagrantfile [\#154](https://github.com/kivy/buildozer/issues/154)
  **Merged pull requests:**
  - Feature GitHub actions [\#1005](https://github.com/kivy/buildozer/pull/1005) ([tito](https://github.com/tito))
  - Fixes test\_p4a\_recommended\_android\_ndk\_found\(\) mocking [\#983](https://github.com/kivy/buildozer/pull/983) ([AndreMiras](https://github.com/AndreMiras))
  - Fixes packaging for current p4a develop branch [\#978](https://github.com/kivy/buildozer/pull/978) ([misl6](https://github.com/misl6))
  - Updates install instructions and troubleshooting [\#976](https://github.com/kivy/buildozer/pull/976) ([AndreMiras](https://github.com/AndreMiras))
  - fix: show output of sdk update if auto\_accept\_license is false [\#970](https://github.com/kivy/buildozer/pull/970) ([tshirtman](https://github.com/tshirtman))
  - Add libs only for current arch [\#969](https://github.com/kivy/buildozer/pull/969) ([misl6](https://github.com/misl6))
  - Rename final apk with arch in the name [\#967](https://github.com/kivy/buildozer/pull/967) ([tito](https://github.com/tito))
  - Code improvements around NDK download [\#961](https://github.com/kivy/buildozer/pull/961) ([inclement](https://github.com/inclement))
  - Separate build per android.arch [\#957](https://github.com/kivy/buildozer/pull/957) ([tito](https://github.com/tito))
  - spec file: cast paths in source.exclude\_dirs to lowercase [\#956](https://github.com/kivy/buildozer/pull/956) ([SomberNight](https://github.com/SomberNight))
  - added cmake to requirements [\#950](https://github.com/kivy/buildozer/pull/950) ([mcroni](https://github.com/mcroni))
  - Add ability to get p4a's recommended android's NDK version [\#947](https://github.com/kivy/buildozer/pull/947) ([opacam](https://github.com/opacam))
  - New feature: allow to use a p4a fork [\#940](https://github.com/kivy/buildozer/pull/940) ([opacam](https://github.com/opacam))
  - Minor linter fix [\#937](https://github.com/kivy/buildozer/pull/937) ([AndreMiras](https://github.com/AndreMiras))
  - Update installation.rst [\#936](https://github.com/kivy/buildozer/pull/936) ([yairlempert](https://github.com/yairlempert))
  - clarify overriding of config tokens [\#935](https://github.com/kivy/buildozer/pull/935) ([brentpicasso](https://github.com/brentpicasso))
  - Extend add\_libs to arm64-v8a [\#934](https://github.com/kivy/buildozer/pull/934) ([misl6](https://github.com/misl6))
  - Doc/installation updates [\#932](https://github.com/kivy/buildozer/pull/932) ([tshirtman](https://github.com/tshirtman))
  - customizability options [\#919](https://github.com/kivy/buildozer/pull/919) ([zworkb](https://github.com/zworkb))
  - disable orientation and window option for service\_only bootstrap [\#912](https://github.com/kivy/buildozer/pull/912) ([zworkb](https://github.com/zworkb))
  - Unit test unicode decode on command output, fixes \#857 [\#905](https://github.com/kivy/buildozer/pull/905) ([AndreMiras](https://github.com/AndreMiras))
  - Made sure to print all lines of license question by always flushing [\#904](https://github.com/kivy/buildozer/pull/904) ([inclement](https://github.com/inclement))
  - Exits with error code on build exception, fixes \#674 [\#882](https://github.com/kivy/buildozer/pull/882) ([AndreMiras](https://github.com/AndreMiras))
  - Download Apache ANT at the same path as the buildozer.spec android.ant\_path option [\#860](https://github.com/kivy/buildozer/pull/860) ([robertpro](https://github.com/robertpro))
  - Fix for bug when logcat value which cannot be decode to utf-8 [\#856](https://github.com/kivy/buildozer/pull/856) ([Draqun](https://github.com/Draqun))
  - Changes default log level to debug \(2\) [\#855](https://github.com/kivy/buildozer/pull/855) ([AndreMiras](https://github.com/AndreMiras))
  - Handles unknown command/target error gracefully, closes \#812 [\#853](https://github.com/kivy/buildozer/pull/853) ([AndreMiras](https://github.com/AndreMiras))
  - Updates system requirements needed to build recipes [\#852](https://github.com/kivy/buildozer/pull/852) ([AndreMiras](https://github.com/AndreMiras))
  - Various Dockerfile improvements [\#848](https://github.com/kivy/buildozer/pull/848) ([AndreMiras](https://github.com/AndreMiras))
  - Support p4a uses-library argument [\#846](https://github.com/kivy/buildozer/pull/846) ([pax0r](https://github.com/pax0r))
  - Removed reference to Kivy VM [\#845](https://github.com/kivy/buildozer/pull/845) ([Megalex42](https://github.com/Megalex42))
  - Removes extra log\_env\(\) call [\#843](https://github.com/kivy/buildozer/pull/843) ([AndreMiras](https://github.com/AndreMiras))
  - add missing android arch to spec file [\#839](https://github.com/kivy/buildozer/pull/839) ([OptimusGREEN](https://github.com/OptimusGREEN))
  - feat: make unzip quiet [\#836](https://github.com/kivy/buildozer/pull/836) ([mkg20001](https://github.com/mkg20001))
  - fix: drop release-unsigned from release output path [\#835](https://github.com/kivy/buildozer/pull/835) ([mkg20001](https://github.com/mkg20001))
  - Add ci\_mode to toggle download progress [\#833](https://github.com/kivy/buildozer/pull/833) ([mkg20001](https://github.com/mkg20001))
  - Unit test logger [\#831](https://github.com/kivy/buildozer/pull/831) ([AndreMiras](https://github.com/AndreMiras))
  - refactor auto accept license [\#822](https://github.com/kivy/buildozer/pull/822) ([AndreMiras](https://github.com/AndreMiras))
  - Unit tests buildozer --help command, refs \#813 [\#821](https://github.com/kivy/buildozer/pull/821) ([AndreMiras](https://github.com/AndreMiras))
  - Use getbooldefault\(\) for boolean, fixes \#806 [\#817](https://github.com/kivy/buildozer/pull/817) ([AndreMiras](https://github.com/AndreMiras))
  - Update the issue template [\#814](https://github.com/kivy/buildozer/pull/814) ([AndreMiras](https://github.com/AndreMiras))
  - Show envs when run2 [\#802](https://github.com/kivy/buildozer/pull/802) ([maho](https://github.com/maho))

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.38...0.39)

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.36...0.38)
  **Fixed bugs:**
  - TypeError: read\(\) takes exactly 2 arguments \(3 given\) [\#793](https://github.com/kivy/buildozer/issues/793)
  - TypeError: read\(\) takes exactly 2 arguments \(3 given\) [\#792](https://github.com/kivy/buildozer/issues/792)
  - AttributeError: 'str' object has no attribute 'decode' [\#756](https://github.com/kivy/buildozer/issues/756)
  **Closed issues:**
  - Openssl compilation fails, '\_\_atomic' undefined [\#800](https://github.com/kivy/buildozer/issues/800)
  - --ndk-api appears twice [\#798](https://github.com/kivy/buildozer/issues/798)
  - Error in toolchain.py and argument --ndk-api 9 [\#797](https://github.com/kivy/buildozer/issues/797)
  - Target ndk-api is 19, but the \*\*python3 recipe supports only 21\*\* [\#796](https://github.com/kivy/buildozer/issues/796)
  - Add support for --frameworks on iOS [\#790](https://github.com/kivy/buildozer/issues/790)
  - Hello World impossible: checking whether the C compiler works... no [\#785](https://github.com/kivy/buildozer/issues/785)
  - Buildozer 0.37 UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2  [\#782](https://github.com/kivy/buildozer/issues/782)
  - APK Crashes on start with no obvious cause [\#779](https://github.com/kivy/buildozer/issues/779)
  - Outdated Android NDK download URL in Kivy Virtual Machine [\#778](https://github.com/kivy/buildozer/issues/778)
  - Buildozer "gradlew failed!" [\#777](https://github.com/kivy/buildozer/issues/777)
  - Conflicting documentation Python2 versus Python3 [\#774](https://github.com/kivy/buildozer/issues/774)
  - No valid --ndk-api received, using the default of 0 = min\(android-api=0, default ndk-api=21\) [\#772](https://github.com/kivy/buildozer/issues/772)
  - `default.spec` specifies `python3` but also incompatible NDK and API settings [\#770](https://github.com/kivy/buildozer/issues/770)
  - Error: minsdk argument does not match the api that is compiled against [\#768](https://github.com/kivy/buildozer/issues/768)
  - Need to support sensorLandscape [\#762](https://github.com/kivy/buildozer/issues/762)
  - minsdk argument does not match the api that is compiled against [\#761](https://github.com/kivy/buildozer/issues/761)
  - Need to be able to specify the NDK API target [\#758](https://github.com/kivy/buildozer/issues/758)
  - Buildozer cannot import name pythran\_is\_numpy\_func\_supported  [\#753](https://github.com/kivy/buildozer/issues/753)
  - Python3 recipe not building, error with self.ctx.python\_recipe [\#752](https://github.com/kivy/buildozer/issues/752)
  - compile error [\#744](https://github.com/kivy/buildozer/issues/744)
  - APK build failed "ndk\_platform doesn't exist" \(Python3.6; android.api = 27\) [\#742](https://github.com/kivy/buildozer/issues/742)
  - Logo Design Proposal [\#734](https://github.com/kivy/buildozer/issues/734)
  - `android clean` not working \(FileNotFoundError: \[Errno 2\] No such file or directory\) [\#732](https://github.com/kivy/buildozer/issues/732)
  - Can't Make an APK via Buildozer [\#712](https://github.com/kivy/buildozer/issues/712)
  - App build Failed [\#707](https://github.com/kivy/buildozer/issues/707)
  - ERROR: /home/kivy/.buildozer/android/platform/apache-ant-1.9.4/bin/ant failed! [\#706](https://github.com/kivy/buildozer/issues/706)
  - APK using txt file in main.py issue. [\#704](https://github.com/kivy/buildozer/issues/704)
  - "Copying APK" fails because of wrong path used [\#699](https://github.com/kivy/buildozer/issues/699)
  - Cannot build [\#697](https://github.com/kivy/buildozer/issues/697)
  - Fail on build [\#692](https://github.com/kivy/buildozer/issues/692)
  - Cannot build "Hello World" APK [\#687](https://github.com/kivy/buildozer/issues/687)
  - Error when building an android APK using Kivy [\#684](https://github.com/kivy/buildozer/issues/684)
  - can't get audio stream from a server [\#683](https://github.com/kivy/buildozer/issues/683)
  - Continuous integration testing [\#679](https://github.com/kivy/buildozer/issues/679)
  - Post build fails because copying built apk fails [\#671](https://github.com/kivy/buildozer/issues/671)
  - Buildozer can't compile for Android on Manjaro Linux [\#670](https://github.com/kivy/buildozer/issues/670)
  - Icon/Logo Proposal [\#669](https://github.com/kivy/buildozer/issues/669)
  - Buildozer cant compile platform Ubuntu 16.04 [\#668](https://github.com/kivy/buildozer/issues/668)
  - Buildozer gets stuck at unpacking kivy [\#667](https://github.com/kivy/buildozer/issues/667)
  - Kivy window [\#666](https://github.com/kivy/buildozer/issues/666)
  - Failed building wheel for pyaudio [\#665](https://github.com/kivy/buildozer/issues/665)
  - Buildozer compilation gets stuck [\#663](https://github.com/kivy/buildozer/issues/663)
  - IOError: \[Errno 2\] No such file or directory: u'/home/samurai-girl/python2/.buildozer/android/platform/build/dists/test/build/outputs/apk/test-debug.apk' [\#662](https://github.com/kivy/buildozer/issues/662)
  - Unable to build \_ctypes.so [\#660](https://github.com/kivy/buildozer/issues/660)
  - error while packaging for android on macOS [\#659](https://github.com/kivy/buildozer/issues/659)
  - Command failed: /usr/bin/python2 -m pythonforandroid.toolchain [\#658](https://github.com/kivy/buildozer/issues/658)
  - Cannot build apk with buildozer android debug [\#656](https://github.com/kivy/buildozer/issues/656)
  - How to correctly build an APK package with Python 3? [\#655](https://github.com/kivy/buildozer/issues/655)
  - SDK does not have any Build Tools installed. [\#652](https://github.com/kivy/buildozer/issues/652)
  - Error building Kivy app with opencv\(and numpy\) - raise CommandNotFoundError\(path\) [\#651](https://github.com/kivy/buildozer/issues/651)
  - FileNotFoundError: \[Errno 2\] [\#649](https://github.com/kivy/buildozer/issues/649)
  -  The python3crystax recipe can only be built when using the CrystaX NDK. Exiting. [\#648](https://github.com/kivy/buildozer/issues/648)
  - build apk : error can not find the build/output folder [\#647](https://github.com/kivy/buildozer/issues/647)
  - help me building cryptography [\#646](https://github.com/kivy/buildozer/issues/646)
  - sslv3 alert handshake failure on Addroid [\#643](https://github.com/kivy/buildozer/issues/643)
  - Opening Android SDK Manager to download "Google Repository" and "Google Play services" [\#642](https://github.com/kivy/buildozer/issues/642)
  - kivy python host failed [\#641](https://github.com/kivy/buildozer/issues/641)
  - python.host failed [\#640](https://github.com/kivy/buildozer/issues/640)
  - Kivy Crashing [\#638](https://github.com/kivy/buildozer/issues/638)
  - .so lib files missing debug symbols [\#637](https://github.com/kivy/buildozer/issues/637)
  - Kivy app doesn't run [\#634](https://github.com/kivy/buildozer/issues/634)
  - "\* daemon not running. starting it now on port 5037 \* \* daemon started successfully \*" [\#633](https://github.com/kivy/buildozer/issues/633)
  - FileNotFoundError: \[Errno 2\] No such file or directory: '/home/alex/Documents/pengame/.buildozer/android/platform/build/dists/helloworldapp/build/outputs/apk/helloworldapp-debug.apk' [\#632](https://github.com/kivy/buildozer/issues/632)
  - Compiling Kivy app to apk fails with a pip error [\#631](https://github.com/kivy/buildozer/issues/631)
  -  ERROR: /home/ubuntu/.buildozer/android/platform/apache-ant-1.9.4/bin/ant failed! [\#625](https://github.com/kivy/buildozer/issues/625)
  - Build error when building Kivy app [\#624](https://github.com/kivy/buildozer/issues/624)
  - buildozer debug is not running  this error is showing  [\#622](https://github.com/kivy/buildozer/issues/622)
  - unexpected e\_machine: 3 [\#621](https://github.com/kivy/buildozer/issues/621)
  - buildozer matplotlib [\#617](https://github.com/kivy/buildozer/issues/617)
  - IOError: \[Errno 2\] No such file or directory: u'/Users/gauravgupta/kivy/.buildozer/android/platform/build/dists/myellipse/build/outputs/apk/myellipse-debug.apk' [\#613](https://github.com/kivy/buildozer/issues/613)
  - Build failing in final ANT stage [\#610](https://github.com/kivy/buildozer/issues/610)
  - Cannot build apk [\#606](https://github.com/kivy/buildozer/issues/606)
  - Installing buildozer for Python 3 failed [\#604](https://github.com/kivy/buildozer/issues/604)
  - FileNotFoundError at end of build when copying APK file. [\#602](https://github.com/kivy/buildozer/issues/602)
  - BUILD FAILED [\#601](https://github.com/kivy/buildozer/issues/601)
  - Error with buildozer [\#591](https://github.com/kivy/buildozer/issues/591)
  - ImportError: No module named Cython.Distutils While running buildozer android debug [\#587](https://github.com/kivy/buildozer/issues/587)
  - python 2.7 compile with NDK 15c [\#584](https://github.com/kivy/buildozer/issues/584)
  - Problem upgrade to newest version [\#583](https://github.com/kivy/buildozer/issues/583)
  - Simple Kivy test app can't compile to android apk [\#581](https://github.com/kivy/buildozer/issues/581)
  - Apple Watch Support [\#574](https://github.com/kivy/buildozer/issues/574)
  - Skip error or better error message: requirements with extra comma [\#562](https://github.com/kivy/buildozer/issues/562)
  - failed to build numpy on Mac [\#557](https://github.com/kivy/buildozer/issues/557)
  - p4a.source\_dir set and android clean --\> crash [\#556](https://github.com/kivy/buildozer/issues/556)
  - Kivy python android build error? [\#555](https://github.com/kivy/buildozer/issues/555)
  - python3 import networkx needs lib2to3 but cannot be imported [\#554](https://github.com/kivy/buildozer/issues/554)
  - buildozer android debug deploy run ERROR [\#550](https://github.com/kivy/buildozer/issues/550)
  - App Crashes [\#541](https://github.com/kivy/buildozer/issues/541)
  - Requirements: Requests, Ssl [\#539](https://github.com/kivy/buildozer/issues/539)
  - Error: Aidl cannot be executed [\#532](https://github.com/kivy/buildozer/issues/532)
  - Kivy and Beautifulsoup with Buildozer fail on Python 3. [\#529](https://github.com/kivy/buildozer/issues/529)
  - I'm having similar problem  [\#528](https://github.com/kivy/buildozer/issues/528)
  - Awkward error while building apk [\#526](https://github.com/kivy/buildozer/issues/526)
  - The "android" command is deprecated [\#519](https://github.com/kivy/buildozer/issues/519)
  - Kivy: Permission denied \(when running buildozer android on Mac OS X\) [\#517](https://github.com/kivy/buildozer/issues/517)
  - Extraction of "Kivy2.7z" failed [\#516](https://github.com/kivy/buildozer/issues/516)
  - buildozer still download ndk from wrong path [\#506](https://github.com/kivy/buildozer/issues/506)
  - android-new landscape error on restart [\#482](https://github.com/kivy/buildozer/issues/482)
  - Add possibility to choose pip version for modules in the requirements section [\#475](https://github.com/kivy/buildozer/issues/475)
  - Bulldozer android\_new fails when ffmpeg is added to the requirements: No C Compiler found! [\#463](https://github.com/kivy/buildozer/issues/463)
  - CalledProcessError: Command '\['python', 'package\_app.py', '--displayname=Music Favorites'\]' returned non-zero exit status 1 [\#448](https://github.com/kivy/buildozer/issues/448)
  - \[Errno 13\] Permission denied; Buildozer on Flask Server [\#445](https://github.com/kivy/buildozer/issues/445)
  - Error while compiling a kivy app for android \(undefined reference to 'SDL\_main' collect2: error: ld returned 1 exit status\) [\#438](https://github.com/kivy/buildozer/issues/438)
  - AsyncImage not loading in .apk [\#433](https://github.com/kivy/buildozer/issues/433)
  - Big Bug, ORMs cant find sqlite3.so [\#426](https://github.com/kivy/buildozer/issues/426)
  - cp: cannot stat '~/.buildozer/android/platform/python-for-android/src/libs/armeabi/\*.so': No such file or directory [\#422](https://github.com/kivy/buildozer/issues/422)
  - using android\_new causes missing packages errors [\#420](https://github.com/kivy/buildozer/issues/420)
  - Buildozer fails with "Command '\['ant', 'debug'\]' returned non-zero exit status 1" [\#419](https://github.com/kivy/buildozer/issues/419)
  - Buildozer fails to build when ffmpeg is added  [\#418](https://github.com/kivy/buildozer/issues/418)
  - Build on arm64 android [\#412](https://github.com/kivy/buildozer/issues/412)
  - Building with "android\_new" target fails due to missing architecture on pythonforandroid.toolchain apk [\#407](https://github.com/kivy/buildozer/issues/407)
  - Command '\['ant', 'debug'\]' returned non-zero exit status 1 when building PIL library [\#406](https://github.com/kivy/buildozer/issues/406)
  - Android, Pygame backend: buildozer android debug deploy run tries to launch wrong Activity [\#401](https://github.com/kivy/buildozer/issues/401)
  - AttributeError: 'NoneType' object has no attribute 'splitlines' [\#400](https://github.com/kivy/buildozer/issues/400)
  - Pyzmq import fails on Android with python2 / kivy 1.9 / cython 0.23 [\#397](https://github.com/kivy/buildozer/issues/397)
  - Python 3: \# Aidl cannot be executed AttributeError: 'module' object has no attribute 'maxint' [\#392](https://github.com/kivy/buildozer/issues/392)
  - subprocess.CalledProcessError [\#391](https://github.com/kivy/buildozer/issues/391)
  - python.host could not find platform independent libraries [\#390](https://github.com/kivy/buildozer/issues/390)
  - Buildozer android\_new fails [\#388](https://github.com/kivy/buildozer/issues/388)
  - toolchain.py: error: argument --private is required [\#384](https://github.com/kivy/buildozer/issues/384)
  - Android fails on running Kivy apk [\#381](https://github.com/kivy/buildozer/issues/381)
  - ImportError: No module named plyer with android\_new as a target [\#379](https://github.com/kivy/buildozer/issues/379)
  - buildozer -v android debug runs into problem [\#376](https://github.com/kivy/buildozer/issues/376)
  - subprocess.CalledProcessError [\#372](https://github.com/kivy/buildozer/issues/372)
  - Can't install Pillow , return errors [\#371](https://github.com/kivy/buildozer/issues/371)
  - failed to load ctypes as android app built on OSX [\#368](https://github.com/kivy/buildozer/issues/368)
  - old\_toolchain not shows images [\#367](https://github.com/kivy/buildozer/issues/367)
  - Buildozer deployment dlopen failed libSDL2.so has unexpected e\_machine: 40 [\#365](https://github.com/kivy/buildozer/issues/365)
  - Rebuild only selected packages [\#226](https://github.com/kivy/buildozer/issues/226)
  **Merged pull requests:**
  - Updated README for Python 3 [\#809](https://github.com/kivy/buildozer/pull/809) ([inclement](https://github.com/inclement))
  - Update README.md to add opencollective [\#808](https://github.com/kivy/buildozer/pull/808) ([tito](https://github.com/tito))
  - Made buildozer respect user sdk dir when accessing sdkmanager [\#807](https://github.com/kivy/buildozer/pull/807) ([inclement](https://github.com/inclement))
  - Removed android\_old and updated SDK management to work with current SDK [\#806](https://github.com/kivy/buildozer/pull/806) ([inclement](https://github.com/inclement))
  - Removed redundant --ndk-api argument and fixed default value [\#805](https://github.com/kivy/buildozer/pull/805) ([inclement](https://github.com/inclement))
  - Update for p4a master [\#803](https://github.com/kivy/buildozer/pull/803) ([inclement](https://github.com/inclement))
  - Unit tests read spec file, refs \#793 [\#799](https://github.com/kivy/buildozer/pull/799) ([AndreMiras](https://github.com/AndreMiras))
  - Support the --add-frameworks flag in kivy-ios [\#795](https://github.com/kivy/buildozer/pull/795) ([hackalog](https://github.com/hackalog))
  - Introduces CI and tox testing, fixes \#679 [\#794](https://github.com/kivy/buildozer/pull/794) ([AndreMiras](https://github.com/AndreMiras))
  - Fix python 2 crash when reading config file [\#791](https://github.com/kivy/buildozer/pull/791) ([etc0de](https://github.com/etc0de))
  - Handle buildozer.spec with unicode chars [\#789](https://github.com/kivy/buildozer/pull/789) ([guysoft](https://github.com/guysoft))
  - Specify GitHub branches in buildozer.spec [\#787](https://github.com/kivy/buildozer/pull/787) ([hackalog](https://github.com/hackalog))
  - Fixes minor comment typo introduced in \#759 [\#786](https://github.com/kivy/buildozer/pull/786) ([AndreMiras](https://github.com/AndreMiras))
  - Docker from current git [\#775](https://github.com/kivy/buildozer/pull/775) ([maho](https://github.com/maho))
  - Fix output directory for gradle [\#766](https://github.com/kivy/buildozer/pull/766) ([wo01](https://github.com/wo01))
  - support sensorLandscape mode. resolves \#762 [\#763](https://github.com/kivy/buildozer/pull/763) ([brentpicasso](https://github.com/brentpicasso))
  - allow specifying of Android NDK API. Resolves \#758 [\#759](https://github.com/kivy/buildozer/pull/759) ([brentpicasso](https://github.com/brentpicasso))
  - Update cython version from the docs [\#757](https://github.com/kivy/buildozer/pull/757) ([AndreMiras](https://github.com/AndreMiras))
  - fix android sdk/ndk information link [\#755](https://github.com/kivy/buildozer/pull/755) ([avere001](https://github.com/avere001))
  - this allows to build with ndk 17c \(and other recent-ish ones\) [\#754](https://github.com/kivy/buildozer/pull/754) ([tshirtman](https://github.com/tshirtman))
  - fix ndk URLs [\#747](https://github.com/kivy/buildozer/pull/747) ([zworkb](https://github.com/zworkb))

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.35...0.36)
  **Fixed bugs:**
  - Error in debug, install platform, Indexerror. [\#731](https://github.com/kivy/buildozer/issues/731)
  **Closed issues:**
  - Buildozer looking for nonexistent script [\#749](https://github.com/kivy/buildozer/issues/749)
  - Can not build APK file with buildozer. UnicodeDecodeError [\#746](https://github.com/kivy/buildozer/issues/746)
  - CrystaX no longer the preferred NDK for Python3 [\#745](https://github.com/kivy/buildozer/issues/745)
  - AKP build fails \(android.py line 524\) [\#738](https://github.com/kivy/buildozer/issues/738)
  - Buildozer 0.35 with IndexError: list index out of range on Mac OS [\#737](https://github.com/kivy/buildozer/issues/737)
  - cannot build pyjnius for armeabi-v7a [\#735](https://github.com/kivy/buildozer/issues/735)
  - I can't package my app the way i always did. [\#733](https://github.com/kivy/buildozer/issues/733)
  - OSError: \[Errno 18\] Invalid cross-device link [\#644](https://github.com/kivy/buildozer/issues/644)
  **Merged pull requests:**
  - Correctly write out a sub-process's `stdout` when using Python 3. [\#743](https://github.com/kivy/buildozer/pull/743) ([dbrnz](https://github.com/dbrnz))
  - Explicitly run `pip3` when using Python 3 [\#741](https://github.com/kivy/buildozer/pull/741) ([dbrnz](https://github.com/dbrnz))
  - workaround for working in WSL [\#740](https://github.com/kivy/buildozer/pull/740) ([tshirtman](https://github.com/tshirtman))
  - Allow for `install\_reqs` line having whitespace at start. [\#736](https://github.com/kivy/buildozer/pull/736) ([dbrnz](https://github.com/dbrnz))
  - Fix Support config file name [\#730](https://github.com/kivy/buildozer/pull/730) ([dessant](https://github.com/dessant))

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.34...0.35)
  **Fixed bugs:**
  - Buildozer should not regex/hack install\_reqs [\#722](https://github.com/kivy/buildozer/issues/722)
  **Closed issues:**
  - Command failed: /usr/bin/python -m pythonforandroid.toolchain create...  [\#727](https://github.com/kivy/buildozer/issues/727)
  - buildozer fails at installing platfrom [\#726](https://github.com/kivy/buildozer/issues/726)
  - Unable to build APK [\#725](https://github.com/kivy/buildozer/issues/725)
  - Buildozer APK not working: OS X, Docker, or fresh Ubuntu 16.04 [\#723](https://github.com/kivy/buildozer/issues/723)
  - gcc Segmentation Fault [\#720](https://github.com/kivy/buildozer/issues/720)
  - Error debugging for android [\#719](https://github.com/kivy/buildozer/issues/719)
  - ndk\_platform doesn't exist \(when switching to API = 28\) [\#717](https://github.com/kivy/buildozer/issues/717)
  - FileNotFoundError: \[Errno 2\] \(SOLVED\) - It was Encoding Error [\#715](https://github.com/kivy/buildozer/issues/715)
  - SDL\_JAVA\_PACKAGE\_PATH error? [\#714](https://github.com/kivy/buildozer/issues/714)
  - Python3Crystax instructions in README [\#710](https://github.com/kivy/buildozer/issues/710)
  - Bug or support request? [\#708](https://github.com/kivy/buildozer/issues/708)
  - build requirement failed [\#701](https://github.com/kivy/buildozer/issues/701)
  - I am using Virtual Machine provided in the official kivy website for building android APK, this is the part of log file [\#696](https://github.com/kivy/buildozer/issues/696)
  - App minimizes instantly after launching.  [\#695](https://github.com/kivy/buildozer/issues/695)
  - Aidl not detected [\#694](https://github.com/kivy/buildozer/issues/694)
  - python 3 ssl [\#690](https://github.com/kivy/buildozer/issues/690)
  - Is there something like multiprocessing? [\#685](https://github.com/kivy/buildozer/issues/685)
  - Kivy in pyCharm  [\#682](https://github.com/kivy/buildozer/issues/682)
  - Toolchain error. Help,please! [\#678](https://github.com/kivy/buildozer/issues/678)
  - virtual machine does not compile apk Fails with errors [\#677](https://github.com/kivy/buildozer/issues/677)
  - An error in Buildozer Apk \(Python Kivy\) Help PLZ! [\#676](https://github.com/kivy/buildozer/issues/676)
  - App crashes on android but works fine in idle window using buildozer [\#675](https://github.com/kivy/buildozer/issues/675)
  - Pyjnius exception Adbuddiz class not found [\#661](https://github.com/kivy/buildozer/issues/661)
  - Buildozer failed to execute the last command \#/usr/bin/python3 -m pythonforandroid.toolchain create --dist\_name=blueb --bootstrap=sdl2 --requirements=python3crystax,kivy --arch x86 --copy-libs --color=always --storage-dir=/home/jp/Desktop/BlueB/.buildozer/android/platform/build [\#654](https://github.com/kivy/buildozer/issues/654)
  - java.lang.ClassNotFoundException: sun.misc.BASE64Encoder	 [\#639](https://github.com/kivy/buildozer/issues/639)
  - IOError: \[Errno 2\] No such file or directory: [\#636](https://github.com/kivy/buildozer/issues/636)
  - App crashes with aws boto3 [\#635](https://github.com/kivy/buildozer/issues/635)
  - APK Immediately Closes After Opening in Debug, Release, and Zipaligned & Signed Versions [\#629](https://github.com/kivy/buildozer/issues/629)
  - Using Python/Buildozer to compile Kivy for Android [\#628](https://github.com/kivy/buildozer/issues/628)
  - "configure: error: C compiler cannot create executables See `config.log' for more details" \(\# Command failed: ./distribute.sh -m "kivy" -d "pollygot"\) [\#627](https://github.com/kivy/buildozer/issues/627)
  - "OSError: \[Errno 30\] Read-only file system" \(\# Command failed: virtualenv --python=python2.7 ./venv\) [\#626](https://github.com/kivy/buildozer/issues/626)
  - Java compiling issue: buildozer uses obsolete source value 1.5 [\#619](https://github.com/kivy/buildozer/issues/619)
  - Cloning into 'python-for-android-new-toolchain'... [\#618](https://github.com/kivy/buildozer/issues/618)
  - Failed to build application: 'WindowInfoX11' is not a type identifier [\#616](https://github.com/kivy/buildozer/issues/616)
  - Sudo issue\[closed\] [\#615](https://github.com/kivy/buildozer/issues/615)
  - buildozer-vm-2 installed from scratch ABENDS [\#611](https://github.com/kivy/buildozer/issues/611)
  - ASCII decode problem [\#608](https://github.com/kivy/buildozer/issues/608)
  - error: could not delete 'build/lib.linux-x86\_64-2.7/buildozer/targets/android.py': Permission denied [\#607](https://github.com/kivy/buildozer/issues/607)
  - APK Build Failing with Python 3.6 [\#605](https://github.com/kivy/buildozer/issues/605)
  - IOError: \[Errno 2\] No such file or directory: u'/home/kivy/buildozer/.buildozer/android/platform/build/... [\#603](https://github.com/kivy/buildozer/issues/603)
  - Feature Request: Dockerfile or image in dockerhub [\#589](https://github.com/kivy/buildozer/issues/589)
  - Buildozer debug error. [\#545](https://github.com/kivy/buildozer/issues/545)
  **Merged pull requests:**
  - Fix \#645 [\#729](https://github.com/kivy/buildozer/pull/729) ([tito](https://github.com/tito))
  - Enable Support app [\#728](https://github.com/kivy/buildozer/pull/728) ([dessant](https://github.com/dessant))
  - Updates p4a deps parsing [\#724](https://github.com/kivy/buildozer/pull/724) ([AndreMiras](https://github.com/AndreMiras))
  - Improved error handling if p4a setup.py can't be read [\#721](https://github.com/kivy/buildozer/pull/721) ([inclement](https://github.com/inclement))
  - Various spelling corrections [\#718](https://github.com/kivy/buildozer/pull/718) ([Zen-CODE](https://github.com/Zen-CODE))
  - Updates Python 3 install instructions, fixes \#710 [\#711](https://github.com/kivy/buildozer/pull/711) ([AndreMiras](https://github.com/AndreMiras))
  - Remove obsolete sh package dependency [\#705](https://github.com/kivy/buildozer/pull/705) ([Cheaterman](https://github.com/Cheaterman))
  - Changes how is\_gradle\_build is detected. [\#700](https://github.com/kivy/buildozer/pull/700) ([rammie](https://github.com/rammie))
  - Cleans installation docs [\#689](https://github.com/kivy/buildozer/pull/689) ([AndreMiras](https://github.com/AndreMiras))
  - Adds issue template with basic required info [\#688](https://github.com/kivy/buildozer/pull/688) ([AndreMiras](https://github.com/AndreMiras))
  - buildozer Dockerfile, fixes \#589 [\#681](https://github.com/kivy/buildozer/pull/681) ([AndreMiras](https://github.com/AndreMiras))
  - Removes few unused variables [\#680](https://github.com/kivy/buildozer/pull/680) ([AndreMiras](https://github.com/AndreMiras))
  - Fixed a typo pointed out by AndreMiras [\#664](https://github.com/kivy/buildozer/pull/664) ([inclement](https://github.com/inclement))
  - Updates installation.rst with Ubuntu 18.04 instructions [\#657](https://github.com/kivy/buildozer/pull/657) ([AndreMiras](https://github.com/AndreMiras))
  - fix prerelease version [\#653](https://github.com/kivy/buildozer/pull/653) ([marceloneil](https://github.com/marceloneil))
  - allow setting launchMode for the main activity in the manifest [\#650](https://github.com/kivy/buildozer/pull/650) ([SomberNight](https://github.com/SomberNight))
  - Fixes Invalid cross-device link [\#645](https://github.com/kivy/buildozer/pull/645) ([robertpro](https://github.com/robertpro))
  - Quote --storage-dir value [\#630](https://github.com/kivy/buildozer/pull/630) ([ghost](https://github.com/ghost))
  - Allow adding Java activities to the manifest [\#612](https://github.com/kivy/buildozer/pull/612) ([bauerj](https://github.com/bauerj))
  - add comment re p4a.port in default.spec [\#600](https://github.com/kivy/buildozer/pull/600) ([replabrobin](https://github.com/replabrobin))
  - Spelling [\#592](https://github.com/kivy/buildozer/pull/592) ([jsoref](https://github.com/jsoref))

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.33...0.34)
  **Closed issues:**
  - IOERROR invalid directory [\#599](https://github.com/kivy/buildozer/issues/599)
  - Buidozer 0.33  AttributeError: 'module' object has no attribute 'directory' [\#598](https://github.com/kivy/buildozer/issues/598)
  - Issu with buildozer packing [\#596](https://github.com/kivy/buildozer/issues/596)
  - Gradle: path may not be null or empty string. path='null' [\#595](https://github.com/kivy/buildozer/issues/595)
  - ERROR: Trying to release a package that starts with org.test; what can I do? [\#593](https://github.com/kivy/buildozer/issues/593)
  - App crash with python3 [\#590](https://github.com/kivy/buildozer/issues/590)
  - Problem running buildozer android debug first time [\#586](https://github.com/kivy/buildozer/issues/586)
  - buildozer download some content failed [\#585](https://github.com/kivy/buildozer/issues/585)
  - complie platform failed [\#580](https://github.com/kivy/buildozer/issues/580)
  - Module OS - buildozer.spec [\#579](https://github.com/kivy/buildozer/issues/579)
  - Buildozer doesn't compile app with cryptography requirement [\#578](https://github.com/kivy/buildozer/issues/578)
  - Buildozer x psycopg2 [\#575](https://github.com/kivy/buildozer/issues/575)
  - Problem with Android  API 23 [\#573](https://github.com/kivy/buildozer/issues/573)
  - App crashing on startup- ImportError: dlopen failed: \_imaging.so is 64-bit [\#568](https://github.com/kivy/buildozer/issues/568)
  - Buildozer issue with latest Xcode/macOS [\#566](https://github.com/kivy/buildozer/issues/566)
  - Requests SSL error [\#565](https://github.com/kivy/buildozer/issues/565)
  - buildozer failed for `Broken toolchain` when building numpy with python.host [\#564](https://github.com/kivy/buildozer/issues/564)
  - Encountered a bad program behavior [\#563](https://github.com/kivy/buildozer/issues/563)
  - error at using pycypto in the requirements [\#558](https://github.com/kivy/buildozer/issues/558)
  -  Websocket error: SSL not available. [\#552](https://github.com/kivy/buildozer/issues/552)
  - "crystax\_python does not exist" with python3crystax [\#551](https://github.com/kivy/buildozer/issues/551)
  - App crashes after build [\#549](https://github.com/kivy/buildozer/issues/549)
  - Installing CyLP on windows [\#548](https://github.com/kivy/buildozer/issues/548)
  - Service notification launch intent causes app crash [\#547](https://github.com/kivy/buildozer/issues/547)
  - Application crashes on start [\#546](https://github.com/kivy/buildozer/issues/546)
  - New android target is unable to produce a python 4 android service [\#543](https://github.com/kivy/buildozer/issues/543)
  - Buildozer Build Error [\#538](https://github.com/kivy/buildozer/issues/538)
  - \# Aidl not found, please install it. [\#537](https://github.com/kivy/buildozer/issues/537)
  - Error compiling Cython file on Ubuntu 14.0.4 with python 2.7 and 3.4/5  [\#536](https://github.com/kivy/buildozer/issues/536)
  - Failed compilation on ubuntu with python 2.7 configure: error: C compiler cannot create executables [\#535](https://github.com/kivy/buildozer/issues/535)
  - Remove app permissions added by default [\#534](https://github.com/kivy/buildozer/issues/534)
  - Buildozer error while packaging [\#531](https://github.com/kivy/buildozer/issues/531)
  - Buildozer failing to pack .apk  [\#530](https://github.com/kivy/buildozer/issues/530)
  - toolchain fails to recognize option --sdk [\#524](https://github.com/kivy/buildozer/issues/524)
  - \# Command failed: /usr/bin/python -m pythonforandroid.toolchain create --dist\_name=myapp --bootstrap=sdl2 --requirements=kivy --arch armeabi-v7a --copy-libs --color=always --storage-dir=/home/abhipso/thembapp/.buildozer/android/platform/build [\#521](https://github.com/kivy/buildozer/issues/521)
  - apk way too large - 800mb [\#520](https://github.com/kivy/buildozer/issues/520)
  - \[features\] Snapcraft implementation [\#514](https://github.com/kivy/buildozer/issues/514)
  - Possibility of building in kivy virtual machine all locally [\#513](https://github.com/kivy/buildozer/issues/513)
  - Python3\(crystax ndk\) builds broken [\#511](https://github.com/kivy/buildozer/issues/511)
  - build fails in virtualenv [\#509](https://github.com/kivy/buildozer/issues/509)
  - password for the virtual machine? [\#507](https://github.com/kivy/buildozer/issues/507)
  - Failed to build APK with python 3.6 : \[sh.CommandNotFound: python3.5\] [\#504](https://github.com/kivy/buildozer/issues/504)
  - Don't Unpacking opencv for armeabi-v7a [\#503](https://github.com/kivy/buildozer/issues/503)
  - Fails to package app on OSX Sierra 10.12.4 \(hdiutil: attach failed - image not recognized keka\) [\#494](https://github.com/kivy/buildozer/issues/494)
  - File missing building release APK  [\#469](https://github.com/kivy/buildozer/issues/469)
  - Building APK using Buildozer/Kivy [\#459](https://github.com/kivy/buildozer/issues/459)
  - buildozer failed to build apk: subprocess.CalledProcessError: Command '\['ant', 'debug'\]' returned non-zero exit status 1 [\#373](https://github.com/kivy/buildozer/issues/373)
  - AttributeError: 'Context' object has no attribute 'hostpython' in recipe [\#361](https://github.com/kivy/buildozer/issues/361)
  - Cant compile apk with sqlite3 \(using python3 crystax\) [\#359](https://github.com/kivy/buildozer/issues/359)
  **Merged pull requests:**
  - Imported os to fix ImportError [\#594](https://github.com/kivy/buildozer/pull/594) ([inclement](https://github.com/inclement))
  - add p4a.port config option; to allow specifiying webview port [\#588](https://github.com/kivy/buildozer/pull/588) ([replabrobin](https://github.com/replabrobin))
  - Fix Py3 utf-8 encode error [\#582](https://github.com/kivy/buildozer/pull/582) ([Zen-CODE](https://github.com/Zen-CODE))
  - Fixes `p4a.branch` comment [\#577](https://github.com/kivy/buildozer/pull/577) ([AndreMiras](https://github.com/AndreMiras))
  - Fix old toolchain index error [\#576](https://github.com/kivy/buildozer/pull/576) ([Zen-CODE](https://github.com/Zen-CODE))
  - Some fixes in old android target [\#572](https://github.com/kivy/buildozer/pull/572) ([rnixx](https://github.com/rnixx))
  - Removed --sdk argument for p4a [\#571](https://github.com/kivy/buildozer/pull/571) ([inclement](https://github.com/inclement))
  - Update specifications.rst [\#560](https://github.com/kivy/buildozer/pull/560) ([crajun](https://github.com/crajun))
  - Changed p4a directory name for current toolchain [\#527](https://github.com/kivy/buildozer/pull/527) ([inclement](https://github.com/inclement))
  - Update android.py, updated recreate the project.properties section [\#525](https://github.com/kivy/buildozer/pull/525) ([mokhoo](https://github.com/mokhoo))
  - Fix unicode coding error in android build target [\#518](https://github.com/kivy/buildozer/pull/518) ([jamalex](https://github.com/jamalex))
  - Add 404 status code handling on kivy download [\#508](https://github.com/kivy/buildozer/pull/508) ([SecretObsession](https://github.com/SecretObsession))
  - Use dmg instead of 7z [\#505](https://github.com/kivy/buildozer/pull/505) ([shivan1b](https://github.com/shivan1b))

  [Full Changelog](https://github.com/kivy/buildozer/compare/v0.32...0.33)
  **Fixed bugs:**
  - Installation of python for android is missing dependencies [\#501](https://github.com/kivy/buildozer/issues/501)
  **Closed issues:**
  - Break buildozer if the user try to release a version with "org.test" as a domain [\#500](https://github.com/kivy/buildozer/issues/500)
  - Migrate p4a options to its own subkey [\#499](https://github.com/kivy/buildozer/issues/499)
  - Use stable branch from python-for-android [\#498](https://github.com/kivy/buildozer/issues/498)
  - Migrate android to android\_new, and add android\_old [\#497](https://github.com/kivy/buildozer/issues/497)
  - sh.CommandNotFound: cmake [\#496](https://github.com/kivy/buildozer/issues/496)
  - Need Help Fatal signal 11 \(SIGSEGV\) at 0x00000000 \(code=1\), thread 4579 \(SDLThread\) [\#495](https://github.com/kivy/buildozer/issues/495)
  - Buildozer APK Cannot LAUNCH [\#493](https://github.com/kivy/buildozer/issues/493)
  - Buildozer Error [\#492](https://github.com/kivy/buildozer/issues/492)
  - android\_new target hardcodes python2 support for p4a [\#491](https://github.com/kivy/buildozer/issues/491)
  - android.arch ignored [\#488](https://github.com/kivy/buildozer/issues/488)
  - fail to install distribute [\#486](https://github.com/kivy/buildozer/issues/486)
  - sh.py raise a exception and fail to build [\#485](https://github.com/kivy/buildozer/issues/485)
  - some functionality lost when debugged with android\_new command [\#481](https://github.com/kivy/buildozer/issues/481)
  - Problem when deploy to android device [\#480](https://github.com/kivy/buildozer/issues/480)
  - dlopen failed: python2.7/site-packages/grpc/\_cython/cygrpc.so not 32-bit: 2 [\#479](https://github.com/kivy/buildozer/issues/479)
  - Cannot build APK with python3crystax and flask - conflicting dependencies [\#477](https://github.com/kivy/buildozer/issues/477)
  - Buildozer can't download NDK [\#474](https://github.com/kivy/buildozer/issues/474)
  - websocket-client "SSL not available." [\#473](https://github.com/kivy/buildozer/issues/473)
  - Using Cython with Kivy-iOS and Buildozer [\#472](https://github.com/kivy/buildozer/issues/472)
  - android.requirements does not merge with app.requirements [\#471](https://github.com/kivy/buildozer/issues/471)
  - buildozer fails to find Android SDK [\#468](https://github.com/kivy/buildozer/issues/468)
  - Crash of APK on start [\#467](https://github.com/kivy/buildozer/issues/467)
  - App not launching [\#461](https://github.com/kivy/buildozer/issues/461)
  - sqlite3 not working with android\_new [\#457](https://github.com/kivy/buildozer/issues/457)
  - how to set path for p4a [\#454](https://github.com/kivy/buildozer/issues/454)
  - TypeError: write\(\) argument 1 must be unicode, not str [\#452](https://github.com/kivy/buildozer/issues/452)
  - New toolchain - lxml included but not able to import [\#451](https://github.com/kivy/buildozer/issues/451)
  - sqlite3 with python2.7 and buildozer 0.33dev and new toolchain not working [\#450](https://github.com/kivy/buildozer/issues/450)
  - Update the Virtual Machine @ https://kivy.org/\#download [\#449](https://github.com/kivy/buildozer/issues/449)
  - “No module named setuptools” after installing setuptools [\#444](https://github.com/kivy/buildozer/issues/444)
  - how to add  --arch=armeabi-v7a to buildozer spec [\#443](https://github.com/kivy/buildozer/issues/443)
  - `buildozer android debug` fails with `jinja2.exceptions.TemplateNotFound: build.xml` [\#442](https://github.com/kivy/buildozer/issues/442)
  - buildozer.spec - requirements - kivy == master [\#440](https://github.com/kivy/buildozer/issues/440)
  - Buildozer can't find zlib [\#437](https://github.com/kivy/buildozer/issues/437)
  - Expose kivy download source? [\#435](https://github.com/kivy/buildozer/issues/435)
  - compiling crash [\#431](https://github.com/kivy/buildozer/issues/431)
  - Buildozer unable to make apk [\#430](https://github.com/kivy/buildozer/issues/430)
  - Crash APK on start [\#429](https://github.com/kivy/buildozer/issues/429)
  - More like a noob question [\#428](https://github.com/kivy/buildozer/issues/428)
  - keka failed to download \(OS X El Capitan\) [\#427](https://github.com/kivy/buildozer/issues/427)
  - Buildozer fails with pure python library pint [\#425](https://github.com/kivy/buildozer/issues/425)
  - Invalid argument to arm-linux-androideabi-gcc [\#424](https://github.com/kivy/buildozer/issues/424)
  - dlopen failed: \_clock.so is 64-bit instead of 32-bit [\#423](https://github.com/kivy/buildozer/issues/423)
  - how to solve the build error for "java"? [\#421](https://github.com/kivy/buildozer/issues/421)
  - Problems in patching files during building for android\_new [\#416](https://github.com/kivy/buildozer/issues/416)
  - Buildozer doesn't work with multiple first-class directories [\#415](https://github.com/kivy/buildozer/issues/415)
  - Buildozer suddenly not working, Linux, Python 2.7 \(build.xml: Failed to find version-tag string\) [\#414](https://github.com/kivy/buildozer/issues/414)
  - Buildozer not finding aidl [\#413](https://github.com/kivy/buildozer/issues/413)
  - buildozer android created apk fails if application source kept in multiple files [\#411](https://github.com/kivy/buildozer/issues/411)
  - Python 3 unicode print \(\) / copy to clipboard crashes app on Android [\#404](https://github.com/kivy/buildozer/issues/404)
  - checking whether the C compiler works... no [\#402](https://github.com/kivy/buildozer/issues/402)
  - configure: error: C compiler cannot create executables [\#395](https://github.com/kivy/buildozer/issues/395)
  -  ConfigParser.NoOptionError: No option 'p4a.local\_recipes' in section: 'app' \(android\_new\) [\#394](https://github.com/kivy/buildozer/issues/394)
  - Google has changed the type of archive the new NDK [\#393](https://github.com/kivy/buildozer/issues/393)
  - Why does buildozer build and pull python for android from old\_toolchain branch ? [\#389](https://github.com/kivy/buildozer/issues/389)
  - buildozer android\_new does not show the presplash [\#387](https://github.com/kivy/buildozer/issues/387)
  - Error when using buildozer android\_new with python3crystax [\#386](https://github.com/kivy/buildozer/issues/386)
  - Command failed: tar xzf android-sdk\_r20-linux.tgz [\#383](https://github.com/kivy/buildozer/issues/383)
  - When will you add requests lib to recipes? [\#382](https://github.com/kivy/buildozer/issues/382)
  - Presplash does not work with "android\_new" as target. [\#380](https://github.com/kivy/buildozer/issues/380)
  - Build for Android is Inconsistent with the Linux Version  [\#378](https://github.com/kivy/buildozer/issues/378)
  - \[question\] What are the supported OS ? [\#369](https://github.com/kivy/buildozer/issues/369)
  - AttributeError: 'AnsiCodes' object has no attribute 'LIGHTBLUE\_EX' [\#366](https://github.com/kivy/buildozer/issues/366)
  - splash image not hide after kivy loaded [\#364](https://github.com/kivy/buildozer/issues/364)
  - app always crash in android [\#360](https://github.com/kivy/buildozer/issues/360)
  - Plyer not available in buildozer android\_new [\#358](https://github.com/kivy/buildozer/issues/358)
  - Runs empty directory instead of binary \(android\_new\) [\#357](https://github.com/kivy/buildozer/issues/357)
  - App built with buildozer does not open on android [\#356](https://github.com/kivy/buildozer/issues/356)
  - Error when running buildozer android\_new debug [\#354](https://github.com/kivy/buildozer/issues/354)
  - ios list\_identities returns no identities [\#353](https://github.com/kivy/buildozer/issues/353)
  - buildozer not working [\#350](https://github.com/kivy/buildozer/issues/350)
  - error: Cython does not appear to be installed [\#349](https://github.com/kivy/buildozer/issues/349)
  - AttributeError: 'Context' object has no attribute 'hostpython' [\#347](https://github.com/kivy/buildozer/issues/347)
  - osx packaging results in venv error [\#345](https://github.com/kivy/buildozer/issues/345)
  - Requirement example requirements = kivy,requests fails [\#344](https://github.com/kivy/buildozer/issues/344)
  - Unavailability of important packages [\#343](https://github.com/kivy/buildozer/issues/343)
  - no way to change bootstrap [\#341](https://github.com/kivy/buildozer/issues/341)
  - Apk built with buildozer and multiple python file crashes [\#331](https://github.com/kivy/buildozer/issues/331)
  - Please upgrade the documentation [\#255](https://github.com/kivy/buildozer/issues/255)
  - Buildozer doesn't recognize "profile" option anymore [\#254](https://github.com/kivy/buildozer/issues/254)
  - Try to build with caldav requirement fails [\#248](https://github.com/kivy/buildozer/issues/248)
  - Trouble building for older android versions [\#240](https://github.com/kivy/buildozer/issues/240)
  - removing old apk file seems to fail before installing the new one [\#238](https://github.com/kivy/buildozer/issues/238)
  - Build fails due to python-distribute.org being down [\#200](https://github.com/kivy/buildozer/issues/200)
  - I am struggling with building an apk [\#153](https://github.com/kivy/buildozer/issues/153)
  - fresh android sdk install requires sdk update [\#151](https://github.com/kivy/buildozer/issues/151)
  - FYI - Ubuntu 14.04 Necessary Java Path Adjustment [\#141](https://github.com/kivy/buildozer/issues/141)
  - Cannot compile `iri2uri.py` in `httplib2` [\#135](https://github.com/kivy/buildozer/issues/135)
  - can't add django to requirement [\#130](https://github.com/kivy/buildozer/issues/130)
  - add an ssh target [\#1](https://github.com/kivy/buildozer/issues/1)
  **Merged pull requests:**
  - close \#452 as suggested by SpotlightKid [\#489](https://github.com/kivy/buildozer/pull/489) ([pat1](https://github.com/pat1))
  - Update README.rst [\#487](https://github.com/kivy/buildozer/pull/487) ([matletix](https://github.com/matletix))
  - Made buildozer run p4a using the current sys.executable [\#484](https://github.com/kivy/buildozer/pull/484) ([inclement](https://github.com/inclement))
  - ios: refactor deprecated PackageApplication command [\#483](https://github.com/kivy/buildozer/pull/483) ([kived](https://github.com/kived))
  - android\_new: change skip\_update to skip all updates [\#465](https://github.com/kivy/buildozer/pull/465) ([ZingBallyhoo](https://github.com/ZingBallyhoo))
  - android\_new: add "android.arch" config option [\#458](https://github.com/kivy/buildozer/pull/458) ([ZingBallyhoo](https://github.com/ZingBallyhoo))
  - Fix Py3 Incompatable str + bytes issue. [\#456](https://github.com/kivy/buildozer/pull/456) ([FeralBytes](https://github.com/FeralBytes))
  - spec file: dont use fullscreen by default [\#447](https://github.com/kivy/buildozer/pull/447) ([rafalo1333](https://github.com/rafalo1333))
  - spec file: use portrait orientation by default [\#446](https://github.com/kivy/buildozer/pull/446) ([rafalo1333](https://github.com/rafalo1333))
  - Add presplash background color support for android\_new toolchain [\#436](https://github.com/kivy/buildozer/pull/436) ([rnixx](https://github.com/rnixx))
  - Fix file\_matches to never return None [\#432](https://github.com/kivy/buildozer/pull/432) ([inclement](https://github.com/inclement))
  - Fixed 64 bit detection \(it failed under python3\) [\#409](https://github.com/kivy/buildozer/pull/409) ([inclement](https://github.com/inclement))
  - Added p4a.local\_recipes to default.spec and handled its absence [\#405](https://github.com/kivy/buildozer/pull/405) ([inclement](https://github.com/inclement))
  - Adding README.rst entries for how to use buildozer with python3 [\#403](https://github.com/kivy/buildozer/pull/403) ([andyDoucette](https://github.com/andyDoucette))
  - Update installation.rst \(Ubuntu16.04\) [\#399](https://github.com/kivy/buildozer/pull/399) ([FermiParadox](https://github.com/FermiParadox))
  - Update quickstart.rst [\#398](https://github.com/kivy/buildozer/pull/398) ([FermiParadox](https://github.com/FermiParadox))
  - Add p4a.local\_recipes to buildozer.spec to specify a local recipe dir… [\#385](https://github.com/kivy/buildozer/pull/385) ([cidermole](https://github.com/cidermole))
  - Always pass required args to p4a in android\_new [\#375](https://github.com/kivy/buildozer/pull/375) ([inclement](https://github.com/inclement))
  - Changed p4a command order to work with argparse [\#374](https://github.com/kivy/buildozer/pull/374) ([inclement](https://github.com/inclement))
  - buildozer has no attribute builddir [\#351](https://github.com/kivy/buildozer/pull/351) ([nilutz](https://github.com/nilutz))
  - throw error early if running in venv [\#346](https://github.com/kivy/buildozer/pull/346) ([kived](https://github.com/kived))
  - allow selection of bootstrap for android\_new [\#342](https://github.com/kivy/buildozer/pull/342) ([kived](https://github.com/kived))
  - bump version to 0.33dev [\#340](https://github.com/kivy/buildozer/pull/340) ([kived](https://github.com/kived))
  - trying to fix Kivy install for OS X builds [\#316](https://github.com/kivy/buildozer/pull/316) ([derPinguin](https://github.com/derPinguin))
  - update installation info [\#256](https://github.com/kivy/buildozer/pull/256) ([kiok46](https://github.com/kiok46))

  [Full Changelog](https://github.com/kivy/buildozer/compare/v0.31...v0.32)
  **Closed issues:**
  - When is the support coming to build windows .exe using buildozer? [\#333](https://github.com/kivy/buildozer/issues/333)
  - outdated openssl [\#332](https://github.com/kivy/buildozer/issues/332)
  - ios deployment fails \(buildozer --verbose ios debug deploy\) [\#330](https://github.com/kivy/buildozer/issues/330)
  - Can't add uuid pytz datetime time dbf to requirements [\#329](https://github.com/kivy/buildozer/issues/329)
  - AttributeError: 'NoneType' object has no attribute 'startswith' [\#326](https://github.com/kivy/buildozer/issues/326)
  - android.p4a\_dir use old toolchain? [\#325](https://github.com/kivy/buildozer/issues/325)
  - Switch from pygame to sdl2 easily [\#313](https://github.com/kivy/buildozer/issues/313)
  - IOError: \[Errno 2\] No such file or directory: "/home/andrew/CODE/Python/kivy-test-android/.buildozer/android/platform/python-for-android/dist/helloworld/bin/HelloWorld-'1.0'-debug.apk" [\#312](https://github.com/kivy/buildozer/issues/312)
  - Marshmallow sdk not found [\#310](https://github.com/kivy/buildozer/issues/310)
  - Install Buildozer: Finished processing dependencies for buildozer==0.32dev [\#304](https://github.com/kivy/buildozer/issues/304)
  - Bump default min SDK to 13: Fix crash on orientation change bug [\#302](https://github.com/kivy/buildozer/issues/302)
  - Disable "Open with file manager" when USB cable is connected in virtual machine [\#299](https://github.com/kivy/buildozer/issues/299)
  - Check presence of main.py during build time [\#298](https://github.com/kivy/buildozer/issues/298)
  - Py3: 'Buildozer' object has no attribute 'critical' [\#297](https://github.com/kivy/buildozer/issues/297)
  - The splash screen isn't automatically resized [\#292](https://github.com/kivy/buildozer/issues/292)
  - buildozer don't work if whitespace in path [\#287](https://github.com/kivy/buildozer/issues/287)
  - buildozer help fail [\#285](https://github.com/kivy/buildozer/issues/285)
  - Buildozer.spec 's title of your application can not be a Chinese character [\#284](https://github.com/kivy/buildozer/issues/284)
  - How to build apk with a cython file [\#283](https://github.com/kivy/buildozer/issues/283)
  - pip no longer has a --download-cache option, so downloading requirements has stopped working [\#279](https://github.com/kivy/buildozer/issues/279)
  - Cython2 not recognized in Fedora23 ? [\#278](https://github.com/kivy/buildozer/issues/278)
  - Buildozer VIrtual Machine Error: /jni/application/src/': Not a directory [\#277](https://github.com/kivy/buildozer/issues/277)
  - buildozer android debug deploy run hangs [\#275](https://github.com/kivy/buildozer/issues/275)
  - Is it possible to move the .buildozer folder somewhere else? [\#273](https://github.com/kivy/buildozer/issues/273)
  - configure: error: C compiler cannot create executables [\#272](https://github.com/kivy/buildozer/issues/272)
  - buildozer deploy error [\#271](https://github.com/kivy/buildozer/issues/271)
  - Cannot set Android API version [\#268](https://github.com/kivy/buildozer/issues/268)
  - Support python3 [\#265](https://github.com/kivy/buildozer/issues/265)
  - App crash when changing orientation [\#264](https://github.com/kivy/buildozer/issues/264)
  - Broken update command [\#261](https://github.com/kivy/buildozer/issues/261)
  - error while deploying android  [\#257](https://github.com/kivy/buildozer/issues/257)
  -  jnius/jnius.c: No such file or directory [\#251](https://github.com/kivy/buildozer/issues/251)
  - Implement source.include\_patterns [\#245](https://github.com/kivy/buildozer/issues/245)
  - Buildozer Python 3 Compatability Issues [\#175](https://github.com/kivy/buildozer/issues/175)
  **Merged pull requests:**
  - prepare for release 0.32 [\#339](https://github.com/kivy/buildozer/pull/339) ([kived](https://github.com/kived))
  - use p4a --color argument [\#338](https://github.com/kivy/buildozer/pull/338) ([kived](https://github.com/kived))
  - fix changing android branch [\#337](https://github.com/kivy/buildozer/pull/337) ([kived](https://github.com/kived))
  - use cp -a not cp -r [\#336](https://github.com/kivy/buildozer/pull/336) ([akshayaurora](https://github.com/akshayaurora))
  - improve build directory handling, add values to default.spec [\#335](https://github.com/kivy/buildozer/pull/335) ([kived](https://github.com/kived))
  - fix incorrect api/minapi values [\#334](https://github.com/kivy/buildozer/pull/334) ([kived](https://github.com/kived))
  - fix bad placement of expanduser\(\) [\#328](https://github.com/kivy/buildozer/pull/328) ([kived](https://github.com/kived))
  - use custom source dirs for android\_new [\#324](https://github.com/kivy/buildozer/pull/324) ([kived](https://github.com/kived))
  - use p4a revamp --storage-dir option [\#323](https://github.com/kivy/buildozer/pull/323) ([kived](https://github.com/kived))
  - add adb and p4a commands to android/android\_new [\#322](https://github.com/kivy/buildozer/pull/322) ([kived](https://github.com/kived))
  - fix py3 str has no decode issue [\#321](https://github.com/kivy/buildozer/pull/321) ([kived](https://github.com/kived))
  - let p4a revamp handle pure python requirements [\#320](https://github.com/kivy/buildozer/pull/320) ([kived](https://github.com/kived))
  - fix icons for ios target [\#319](https://github.com/kivy/buildozer/pull/319) ([kived](https://github.com/kived))
  - support using custom kivy-ios source dir [\#318](https://github.com/kivy/buildozer/pull/318) ([kived](https://github.com/kived))
  - disable bitcode for ios target [\#317](https://github.com/kivy/buildozer/pull/317) ([kived](https://github.com/kived))
  - Add window option for target android\_new [\#315](https://github.com/kivy/buildozer/pull/315) ([pythonic64](https://github.com/pythonic64))
  - fix usage exception [\#311](https://github.com/kivy/buildozer/pull/311) ([kived](https://github.com/kived))
  - add python3 compatibility to verbose output for android build \(\#221\) [\#303](https://github.com/kivy/buildozer/pull/303) ([pohmelie](https://github.com/pohmelie))
  - Allow app title to contain Unicode characters [\#293](https://github.com/kivy/buildozer/pull/293) ([udiboy1209](https://github.com/udiboy1209))
  - use ios-deploy version 1.7.0 [\#291](https://github.com/kivy/buildozer/pull/291) ([cbenhagen](https://github.com/cbenhagen))
  - Add spec option to skip automated update of installed android package [\#290](https://github.com/kivy/buildozer/pull/290) ([pastcompute](https://github.com/pastcompute))
  - Fix issues with android.p4a\_dir spec file property [\#288](https://github.com/kivy/buildozer/pull/288) ([pastcompute](https://github.com/pastcompute))
  - Remove pip --download-cache flag \(fixes \#279\) [\#282](https://github.com/kivy/buildozer/pull/282) ([cbenhagen](https://github.com/cbenhagen))
  - put bin/ in builddir if specified in buildozer.spec [\#274](https://github.com/kivy/buildozer/pull/274) ([jabbalaci](https://github.com/jabbalaci))
  - Implement source.include\_patterns [\#269](https://github.com/kivy/buildozer/pull/269) ([udiboy1209](https://github.com/udiboy1209))
  - Updated Licence Year [\#266](https://github.com/kivy/buildozer/pull/266) ([CodeMaxx](https://github.com/CodeMaxx))
  - fix android.branch option [\#250](https://github.com/kivy/buildozer/pull/250) ([tshirtman](https://github.com/tshirtman))

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.30...v0.31)
  **Closed issues:**
  - Logo aspect ratio problem [\#263](https://github.com/kivy/buildozer/issues/263)
  - Is there a way to seperate building environment and building apk? [\#259](https://github.com/kivy/buildozer/issues/259)
  - buildozer must be ran with sudo [\#258](https://github.com/kivy/buildozer/issues/258)
  - Invalid NDK platform [\#253](https://github.com/kivy/buildozer/issues/253)
  - Q:compile error [\#252](https://github.com/kivy/buildozer/issues/252)
  - Please update SDK url [\#249](https://github.com/kivy/buildozer/issues/249)
  - java.lang.NoSuchMethodException: isSupportChangeBadgeByCallMethod \[\] [\#243](https://github.com/kivy/buildozer/issues/243)
  - AttributeError: 'NoneType' object has no attribute 'group' [\#242](https://github.com/kivy/buildozer/issues/242)
  - Error: Flag '-a' is not valid for 'list sdk'. [\#241](https://github.com/kivy/buildozer/issues/241)
  - Provide custom path for android SDK to buildozer [\#237](https://github.com/kivy/buildozer/issues/237)
  - kivy examples seem to need \_\_version\_\_ [\#236](https://github.com/kivy/buildozer/issues/236)
  - pyliblo [\#235](https://github.com/kivy/buildozer/issues/235)
  **Merged pull requests:**
  - OS X Target for Bulldozer [\#262](https://github.com/kivy/buildozer/pull/262) ([akshayaurora](https://github.com/akshayaurora))
  - kill easy\_install [\#244](https://github.com/kivy/buildozer/pull/244) ([techtonik](https://github.com/techtonik))
  - install requires virtualenv [\#239](https://github.com/kivy/buildozer/pull/239) ([cbenhagen](https://github.com/cbenhagen))
  - Fixed Space in app path issue. Fixes \#13 [\#231](https://github.com/kivy/buildozer/pull/231) ([dvenkatsagar](https://github.com/dvenkatsagar))

  [Full Changelog](https://github.com/kivy/buildozer/compare/v0.29...0.30)
  **Closed issues:**
  - subprocess.CalledProcessError: Command '\['ant', 'debug'\]' returned non-zero exit status 1 [\#234](https://github.com/kivy/buildozer/issues/234)
  - Cannot use numpy with buildozer [\#232](https://github.com/kivy/buildozer/issues/232)
  - Problem downloading ndk version \> r9d [\#229](https://github.com/kivy/buildozer/issues/229)
  - Error likely to missing 32 bit packages [\#228](https://github.com/kivy/buildozer/issues/228)
  - Bulldozer can't download new ndks 10x... [\#227](https://github.com/kivy/buildozer/issues/227)
  - Error while trying to install Buildozer in Windows  10 [\#225](https://github.com/kivy/buildozer/issues/225)
  - Making reverse engineering .apk harder [\#224](https://github.com/kivy/buildozer/issues/224)
  - Buildozer wont compile libraries with cython 0.23 or 0.22 [\#223](https://github.com/kivy/buildozer/issues/223)
  - These are the errors I get when I try to package the file...  [\#222](https://github.com/kivy/buildozer/issues/222)
  - Buildozer installs platform despite setting ndk & sdk paths [\#220](https://github.com/kivy/buildozer/issues/220)
  - Can't find config.ini buildozer solution [\#219](https://github.com/kivy/buildozer/issues/219)
  - Ant error: SDK does not have any Build Tools installed [\#218](https://github.com/kivy/buildozer/issues/218)
  - Buildozer fails because of build-tools package name [\#217](https://github.com/kivy/buildozer/issues/217)
  - ImportError: No module named pygments [\#216](https://github.com/kivy/buildozer/issues/216)
  - buildozer android camera [\#215](https://github.com/kivy/buildozer/issues/215)
  - Error when first time Building apk   [\#212](https://github.com/kivy/buildozer/issues/212)
  - cannot import name spawnu [\#211](https://github.com/kivy/buildozer/issues/211)
  - Buildozer recompiles p4a when a custom for of plyer is used. [\#210](https://github.com/kivy/buildozer/issues/210)
  - Add android.ant\_path to default.spec [\#209](https://github.com/kivy/buildozer/issues/209)
  - Problems with adding wav, ogg and ttf files [\#208](https://github.com/kivy/buildozer/issues/208)
  - cython issue with kivy and buildozer development versions [\#207](https://github.com/kivy/buildozer/issues/207)
  - subprocess.CalledProcessError: Command '\['ant', 'debug'\]' returned non-zero exit status 1 [\#205](https://github.com/kivy/buildozer/issues/205)
  - Buildozer isn't building if I try to include some requirements [\#195](https://github.com/kivy/buildozer/issues/195)
  - Cant build APK for android.api = 10 [\#193](https://github.com/kivy/buildozer/issues/193)
  - Doc error: "buildozer clean" does not exist [\#189](https://github.com/kivy/buildozer/issues/189)
  - Can't install pillow requirement [\#188](https://github.com/kivy/buildozer/issues/188)
  - \#error from Cython compilation [\#150](https://github.com/kivy/buildozer/issues/150)
  - Space in app path path name causes ./distribute -m kivy to fail [\#13](https://github.com/kivy/buildozer/issues/13)
  **Merged pull requests:**
  - Changed p4a download to pull old\_toolchain branch [\#233](https://github.com/kivy/buildozer/pull/233) ([inclement](https://github.com/inclement))
  - Added support for downloading and handling android ndk r10 versions. Fixes \#229 and \#227 [\#230](https://github.com/kivy/buildozer/pull/230) ([dvenkatsagar](https://github.com/dvenkatsagar))
  - make \_read\_version\_subdir return parse\('0'\) instead of \[0\], otherwise… [\#206](https://github.com/kivy/buildozer/pull/206) ([denys-duchier](https://github.com/denys-duchier))

  [Full Changelog](https://github.com/kivy/buildozer/compare/v0.27...v0.29)
  **Fixed bugs:**
  - version problem with split [\#201](https://github.com/kivy/buildozer/issues/201)
  **Closed issues:**
  - buildozer android release hangs at "compile platform" [\#199](https://github.com/kivy/buildozer/issues/199)
  - Hang up at Fetching https://dl-ssl.google.com/android/repository/addons\_list-2.xml [\#198](https://github.com/kivy/buildozer/issues/198)
  - Python 3 Import error on urllib.request. [\#187](https://github.com/kivy/buildozer/issues/187)
  **Merged pull requests:**
  - needs testing, should fix \#201 using pypa implementation of PEP440 [\#202](https://github.com/kivy/buildozer/pull/202) ([tshirtman](https://github.com/tshirtman))
  - check for complete dist instead of dist dir [\#197](https://github.com/kivy/buildozer/pull/197) ([kived](https://github.com/kived))
  - fix ios targets xcode command [\#194](https://github.com/kivy/buildozer/pull/194) ([cbenhagen](https://github.com/cbenhagen))
  - Windows fix [\#192](https://github.com/kivy/buildozer/pull/192) ([jaynakus](https://github.com/jaynakus))
  - some python 3 compatibility [\#191](https://github.com/kivy/buildozer/pull/191) ([pohmelie](https://github.com/pohmelie))
  - allow custom source folders in buildozer.spec [\#185](https://github.com/kivy/buildozer/pull/185) ([kived](https://github.com/kived))
  - use upstream pexpect instead of shipping it [\#176](https://github.com/kivy/buildozer/pull/176) ([tshirtman](https://github.com/tshirtman))

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.26...v0.27)
  **Closed issues:**
  - subprocess.CalledProcessError: Command '\['ant', 'debug'\]' returned non-zero exit status 1 [\#183](https://github.com/kivy/buildozer/issues/183)
  - Buildozer get error during packaging for android [\#182](https://github.com/kivy/buildozer/issues/182)
  - Bug with android.p4a\_whitelist in buildozer.spec file. [\#180](https://github.com/kivy/buildozer/issues/180)
  - You need an option for git https [\#178](https://github.com/kivy/buildozer/issues/178)
  - Buildozer .apk file creation issue [\#177](https://github.com/kivy/buildozer/issues/177)
  - sudo buildozer Fails [\#174](https://github.com/kivy/buildozer/issues/174)
  - Buildozer iOS Apps Won't Open [\#171](https://github.com/kivy/buildozer/issues/171)
  - always show python-for-android output on failure [\#170](https://github.com/kivy/buildozer/issues/170)
  - Buildozer tries to install android sdk every time you try to compile an android application. [\#169](https://github.com/kivy/buildozer/issues/169)
  - automatic installation of android sdk fails due to unicode parsing error [\#166](https://github.com/kivy/buildozer/issues/166)
  - Move from fruitstrap to ios-deploy [\#107](https://github.com/kivy/buildozer/issues/107)
  - buildozer ios debug build fails on MacOS Mavericks [\#83](https://github.com/kivy/buildozer/issues/83)
  - gdb doesn't work anymore with Xcode 5 [\#54](https://github.com/kivy/buildozer/issues/54)
  - buildozer ios debug deploy fails on running fruitstrap at 70% with error AMDeviceInstallApplication failed [\#9](https://github.com/kivy/buildozer/issues/9)
  **Merged pull requests:**
  - fix black text in log [\#184](https://github.com/kivy/buildozer/pull/184) ([kived](https://github.com/kived))

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.25...0.26)
  **Merged pull requests:**
  - ensure whitelist always has a list [\#172](https://github.com/kivy/buildozer/pull/172) ([kived](https://github.com/kived))

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.24...0.25)

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.23...0.24)

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.22...0.23)

  [Full Changelog](https://github.com/kivy/buildozer/compare/v0.21...0.22)

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.19...v0.21)
  **Merged pull requests:**
  - removed some indentation in example info, added to actual comments inste... [\#168](https://github.com/kivy/buildozer/pull/168) ([chozabu](https://github.com/chozabu))

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.18...0.19)

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.17...0.18)
  **Closed issues:**
  - buildozer can't download python libs due to ssl certificate check fail [\#164](https://github.com/kivy/buildozer/issues/164)
  - Buildozer feature redirect .buildozer folder outside your project [\#162](https://github.com/kivy/buildozer/issues/162)
  - Buildozer fails on clean build [\#161](https://github.com/kivy/buildozer/issues/161)
  - pjnius build fails on Arch Linux when requiring netifaces [\#159](https://github.com/kivy/buildozer/issues/159)
  - error compiling with buildozer [\#158](https://github.com/kivy/buildozer/issues/158)
  - C compiler cannot create executables [\#152](https://github.com/kivy/buildozer/issues/152)
  - Requirements needing commas instead of spaces \(like p4a\) is non-obvious [\#147](https://github.com/kivy/buildozer/issues/147)
  **Merged pull requests:**
  - fix build error and allow redirecting build folder [\#163](https://github.com/kivy/buildozer/pull/163) ([olymk2](https://github.com/olymk2))
  - Remove duplicated checkbin\(\). [\#160](https://github.com/kivy/buildozer/pull/160) ([attakei](https://github.com/attakei))
  - added note about buildozer not having anything to do with buildozer.io [\#157](https://github.com/kivy/buildozer/pull/157) ([nickyspag](https://github.com/nickyspag))
  - Fixed logic to compare with “non installed” with “minor version upped"  [\#156](https://github.com/kivy/buildozer/pull/156) ([attakei](https://github.com/attakei))
  - Set "UTF-8" to java file.encoding for android update command explicitly [\#155](https://github.com/kivy/buildozer/pull/155) ([attakei](https://github.com/attakei))
  - added example to default.spec requirements showing comma seperation [\#148](https://github.com/kivy/buildozer/pull/148) ([chozabu](https://github.com/chozabu))

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.16...0.17)

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.15...0.16)
  **Closed issues:**
  - `install\_android\_packages` is too slow to run in china. [\#143](https://github.com/kivy/buildozer/issues/143)
  - Buildozer setup.py fails with Module ImportError [\#140](https://github.com/kivy/buildozer/issues/140)
  - buildozer downloads Android SDK 20 during every call to deploy app [\#137](https://github.com/kivy/buildozer/issues/137)
  - Buildozerv0.15: lib/pexpect.py is not Python 3 compatable [\#131](https://github.com/kivy/buildozer/issues/131)
  - Keep on gettting version error [\#129](https://github.com/kivy/buildozer/issues/129)
  - arm-linux-androideabi-gcc: fatal error: no input files [\#127](https://github.com/kivy/buildozer/issues/127)
  - I am new to python and buildozer, using buildozer to compile my first android app [\#125](https://github.com/kivy/buildozer/issues/125)
  - I am new to python and buildozer, using buildozer to compile my first android app, [\#124](https://github.com/kivy/buildozer/issues/124)
  - Command Failed [\#122](https://github.com/kivy/buildozer/issues/122)
  - Exception: Cython cythonnot found [\#120](https://github.com/kivy/buildozer/issues/120)
  - Enable use for packaging OSX apps [\#114](https://github.com/kivy/buildozer/issues/114)
  - Errors on 'buildozer android debug deploy run' [\#113](https://github.com/kivy/buildozer/issues/113)
  - Fail to download Android SDK in Linux and Python 3.3 [\#110](https://github.com/kivy/buildozer/issues/110)
  - Unable to add "requirements" buildozer.spec [\#109](https://github.com/kivy/buildozer/issues/109)
  - TypeError: 'encoding' is an invalid keyword argument for this function [\#106](https://github.com/kivy/buildozer/issues/106)
  - Custom activity [\#33](https://github.com/kivy/buildozer/issues/33)
  - Buildozer fails to install on Windows [\#27](https://github.com/kivy/buildozer/issues/27)
  - support blacklist changes in python-for-android [\#17](https://github.com/kivy/buildozer/issues/17)
  **Merged pull requests:**
  - Test in file\_rename if target directory exists. [\#144](https://github.com/kivy/buildozer/pull/144) ([droundy](https://github.com/droundy))
  - Fix for android.library\_references path issue [\#139](https://github.com/kivy/buildozer/pull/139) ([excessivedemon](https://github.com/excessivedemon))
  - Specs doc revision [\#134](https://github.com/kivy/buildozer/pull/134) ([dessant](https://github.com/dessant))
  - Make pexpect.py Python 3 Compatable [\#133](https://github.com/kivy/buildozer/pull/133) ([FeralBytes](https://github.com/FeralBytes))
  - Added check for buildozer running as root [\#128](https://github.com/kivy/buildozer/pull/128) ([inclement](https://github.com/inclement))
  - Add link to the right android python project [\#119](https://github.com/kivy/buildozer/pull/119) ([techtonik](https://github.com/techtonik))
  - Execute buildozer as "python -m buildozer" [\#118](https://github.com/kivy/buildozer/pull/118) ([techtonik](https://github.com/techtonik))
  - Fix \#115 [\#116](https://github.com/kivy/buildozer/pull/116) ([manuelbua](https://github.com/manuelbua))

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.14...0.15)
  **Closed issues:**
  - Do not set permissions \(ug+x\) if already set [\#115](https://github.com/kivy/buildozer/issues/115)
  - UTF-8 Encoding Error, \_\_init.py\_\_ 0.15-dev [\#108](https://github.com/kivy/buildozer/issues/108)
  - incorrect minapi android manifest value [\#93](https://github.com/kivy/buildozer/issues/93)
  - libpython wait4 linker error [\#92](https://github.com/kivy/buildozer/issues/92)
  - fcntl import error [\#88](https://github.com/kivy/buildozer/issues/88)
  - No Python 3 Support [\#84](https://github.com/kivy/buildozer/issues/84)
  - Uncaught exception on missing cython [\#80](https://github.com/kivy/buildozer/issues/80)
  - Where are custom python-for-android recipes meant to go? [\#76](https://github.com/kivy/buildozer/issues/76)
  - Error compiling Cython file: [\#73](https://github.com/kivy/buildozer/issues/73)
  - Zlib still giving issues on Ubuntu 13.04 [\#72](https://github.com/kivy/buildozer/issues/72)
  - DBAccessError permission denied in app [\#71](https://github.com/kivy/buildozer/issues/71)
  - Selective update of depencencies [\#70](https://github.com/kivy/buildozer/issues/70)
  - 32-bit SDK installed on 64-bit system [\#69](https://github.com/kivy/buildozer/issues/69)
  - wrong version regex [\#67](https://github.com/kivy/buildozer/issues/67)
  - sdk update fails on license question [\#66](https://github.com/kivy/buildozer/issues/66)
  - x86 and armeabi-v7 libs [\#63](https://github.com/kivy/buildozer/issues/63)
  - Missing dependenced during compilation [\#59](https://github.com/kivy/buildozer/issues/59)
  - Bad magic number when reading generated state.db file in VMware Ubuntu guest [\#42](https://github.com/kivy/buildozer/issues/42)
  - x86 apk support on buildozer [\#11](https://github.com/kivy/buildozer/issues/11)
  **Merged pull requests:**
  - Ignore UTF-8 decoding errors. Closes \#108 [\#112](https://github.com/kivy/buildozer/pull/112) ([cbenhagen](https://github.com/cbenhagen))
  - chmod ug+x android\_cmd [\#111](https://github.com/kivy/buildozer/pull/111) ([cbenhagen](https://github.com/cbenhagen))
  - p4a whitelist [\#98](https://github.com/kivy/buildozer/pull/98) ([b3ni](https://github.com/b3ni))

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.13...0.14)

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.12...0.13)

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.11...0.12)

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.10...0.11)
  **Closed issues:**
  - Text provider [\#105](https://github.com/kivy/buildozer/issues/105)
  - No installation instructions [\#104](https://github.com/kivy/buildozer/issues/104)

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.9...0.10)
  **Closed issues:**
  - Android SDK installation not working anymore [\#101](https://github.com/kivy/buildozer/issues/101)
  - Buildozer almost completes and then errors saying file exists [\#99](https://github.com/kivy/buildozer/issues/99)
  - Java compilernot found [\#95](https://github.com/kivy/buildozer/issues/95)
  - Absolute path problem [\#91](https://github.com/kivy/buildozer/issues/91)
  - Error when running: buildozer --verbose android debug deploy run [\#89](https://github.com/kivy/buildozer/issues/89)
  - buildozer.spec passing requirements  [\#87](https://github.com/kivy/buildozer/issues/87)
  - debugging "Command failed" is tedious [\#86](https://github.com/kivy/buildozer/issues/86)
  - No module named sqlite3  [\#56](https://github.com/kivy/buildozer/issues/56)
  - Garden packages are unsupported [\#39](https://github.com/kivy/buildozer/issues/39)
  - python-for-android repo is hard-coded in buildozer [\#37](https://github.com/kivy/buildozer/issues/37)
  - virtualenv-2.7 hardcoded [\#22](https://github.com/kivy/buildozer/issues/22)
  - Buildozer error no build.py [\#21](https://github.com/kivy/buildozer/issues/21)
  **Merged pull requests:**
  - Fixed garden install for newer virtualenvs [\#100](https://github.com/kivy/buildozer/pull/100) ([brousch](https://github.com/brousch))
  - fix ln if soft link existed [\#96](https://github.com/kivy/buildozer/pull/96) ([pengjia](https://github.com/pengjia))
  - Added realpath modifier to p4a\_dir token [\#94](https://github.com/kivy/buildozer/pull/94) ([inclement](https://github.com/inclement))
  - Documented env var checking and fixed a bug in the p4a\_dir check [\#85](https://github.com/kivy/buildozer/pull/85) ([inclement](https://github.com/inclement))
  - Delete dist dir if running distribute.sh [\#81](https://github.com/kivy/buildozer/pull/81) ([inclement](https://github.com/inclement))
  - implement the `clean` command. [\#79](https://github.com/kivy/buildozer/pull/79) ([akshayaurora](https://github.com/akshayaurora))
  - Garden requirements [\#41](https://github.com/kivy/buildozer/pull/41) ([Ian-Foote](https://github.com/Ian-Foote))

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.8...0.9)
  **Closed issues:**
  -  Command failed: ./distribute.sh -m "kivy" error message [\#77](https://github.com/kivy/buildozer/issues/77)
  - Error importing \_scproxy [\#68](https://github.com/kivy/buildozer/issues/68)
  - Package names beginning with a number cause an obscure crash with an unclear error message [\#64](https://github.com/kivy/buildozer/issues/64)
  - failing to compile sample android app with buildozer  [\#61](https://github.com/kivy/buildozer/issues/61)
  - Default android.sdk setting causes sensor rotate on Android to fail [\#32](https://github.com/kivy/buildozer/issues/32)
  - Add wakelock to options [\#31](https://github.com/kivy/buildozer/issues/31)
  **Merged pull requests:**
  - Updated Android NDK default version to 9c [\#82](https://github.com/kivy/buildozer/pull/82) ([brousch](https://github.com/brousch))
  - Add 'bin' to suggested default directory excludes [\#78](https://github.com/kivy/buildozer/pull/78) ([joseph-jnl](https://github.com/joseph-jnl))
  - Clarified wording in README [\#75](https://github.com/kivy/buildozer/pull/75) ([inclement](https://github.com/inclement))
  - Check for package name starting with number [\#65](https://github.com/kivy/buildozer/pull/65) ([inclement](https://github.com/inclement))
  - \[FIX\] Detect 32/64 bit on Windows, to download Android NDK [\#62](https://github.com/kivy/buildozer/pull/62) ([alanjds](https://github.com/alanjds))
  - Added --private and --dir Android storage option [\#58](https://github.com/kivy/buildozer/pull/58) ([brousch](https://github.com/brousch))
  - Added a 'serve' command to serve bin/ over SimpleHTTPServer [\#49](https://github.com/kivy/buildozer/pull/49) ([brousch](https://github.com/brousch))

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.7...0.8)
  **Fixed bugs:**
  - \_patch\_application\_sources breaks from \_\_future\_\_ imports [\#35](https://github.com/kivy/buildozer/issues/35)
  **Closed issues:**
  - unresolved domain: pygame.org [\#34](https://github.com/kivy/buildozer/issues/34)
  **Merged pull requests:**
  - Add ability to choose python-for-android directory [\#60](https://github.com/kivy/buildozer/pull/60) ([inclement](https://github.com/inclement))
  - Update default Android NDK to r9 [\#53](https://github.com/kivy/buildozer/pull/53) ([brousch](https://github.com/brousch))
  - Added android.wakelock option [\#51](https://github.com/kivy/buildozer/pull/51) ([brousch](https://github.com/brousch))
  - Fixed another 'Unknown' typo [\#48](https://github.com/kivy/buildozer/pull/48) ([brousch](https://github.com/brousch))
  - Fixed spelling of 'Unknown' [\#47](https://github.com/kivy/buildozer/pull/47) ([brousch](https://github.com/brousch))
  - Fixed missing 'r' on ANDROIDNDKVER environment export [\#46](https://github.com/kivy/buildozer/pull/46) ([brousch](https://github.com/brousch))
  - make sure android.branch works with fresh clone [\#44](https://github.com/kivy/buildozer/pull/44) ([akshayaurora](https://github.com/akshayaurora))
  - Fixed a typo in setdefault description [\#40](https://github.com/kivy/buildozer/pull/40) ([nithin-bose](https://github.com/nithin-bose))
  - Package paths [\#38](https://github.com/kivy/buildozer/pull/38) ([Ian-Foote](https://github.com/Ian-Foote))
  - add applibs in path for service too [\#26](https://github.com/kivy/buildozer/pull/26) ([tshirtman](https://github.com/tshirtman))
  - fix distribute install before installing every dependencies, fix a few i... [\#25](https://github.com/kivy/buildozer/pull/25) ([tshirtman](https://github.com/tshirtman))

  [Full Changelog](https://github.com/kivy/buildozer/compare/0.2...0.7)
  **Closed issues:**
  - Builds fail on Ubuntu 13.04 with zlib.h missing [\#18](https://github.com/kivy/buildozer/issues/18)
  - "buildozer android update" fails with an error about android.branch [\#12](https://github.com/kivy/buildozer/issues/12)
  - Problem Ubuntu compilation on network drive [\#10](https://github.com/kivy/buildozer/issues/10)
  - \[app\] "android.permission" contain an unknown permission  [\#6](https://github.com/kivy/buildozer/issues/6)
  - buildozer on ios fails at: Command failed: tools/build-all.sh [\#5](https://github.com/kivy/buildozer/issues/5)
  - Automatically installing Android SDK fails in file\_rename called from \_install\_android\_sdk [\#4](https://github.com/kivy/buildozer/issues/4)
  - buildozer does not support ~ in android.sdk\_path [\#3](https://github.com/kivy/buildozer/issues/3)
  **Merged pull requests:**
  - Fix typo 'versionning' -\> 'versioning'. [\#29](https://github.com/kivy/buildozer/pull/29) ([Ian-Foote](https://github.com/Ian-Foote))
  - Fixed hard-coded Android API 14 [\#23](https://github.com/kivy/buildozer/pull/23) ([brousch](https://github.com/brousch))
  - Fixed \#18: Builds fail on Ubuntu 13.04 with zlib.h missing. [\#20](https://github.com/kivy/buildozer/pull/20) ([roskakori](https://github.com/roskakori))
  - Europython sprint updates [\#19](https://github.com/kivy/buildozer/pull/19) ([fabiankreutz](https://github.com/fabiankreutz))
  - copy the generated apk back from remote [\#16](https://github.com/kivy/buildozer/pull/16) ([akshayaurora](https://github.com/akshayaurora))
  - android.add\_jars config option [\#15](https://github.com/kivy/buildozer/pull/15) ([bob-the-hamster](https://github.com/bob-the-hamster))
  - Ouya support [\#14](https://github.com/kivy/buildozer/pull/14) ([bob-the-hamster](https://github.com/bob-the-hamster))

  \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*


