Eu tenho um org-mode
arquivo contendo uma tabela de dados e dois blocos de código Python para extrair diferentes resumos dele.
Eu gostaria de compartilhar algumas constantes e funções comuns entre esses dois blocos de código. Idealmente, eu faria isso fatorando o código comum em um bloco de código separado, que seria automaticamente incluído e avaliado sempre que qualquer um dos outros dois blocos fosse avaliado. Na sintaxe inventada, seria algo como o seguinte:
#+NAME: init_block
#+BEGIN_SRC python
... common constants and functions here ...
#+END_SRC
#+NAME: summary_1
#+BEGIN_SRC python :prepend init_block
... data-processing code depending on init code goes here ...
#+END_SRC
#+NAME: summary_2
#+BEGIN_SRC python :prepend init_block
... more processing which also depends on init code ...
#+END_SRC
Suponho que poderia usar a :session
opção, mas preferiria não, por dois motivos. Primeiro, ele configura um sistema com estado, em vez de um que roda do zero toda vez que uso C-c C-c
em um bloco de código. Segundo, e relacionado, agora tenho que me lembrar de avaliar manualmente o código de inicialização comum cada vez que abro o arquivo: não posso apenas atualizar a tabela de dados, ir a um dos blocos de resumo e pressionar C-c C-c
para atualizá-lo.
Existe uma boa maneira de fazer isso?