Search

20 April, 2021

Jupyter notebook and IPython first steps.

In this post, I am going to go through some initial steps for people who are looking to try out Jupyter Notebooks (JN). We will see how to:

    • Use a venv in our Jupyter notebook to work on projects.
    • Shortcuts for working with JN.
    • Basic ways of using new python shortcuts provided in IPython.

Que.  How to install IPython inside a virtualenv and use it?

Ans: These are a few ways to launch the python installed in your venv

- venv/bin/ipython

- python -m IPython

24 February, 2021

Mongo DB first take

Testing new waters. My first NoSQL db was InfluxDB. It is a Time based No SQL type db. 

This time I wanted to taste the all famous MongoDB. I want to keep the basics handy. So I write as I learn.

Basic Commands ☝


Launch MongoDB:

~ mongo



See existing databases

show dbs

03 August, 2020

Grafana with Influxdb and python client

Recently I came across this tool called Grafana. Its a tool that you can use to show graphs and statistics of all kinds. The most popular combination for setup , is Grafana with influxdb as a database. 

I am sharing my setup steps, and supporting python scripts that can be used to generate information and write back to the database. And finally we get to see some nice graphs.

Note: I am using a Mac with Catalina OS 10.15. Python 3.6+.

Installation Plan:


1. Influxdb
2. Grafana
3. influxdb client module for Python.

29 July, 2020

Docker : Most useful commands

Docker has a lot to talk about. But I am going to list a few commands here that come handy while working with it on a daily basis. We will list them in a sequence that looks like a tutorial.


1. List all docker containers


docker container ls

2. List all images


docker image ls

docker images

3. Spawn & run from an image, a new container.


docker run image_name COMMAND

12 June, 2019

Python unittest and exceptions: Writing custom exceptions, and catching them.


Generally in unit test, we match the responses with an expected value . But there are cases , where calling a method or passing an incorrect value (or type of value) may raise an exception . This exception might me a custom exception . Or the message or error code might me specific to the situation. So how to write test for the same.

1. Calling a method with incorrect type , raises an exception.


class MyTest(unittest.TestCase):
    def test_exception(self):
         with self.assertRaises(xmlrpclib.Fault) as cm:
            self.Proxy.setParameter('name', 1234)
            self.fail('Expected exception of type xmlrpc.Fault')


31 May, 2019

Send email with excel file as attachment

We want to send a mail which will have some content in it's body and an attachment of excel file. The excel file is not physically saved on anywhere. We have just created it, filled it and and now , we want to send it in an email.

So what we really have as an attachment is a workbook object.

Let's get started.


    from io import BytesIO
    output = BytesIO()
    attachment.save(output)
    msg = EmailMultiAlternatives(subject, "", from_email, to_email, cc=cc, bcc=bcc)
    msg.attach('my_file.xlsx', output.getvalue(), 'application/vnd.ms-excel')
    msg.attach_alternative(content, "text/html")
    try:
        msg.send()
        success = True
    except socket.gaierror:
        success = False
    return success



10 May, 2019

Nose test command line tricks

If you are using nose plugin to run your tests , there are some handy tricks that we can use while running tests.

Run test and generate a XML report:


nosetests --with-xunit test_folder --xunit-file=nosetests_test_results.xml