# Python

### Problem:

You want to download a URL to a file using the requests python library, but you want to skip the download if it doesn’t exist

### Solution:

Use the following functions:

import requests
import os.path

"""
"""
with open(filename, 'wb') as fout:
response = requests.get(url, stream=True)
response.raise_for_status()
# Write response data to file
for block in response.iter_content(4096):
fout.write(block)

"""

Returns
-------
"""
if not os.path.exists(filename):
return True
return False


Posted by Uli Köhler in Python

## Computing bounding box for a list of coordinates in Python

### Problem:

You have a list of X/Y coordinates, for example:

coords = [(6.74219, -53.57835),
(6.74952, -53.57241),
(6.75652, -53.56289),
(6.74756, -53.56598),
(6.73462, -53.57518)]

For these coordinates you want to compute the minimum bounding box.

Posted by Uli Köhler in Geoinformatics, Python

## Removing spans/divs with style attributes from HTML

Occasionally I have to clean up some HTML code – mostly because parts of it were pasted into a CMS like WordPress from rich text editor like Word.

I’ve noticed that the formatting I want to remove is mostly based on span and div elements with a style attribute. Therefore, I’ve written a simple Python script based on BeautifulSoup4 which will replace certain tags with their contents if they have a style attribute. While in some cases some other formatting might be destroyed by such a script, it is very useful for some recurring usecases.

Posted by Uli Köhler in Python

## Computing the LP2980 adjust resistor using Python

The LP2980ADJ is a 50 mA LDO that be configured for an output voltage from 1.23V to 15V using a pair of resistors.

The datasheet lists a formula for the output voltage, however no easy-to-use customizable software is provided that can be used to directly compute the correct resistor in a reproducible way. Continue reading →

Posted by Uli Köhler in Electronics, Python

The following html code can be used to create an html form that allows uploading multiple files at once:

<form enctype="multipart/form-data" method="POST" action="upload.py">
<table style="width: 100%">
<tr>
<td style="text-align: right"><input type="file" multiple="" id="files" name="files"></td>
</tr>
<tr>
<td></td>
</tr>
</table>
</form>
Posted by Yann Spöri in Python

## Normalizing electronics engineering value notations using Python

In electronics engineering there is a wide variety of notations for values that need to be recognized by intuitive user interfaces. Examples include:

• 1fA
• 0.1A
• 0.00001
• 1e-6
• 4,5nA
• 4,500.123 A
• 4A5
• 4k0 A

The wide variety of options, including thousands separators, comma-as-decimal-separator and suffix-as-decimal-separator, optional whitespace and scientific notations makes it difficult to normalize values without using specialized libraries. Continue reading →

Posted by Uli Köhler in Electronics, Python

## Calculating the NCP380 Ilim resistor using Python

#### Problem

You want to calculate the correct value for the Ilim resistor for the NCP380 current limiter IC with a custom current limit. Continue reading →

Posted by Uli Köhler in Electronics, Python

## Finding the nearest E96 resistor value in Python

### Problem

You want to find the E24/E48/E96 resistor value that is closest to a given exact value programmatically using python. Continue reading →

Posted by Uli Köhler in Electronics, Python

## Engineering for the super-lazy: Solving equations without activating your brain

### Preface

In electronics engineering, from time to time you have to use standard formulas to characterize your circuits. To what extent you need to calculate all parameters most often depends on the requirement.

For example, consider the formula for the -3dB cutoff frequency of a 1st order RC lowpass filter:

$$f_c=\frac{1}{2\pi RC}$$

Although this equation is fairly simple and most people won’t have any problem solving it for any particular variable in a few seconds, it can serve as a basic example on how to solve an equation symbolically.

One of the easiest ways of performing this task is to use SymPy, a Python library for symbolic mathematics.

Posted by Uli Köhler in Python

## Parsing the MeSH ASCII format in Python

Similar to our previously published UniPruot parser, MeSH provides an ASCII format that can easily be parsed using Python.

Just like the UniProt parser, this function yields MeSH entries represented by dictionaries. Example code is included at the bottom of the file.

Posted by Uli Köhler in Bioinformatics, Python

## Fixing ImportError: cannot import name ‘urlencode’ in Python3

### Problem:

Your python 3.x interpreter prints the error message

ImportError: cannot import name 'urlencode'
Posted by Uli Köhler in Python

## Parsing OpenGeoDB PLZ code TSV files using Python

### Problem:

You want to parse the OpenGeoDB Postleitzahl (german ZIP code) TSV files available from here.

Posted by Uli Köhler in Python

## Using python requests over Tor

### Problem:

You want to use the python requests library over a Tor connection using the Tor builtin SOCKS proxy.

Posted by Uli Köhler in Python

## Fixing bad blocks on HDDs using fixhdd.py

### Problem:

You hard drive or SMART tool reports errors when reading specific blocks similar to this message:

[3142.686141] end_request: I/O error, dev sda, sector 31415926

No matter how often you read the block, the hard drive still returns an error and does not reallocate the block.

Posted by Uli Köhler in Linux, Python

## Listing files inside a Torrent

Torrent files are essentially containers that store information about a set of files to be downloaded via P2P.

Unfortunately it is not easily possible to simply list the files that are stored in a torrent. Using our python script torrentls.py you can easily accomplish that task.

Posted by Uli Köhler in Python

## Reading the UniProt text format in Python

Just like many other databases in computational biology, the downloads for the popular UniProt database are available in a custom text format which is documented on ExPASy.

While it is certainly not difficult writing a generic parser and one can use BioPython, I believe it is often easier to use a tested parser that only uses standard libraries.

Posted by Uli Köhler in Bioinformatics, Python

## How to resolve ‘Can’t perform this operation for unregistered loader type’

### Problem

Recently I started to add unit tests using setuptools to one of my packages.

In order to do this, I added a test directory containing MyUnitTest.py. setup.py was properly setup using the

test_suite="tests"

option.

However, when running

python setup.py test

I got this error message:

running test
running egg_info
writing MyPackage.egg-info/PKG-INFO
writing top-level names to MyPackage.egg-info/top_level.txt
writing manifest file 'MyPackage.egg-info/SOURCES.txt'
running build_ext
Traceback (most recent call last):
File "setup.py", line 29, in <module>
'Topic :: Scientific/Engineering :: Information Analysis'
File "/usr/lib/python3.4/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/lib/python3.4/distutils/dist.py", line 955, in run_commands
self.run_command(cmd)
File "/usr/lib/python3.4/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/usr/lib/python3/dist-packages/setuptools/command/test.py", line 135, in run
self.with_project_on_sys_path(self.run_tests)
File "/usr/lib/python3/dist-packages/setuptools/command/test.py", line 116, in with_project_on_sys_path
func()
File "/usr/lib/python3/dist-packages/setuptools/command/test.py", line 160, in run_tests
File "/usr/lib/python3.4/unittest/main.py", line 92, in __init__
self.parseArgs(argv)
File "/usr/lib/python3.4/unittest/main.py", line 139, in parseArgs
self.createTests()
File "/usr/lib/python3.4/unittest/main.py", line 146, in createTests
self.module)
suites = [self.loadTestsFromName(name, module) for name in names]
File "/usr/lib/python3.4/unittest/loader.py", line 146, in <listcomp>
suites = [self.loadTestsFromName(name, module) for name in names]
File "/usr/lib/python3/dist-packages/setuptools/command/test.py", line 26, in loadTestsFromModule
for file in resource_listdir(module.__name__, ''):
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 954, in resource_listdir
resource_name
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 1378, in resource_listdir
return self._listdir(self._fn(self.module_path,resource_name))
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 1415, in _listdir
"Can't perform this operation for unregistered loader type"
NotImplementedError: Can't perform this operation for unregistered loader type

Posted by Uli Köhler in Python

## Reading matblas substitution matrices in Python

### Problem:

You want to read substitution matrices in the matblas format, e.g. this BLOSUM62 from NCBI into a numpy ndarray.

Posted by Uli Köhler in Python

## Python: Get countries by continent from Wikipedia

### Problem:

You need a list of countries, ordered by continent, under a liberal license.

Posted by Uli Köhler in Python

## Converting a Pandas DataFrame to a customized LaTeX tabular

### Problem:

You need to convert pandas DataFrame to a LaTeX table. You want to include the pandas column and row labels in the table.

Posted by Uli Köhler in pandas, Python