Other articles

  1. Presentation slides with Jupyter Notebook

    I presented at the PyCon 2016 Education Summit on "Doing Math with Python" day before yesterday and a lightning talk yesterday. This is the first time, I prepared a slide deck using Jupyter Notebook + Reveal.js. I was pleased with the content creation process and the end result. So, here ...

    read more
  2. Replacing boto S3 mocks using moto in Python

    Let's say you have some Python application code which connects to Amazon S3 which retrieves the keys in a bucket. Very likely, the application would be using boto and the code would like this:

    import boto
    def get_s3_conn():
        return boto.connect_s3('<aws-access-key', '<aws-secret-key>')
    def list_keys():
        s3_conn = get_s3_conn()
        b = s3_conn ...
    read more
  3. Mock objects and non-existent attributes/methods in Python

    Updated: Fixed typo in the last paragraph.

    Today, I was curious to see this behavior of Mock() objects when using mock:

    >>> from mock import Mock
    >>> m = Mock()
    >>> m.i_dont_exist
    <Mock name='mock.i_dont_exist' id='139841609578768'>
    >>> m.i_dont_exist()
    <Mock name='mock.i_dont_exist()' id='139841609106896'>

    The above is expected, since I have ...

    read more
  4. A virtualenv first approach to Python projects

    I have until the last few months (of my ~4 years of working with Python) always worked without virtualenv for all my Python projects. Why? I think I found the whole idea of having to do the following two steps before I work on something cumbersome:

    • Remember the exact virtualenv ...
    read more
  5. PYTHONHASHSEED and your tests

    Recently at work, I wanted to test a string which was being created by the urllib.urlencode() function. My first attempt was simple - test my expected string with that being created by the function above using unittest's assertEquals() function. It passed all the times I ran the tests before ...

    read more