<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Python on Miro&#39;s World</title>
    <link>https://miroadamy.com/tags/python/</link>
    <description>Recent content in Python on Miro&#39;s World</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>© 2026 Miro Adamy</copyright>
    <lastBuildDate>Thu, 18 Feb 2021 13:00:00 +0800</lastBuildDate><atom:link href="https://miroadamy.com/tags/python/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>How to monitor Bitbucket user and group permissions with API</title>
      <link>https://miroadamy.com/posts/2021-02-18-bitbucket-user-groups/</link>
      <pubDate>Thu, 18 Feb 2021 13:00:00 +0800</pubDate>
      
      <guid>https://miroadamy.com/posts/2021-02-18-bitbucket-user-groups/</guid>
      <description>&lt;h1 class=&#34;relative group&#34;&gt;How to manage users and groups in Bitbucket&#xA;    &lt;div id=&#34;how-to-manage-users-and-groups-in-bitbucket&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#how-to-manage-users-and-groups-in-bitbucket&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h1&gt;&#xA;&lt;p&gt;&lt;strong&gt;Use case&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;I want to maintain users and groups and their access to repositories in an organization in Bitbucket.&#xA;To make sure I do not miss newly changed admin access, I want to use the Bitbucket API to retrieve the list of permissions on repository basis and on user/group bases.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>How to mirror Github and Bitbucket repositories</title>
      <link>https://miroadamy.com/posts/2021-02-17-mirroring-repos/</link>
      <pubDate>Wed, 17 Feb 2021 13:00:00 +0800</pubDate>
      
      <guid>https://miroadamy.com/posts/2021-02-17-mirroring-repos/</guid>
      <description>&lt;h1 class=&#34;relative group&#34;&gt;Mirroring large number of GitHub or Bitbucket repositories&#xA;    &lt;div id=&#34;mirroring-large-number-of-github-or-bitbucket-repositories&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#mirroring-large-number-of-github-or-bitbucket-repositories&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h1&gt;&#xA;&lt;p&gt;&lt;strong&gt;Use case&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;p&gt;I want to create local clone of a large number of repositories from an organization in GitHub / Bitbucket.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Assumptions&#xA;    &lt;div id=&#34;assumptions&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#assumptions&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;user has SSH key registered with the GH / BB - can clone using ssh protocol&lt;/li&gt;&#xA;&lt;li&gt;user has successfully cloned at least one repo from command line before (the /etc/hosts contains host entries for BB and GH)&lt;/li&gt;&#xA;&lt;li&gt;user has modern version of Python 3 installed (3.6 or better)&lt;/li&gt;&#xA;&lt;li&gt;user has local installation of a reasonably modern Git&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Steps&#xA;    &lt;div id=&#34;steps&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#steps&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;First I use the &lt;code&gt;./bb-repo-links.sh&lt;/code&gt; and &lt;code&gt;./gh-repo-links.sh&lt;/code&gt; to generate list of repositories.&#xA;See these blog articles: &lt;a href=&#34;https://miroadamy.com/posts/2021-02-15-bitbucket-list-repos/&#34; &gt;How to list repositories in Bitbucket&lt;/a&gt; and &lt;a href=&#34;https://miroadamy.com/posts/2021-02-16-github-list-repos/&#34; &gt;How to list repositories in github&lt;/a&gt;&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Jupyter notebook with Bash kernel</title>
      <link>https://miroadamy.com/posts/2019-03-16-jupyter-bash/</link>
      <pubDate>Sat, 16 Mar 2019 11:22:48 +0800</pubDate>
      
      <guid>https://miroadamy.com/posts/2019-03-16-jupyter-bash/</guid>
      <description>&lt;h2 class=&#34;relative group&#34;&gt;Adding Bash to Tensorflow notebook&#xA;    &lt;div id=&#34;adding-bash-to-tensorflow-notebook&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#adding-bash-to-tensorflow-notebook&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;I commented out PHP and C++ stuff that I do not really need:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight-wrapper&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;FROM jupyter/tensorflow-notebook&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;USER root&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# install dependencies &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RUN apt-get update &amp;amp;&amp;amp; apt-get install -yq --no-install-recommends \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    php-cli php-dev php-pear \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    pkg-config \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;amp;&amp;amp; apt-get clean&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    rm -rf /var/lib/apt/lists/*&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# install zeromq and zmq php extension &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#RUN wget https://github.com/zeromq/zeromq4-1/releases/download/v4.1.5/zeromq-4.1.5.tar.gz &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    tar -xvf zeromq-4.1.5.tar.gz &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    cd zeromq-* &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    ./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    printf &amp;#34;\n&amp;#34; | pecl install zmq-beta &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    echo &amp;#34;extension=zmq.so&amp;#34; &amp;gt; /etc/php/7.0/cli/conf.d/zmq.ini&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# install PHP composer&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#RUN wget https://getcomposer.org/installer -O composer-setup.php &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    wget https://litipk.github.io/Jupyter-PHP-Installer/dist/jupyter-php-installer.phar &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    php composer-setup.php &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    php ./jupyter-php-installer.phar -vvv install &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    mv composer.phar /usr/local/bin/composer &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    rm -rf zeromq-* jupyter-php* &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    rm composer-setup.php&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# install ijavascript&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#RUN apt-get install -yq nodejs npm libzmq3-dev node-gyp &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    npm install -g ijavascript &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    ijs --ijs-install=global&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#RUN cd .. &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    apt-get install -yq --no-install-recommends cmake &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    wget https://raw.githubusercontent.com/root-mirror/cling/master/tools/packaging/cpt.py &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    chmod +x cpt.py &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    ./cpt.py --check-requirements &amp;amp;&amp;amp; ./cpt.py --create-dev-env Debug --with-workdir=./cling/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#RUN cd .. &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    wget https://root.cern.ch/download/cling/cling_2017-09-15_ubuntu16.tar.bz2 &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    tar -xvjf cling_2017-09-15_ubuntu16.tar.bz2 &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    rm cling_*.tar.bz2 &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    mv cling_* cling&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#RUN cd .. &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    ln -s $(pwd)/cling/bin/* /usr/bin/ &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    cd cling/share/cling/Jupyter/kernel &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    pip install -e . &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    jupyter-kernelspec install cling-cpp17 &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    jupyter-kernelspec install cling-cpp14 &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#    jupyter-kernelspec install cling-cpp11&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RUN chown -R $NB_USER /home/$NB_USER &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    rm -rf /home/$NB_USER/.local/share/jupyter&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# install java jre for h2o&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RUN apt-get install -yq openjdk-8-jre&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# Reset user from jupyter/base-notebook&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;USER $NB_USER&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# install jupyter-bash&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RUN /opt/conda/bin/pip install --no-cache-dir bash_kernel&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RUN /opt/conda/bin/python -m bash_kernel.install&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# install h2o&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RUN /opt/conda/bin/pip install --no-cache-dir --upgrade h2o &amp;amp;&amp;amp; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    /opt/conda/bin/pip install --no-cache-dir --upgrade pandas&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# disable authentication&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RUN mkdir -p .jupyter&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RUN echo &amp;#34;&amp;#34; &amp;gt;&amp;gt; ~/.jupyter/jupyter_notebook_config.py&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RUN echo &amp;#34;c.NotebookApp.token = &amp;#39;&amp;#39;&amp;#34; &amp;gt;&amp;gt; ~/.jupyter/jupyter_notebook_config.py&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;p&gt;Source: &lt;a href=&#34;https://bitbucket.org/snippets/klassify/Ee9Myk/jupyter-notebook-with-bash-kernel&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;https://bitbucket.org/snippets/klassify/Ee9Myk/jupyter-notebook-with-bash-kernel&lt;/a&gt;&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
