Um notebook Python reativo que é reproduzível, compatível com git e implantável como scripts ou aplicativos.
Documentos · Discord · Exemplos
Inglês |简体中文
marimo é um notebook Python reativo: execute uma célula ou interaja com um elemento de UI, e marimo executa automaticamente células dependentes (ou marca-as como obsoletas), mantendo o código e as saídas consistentes. Os notebooks marimo são armazenados como Python puro, executáveis como scripts e implantáveis como aplicativos.
Destaques .
jupyter
, streamlit
, jupytext
, ipywidgets
, papermill
e muito mais.py
pip install marimo & & marimo tutorial intro
Experimente o marimo em nosso playground online, que funciona inteiramente no navegador!
Vá para o início rápido para obter uma introdução à nossa CLI.
marimo garante que o código do seu notebook, as saídas e o estado do programa sejam consistentes. Isso resolve muitos problemas associados a notebooks tradicionais como o Jupyter.
Um ambiente de programação reativo. Execute uma célula e o Marimo reage executando automaticamente as células que fazem referência às suas variáveis, eliminando a tarefa propensa a erros de reexecutar manualmente as células. Exclua uma célula e o Marimo limpará suas variáveis da memória do programa, eliminando o estado oculto.
Compatível com notebooks caros. marimo permite configurar o tempo de execução para ser lento, marcando as células afetadas como obsoletas em vez de executá-las automaticamente. Isto lhe dá garantias sobre o estado do programa, evitando a execução acidental de células caras.
Elementos de UI sincronizados. Interaja com elementos da UI, como controles deslizantes, menus suspensos, transformadores de dataframe e interfaces de bate-papo, e as células que os utilizam serão automaticamente executadas novamente com seus valores mais recentes.
Quadros de dados interativos. Percorra, pesquise, filtre e classifique milhões de linhas com extrema rapidez, sem necessidade de código.
Tempo de execução de alto desempenho. marimo executa apenas as células que precisam ser executadas analisando estaticamente seu código.
Markdown dinâmico e SQL. Use markdown para contar histórias dinâmicas que dependem de dados Python. Ou crie consultas SQL que dependem de valores Python e execute-as em dataframes, bancos de dados, CSVs, Planilhas Google ou qualquer outra coisa usando nosso mecanismo SQL integrado, que retorna o resultado como um dataframe Python.
Seus notebooks ainda são Python puro, mesmo que usem markdown ou SQL.
Ordem de execução determinística. Os notebooks são executados em uma ordem determinística, com base em referências de variáveis em vez de posições de células na página. Organize seus cadernos de acordo com as histórias que você gostaria de contar.
Gerenciamento de pacotes integrado. marimo possui suporte integrado para todos os principais gerenciadores de pacotes, permitindo que você instale pacotes na importação. marimo pode até serializar requisitos de pacote em arquivos de notebook e instalá-los automaticamente em sandboxes venv isoladas.
Baterias incluídas. marimo vem com GitHub Copilot, assistentes de IA, formatação de código Ruff, exportação de HTML, preenchimento rápido de código, uma extensão de código VS, um visualizador de dataframe interativo e muitos outros recursos de qualidade de vida.
Instalação. Em um terminal, execute
pip install marimo # or conda install -c conda-forge marimo
marimo tutorial intro
Crie cadernos.
Crie ou edite cadernos com
marimo edit
Execute aplicativos. Execute seu notebook como um aplicativo web, com código Python oculto e não editável:
marimo run your_notebook.py
Execute como scripts. Execute um notebook como um script na linha de comando:
python your_notebook.py
Converta automaticamente notebooks Jupyter. Converta automaticamente notebooks Jupyter em notebooks Marimo com a CLI
marimo convert your_notebook.ipynb > your_notebook.py
ou use nossa interface web.
Tutoriais. Listar todos os tutoriais:
marimo tutorial --help
Veja o FAQ em nossos documentos.
marimo é fácil de começar, com muito espaço para usuários avançados. Por exemplo, aqui está um visualizador de incorporação feito em marimo (vídeo):
Confira nossos documentos, a pasta examples/
e nossa galeria para saber mais.
Tutorial | Entradas | Parcelas | Disposição |
Agradecemos todas as contribuições! Você não precisa ser um especialista para ajudar. Consulte CONTRIBUTING.md para obter mais detalhes sobre como começar.
Questões? Entre em contato conosco no Discord.
Estamos construindo uma comunidade. Venha passear conosco!
marimo é uma reinvenção do notebook Python como um programa Python reproduzível, interativo e compartilhável, em vez de um bloco de notas JSON sujeito a erros.
Acreditamos que as ferramentas que utilizamos moldam a forma como pensamos – ferramentas melhores, para mentes melhores. Com o marimo, esperamos fornecer à comunidade Python um ambiente de programação melhor para pesquisar e comunicar; experimentar o código e compartilhá-lo; aprender ciência da computação e ensiná-la.
Nossa inspiração vem de muitos lugares e projetos, especialmente Pluto.jl, ObservableHQ e ensaios de Bret Victor. marimo faz parte de um movimento maior em direção à programação de fluxo de dados reativo. Desde IPyflow, streamlit, TensorFlow, PyTorch, JAX e React, as ideias de programação funcional, declarativa e reativa estão transformando uma ampla gama de ferramentas para melhor.