How to Handle a Deque in Python

Deques are a great way to handle memory efficient appends to a list-like object, it is a special module that allows you to handle list items in a more appropriate way. Create a deque To create a list simply import the deque module from collections library and call deque(_items_) on a variable. >>> from collections import deque >>> dq = deque('123') >>> dq deque(['1', '2', '3']) >>> type(dq) <class 'collections.deque'> Or if you wish to create an empty deque....

April 14, 2018 · 3 min · Franccesco Orozco

Create a Basic API With Flask

What is Flask? Flask is a microframework for Python based on Werkzeug, Jinja 2 and good intentions. Flask is a microframework for Python that you can use to quickly create API’s and websites. It’s a great and easy to use platform, let’s create a simple API, but first we will go through the basics. Flask Installation We’re going to install Flask in our virtual environment to later import it into our code....

April 7, 2018 · 4 min · Franccesco Orozco

Create and Object With Namedtuple

Namedtuples are a subclass of typename which allow us to create objects (or classes) with tuple-like attributes, it’s easy to create a class with immutable attributes with this library. Creating an object To create a namedtuple we only need the name of the class first and then the attribute list. >>> from collections import namedtuple >>> Person = namedtuple('Person', 'name job_position sex married') >>> john = Person('john', 'developer', 'male', False) >>> john Person(name='john', job_position='developer', sex='male', married=False) Be aware that you can pass an argument list as a string ('att1 att2'), as an actual list (['att1', 'att2']) or a string with comma separated values ('att1, att2')....

April 7, 2018 · 2 min · Franccesco Orozco

Return a List of Files and Folders With Glob in Python

There’s a great library added in Python 3.5 that lets you return a list of filenames and folders called glob, here’s how to use it. Return files and folders in current folder. >>> glob('**') ['scaffolds', 'node_modules', 'yarn.lock', '_config.yml', 'source', 'db.json', 'themes', 'package.json', 'package-lock.json'] Return files and folders recursively >>> glob('**', recursive=True) ['scaffolds', 'scaffolds/post.md', 'scaffolds/page.md', 'scaffolds/draft.md', 'node_modules', '...'] Return only specific type of files recursively >>> glob('*.json', recursive=True) ['db.json', 'package.json', 'package-lock.json'] non-recursively >>> glob('**/*....

March 29, 2018 · 1 min · Franccesco Orozco

Unit Testing Basics With Python

I encourage developers to see the value of unit testing; I urge them to get into the habit of writing structured tests alongside their code. — CodingHorror I was reading about Unit Testing and found a blog entry in CodingHorror called I Pity The Fool Who Doesn’t Write Unit Tests, and guess what, he’s right. Sadly, I’ve encountered a lot of people who doesn’t write tests for their code, and have a CI System (Travis, Jenkins, Gitlab, etc....

March 27, 2018 · 6 min · Franccesco Orozco

Classes and Special Methods in Python

These are my study notes on Classes and special methods. As always, if something is wrong then you can always correct me, it would help me and everybody else. Class ‘Employee’ example This is the example class that we’re going to use, a class Employee which we will inherit from to create more classes like Manager and Supervisor: class Employee(object): """Class simulating an Employee with basic attributes.""" total_employees = 0 def __init__(self, name, rate, position): self....

March 18, 2018 · 6 min · Franccesco Orozco

Figure Out a Download File-Size With Requests

To get the filesize of a download is really easy, servers usually provide a Content-Length in its header response that let us know how heavy is the content we are requesting. We can find out this content length opening our shell and requesting a HEAD response in linux: As you can see, our content length is display in bytes. Let’s try to get this response with Requests Display Content-Length with Requests Let’s use an image from httpbin....

March 9, 2018 · 2 min · Franccesco Orozco

How to Securely Store Sensitive Configuration With Dotenv

TL;DR: Environment Variables API keys are one example of sensitive information that should remain secret, the problem is that we need to use them in our code to access third-party services like Twitter, Github, DigitalOcean and so on, so how do we manage to use those API keys without hard-coding them into the source code? The twelve-factor app stores config in environment variables (often shortened to env vars or env). Env vars are easy to change between deploys without changing any code; unlike config files, there is little chance of them being checked into the code repo accidentally; and unlike custom config files, or other config mechanisms such as Java System Properties, they are a language- and OS-agnostic standard....

February 28, 2018 · 4 min · Franccesco Orozco

Manage Python Versions With Pyenv

Pyenv is an excellent tool to have in your tool-set, it manages Python versions much like rbenv for Ruby, in fact it was forked from it. pyenv lets you easily switch between multiple versions of Python. It’s simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well. Installation The automatic installer provided in GitHub will take care of everything so you don’t have to worry about configuring anything....

February 27, 2018 · 2 min · Franccesco Orozco

HTTP Requests in Python

Before starting lets try HTTP requests with httpbin.org to test multiple HTTP methods with requests and JSON data. We’ll see how to extract data from a JSON-encoded response (e.g. {‘key’: ‘value’}) Install requests library With pipenv (recommended): pipenv install requests With pip: pip install requests GET request Check our IP address: import requests # get request, response is JSON-encoded myIP = requests.get('https://httpbin.org/ip') # extract value from JSON key 'origin' # {'origin': '38....

February 20, 2018 · 2 min · Franccesco Orozco