Edição de um aplicativo Streamlit implantado

Após implementar um app Streamlit no Snowsight, é possível editar o código do app e as dependências usando o Snowsight ou comandos SQL. A maneira como suas alterações entram em vigor depende do ambiente de tempo de execução e de como o app foi criado.

Nota

Aplicativos criados com o parâmetro ROOT_LOCATION (aplicativos herdados) têm recursos de edição limitados e devem ser convertidos para usar o parâmetro FROM para obter funcionalidade completa. Para obter mais informações, consulte Explicação dos diferentes tipos de objetos Streamlit.

Esta página aborda apenas aplicativos criados com o parâmetro FROM.

Os ambientes de tempo de execução de contêiner e warehouse estão sujeitos a possíveis condições de corrida quando várias pessoas editam o mesmo app simultaneamente. Consulte a seção Considerações sobre edição colaborativa abaixo para obter detalhes e práticas recomendadas.

Métodos de edição

É possível editar seu app por meio de um editor no navegador no Snowsight ou fazendo upload de arquivos usando comandos SQL.

  1. Faça login no Snowsight.

  2. No menu de navegação, selecione Projects » Streamlit e, em seguida, selecione sua tabela dinâmica.

  3. No canto superior direito, selecione Edit.

  4. No explorador de arquivos, selecione ou crie um novo arquivo para editar:

    • Para editar um arquivo existente, selecione-o no explorador de arquivos.

    • Para criar um novo arquivo, selecione + (Adicionar) » Create new file, digite o nome do arquivo e selecione Create. É possível incluir subdiretórios no nome do arquivo, como subdir/new_file.py.

    • Para carregar um arquivo da sua máquina local, selecione + (Adicionar) » Upload file, escolha o arquivo a ser carregado, modifique o nome do arquivo e o caminho, se necessário, e selecione Upload.

  5. Faça suas alterações no painel do editor.

    As alterações são salvas automaticamente no local de origem do aplicativo após alguns segundos.

  6. Opcional: Selecione Run.

    Se não quiser esperar alguns segundos para que as alterações sejam salvas, é possível selecionar Run para copiar as alterações imediatamente.

  7. Se seu app usar um tempo de execução de warehouse, os visualizadores deverão selecionar Run para copiar as alterações na instância do app. Se seu app usar um tempo de execução de contêiner, as alterações serão salvas diretamente na origem do app ativo e ficarão visíveis para todos os visualizadores na próxima vez em que eles interagirem com o app.

Diferenças de comportamento no tempo de execução

A maneira como suas edições entram em vigor depende do tipo de tempo de execução do seu aplicativo.

Tempo de execução de contêiner

Quando você edita um aplicativo de tempo de execução de contêiner:

  • As alterações na origem do seu aplicativo vão diretamente para o aplicativo ativo.

  • Os visualizadores atuais veem as atualizações na próxima vez em que interagirem com o app e acionarem uma nova execução. (A opção de configuração server.runOnSave do Streamlit está desativada por padrão).

  • O botão Run está disponível para visualizadores, mas não é necessário para propagar alterações em uma sessão atual de exibição ou edição.

  • Todos os usuários veem a mesma instância de app com alterações imediatas.

Embora o app ao vivo seja compartilhado entre os espectadores, a visualização do código-fonte nos editores do Snowsight não é. Portanto, os apps em tempos de execução de contêineres ainda estão sujeitos a condições de corrida quando várias pessoas editam o app simultaneamente. Consulte a seção Considerações sobre edição colaborativa abaixo para obter detalhes e práticas recomendadas.

Tempo de execução de warehouse

Quando você edita um aplicativo de tempo de execução de warehouse:

  • O código-fonte do app é copiado quando a instância de cada visualizador é iniciada.

  • Os visualizadores atuais devem selecionar Run para copiar atualizações feitas na fonte durante sua sessão.

  • Até mesmo a pessoa que faz as edições deve clicar em Run para ver as alterações no painel de versão preliminar.

  • Cada visualizador recebe sua própria instância isolada do app.

Considerações sobre edição colaborativa

Quando várias pessoas editam o mesmo aplicativo, esteja ciente de possíveis conflitos. Tanto os apps de tempo de execução de contêiner quanto de warehouse estão sujeitos à seguinte condição de corrida se mais de uma pessoa editar o app simultaneamente.

Condições de corrida

O editor do Snowsight funciona da seguinte forma:

  • O código-fonte atual é copiado para o painel do editor quando você o abre ou usa o navegador de arquivos para abrir um arquivo.

  • Se você estiver visualizando um arquivo no painel do editor, ele não será atualizado automaticamente quando as alterações forem feitas por outras pessoas.

  • Se você fizer alterações no painel do editor, o salvamento automático substituirá quaisquer alterações feitas por outras pessoas depois que você abrir o editor.

  • Não há mesclagem automática de edições conflitantes.

Por exemplo, a seguinte sequência pode levar a alterações perdidas:

  1. O desenvolvedor A abre o editor às 2:00 PM.

  2. O desenvolvedor B faz e salva alterações às 2:15 PM.

  3. do desenvolvedor A salva as alterações às 2:30 PM.

  4. As alterações do desenvolvedor B são perdidas (substituídas pelo desenvolvedor A).

Práticas recomendadas para edição de equipe

Para evitar conflitos ao trabalhar com uma equipe:

  • Comunique-se com os membros de sua equipe antes de fazer edições.

  • Mantenha seus arquivos de origem em um repositório Git e implante seu código a partir daí.

  • Use aplicativos de desenvolvimento separados para testar alterações.

  • Recarregue o editor do Snowsight para obter a versão mais recente imediatamente antes de fazer alterações.