Create Multiple Directories With Makedirs in Python

You don’t need a bunch of if’s and else if’s to create an array of directories in python, just the good ol’ makedirs. Create an array of directories To create an array of directories you must import the package os and import the method makedirs >>> from os import makedirs >>> makedirs('1/2/3/4/5') You’ll see now that your directories are created correctly, let’s run the command tree outside of python to see if they’re were actually created....

April 17, 2018 · 2 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

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

Initialize Rails and Deploy to Heroku

Install Rails Install the gem: gem install rails Create New Rails Project Create a new project and cd into it: rails new ProjectTest cd ProjectTest Change Gemfile to add PostgreSQL Heroku works with PostgreSQL as backend database as it doesn’t support SQLite3, so you’ll have to add the pg gem in the Gemfile in a production group: group :production do gem 'pg' end IMPORTANT: After adding PostgreSQL to the production group in the Gemfile you’ll have to move the SQLite3 gem to a development group or delete it, if you work with PostgreSQL just delete it entirely but if you would like to keep SQLite3 for local development then move the gem to a dev group like this:...

February 23, 2018 · 3 min · Franccesco Orozco

Calculate Filename SHA1 with Ruby

Basic usage Where FILENAME is the filename that you want to calculate require 'digest/sha1' Digest::SHA1.hexdigest(FILENAME) More advanced usage Save this code as checkhash.rb, usage: checkhash.rb <filename>. require 'digest/sha1' # Usage: checkhash.rb <filename> filename = ARGV.pop if filename.nil? # if no filename specified then prints help puts 'Please specify the filename to calculate the hash' puts "Usage: #{File.basename($PROGRAM_NAME)} FILENAME" exit end # calculating SHA1 hash def calculate_hash(file) Digest::SHA1.hexdigest(file) end file_hash = calculate_hash(filename) puts "#{filename}: #{file_hash}"

February 22, 2018 · 1 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

How to Get Started With Pipenv

What is pipenv Essentially Pipenv is pip + virtualenv and it’s a match made in heaven. It manages dependencies, required python versions (if pyenv is available), generates pipfiles which is more reliable than a requirements.txt file and it generates a virtual environment so you don’t screw other environments and its requirements. It automatically creates and manages a virtualenv for your projects, as well as adds/removes packages from your Pipfile as you install/uninstall packages....

February 20, 2018 · 2 min · Franccesco Orozco