Standards| blog.ian.stapletoncordas.co
Recently, a number of people have expressed desire in "taking over" [1]| blog.ian.stapletoncordas.co
Improve Performance| blog.ian.stapletoncordas.co
python-requests has been around for a long time. I've been a maintainer for many years and I share some retrospective thoughts on the project| cat /dev/brain
Lessons learned, regrets, and more from over a decade working on an API library| cat /dev/brain
You can always turn your 'no' into a 'yes', but it doesn't always go the other way| cat /dev/brain
Summary: I've been writing and maintaining Open Source Software for over 8 years now and it has been simultaneously the catalyst for the success I've had professionally and the misery I feel on a daily basis. --- Open Source Software (a.k.a, Free and Open Source Software, F/OSS) has …| cat /dev/brain
Back in December, when I released rush, I struggled to figure out the appropriate way to signal that the library was shipping with type annotations built-in. I've also been working on adding type annotation stub files to github3.py as a result, I've had to look around quite a bit …| cat /dev/brain
Everyone has a different motivation when working on Open Source Software. That motivation can change over time both in quantity and in actual motivation. When the Free and Open Source Software (a.k.a., F/OSS) movement began, the motivation was clear: I have hardware and I should be able …| cat /dev/brain
There are a lot of companies that rely on Free and Open Source Software (a.k.a, F/OSS) and adoption of their solution within various language communities. Often times, these companies are providing some kind of software or solution as a service and they're basically packaging up the existing …| cat /dev/brain
GitHub has made changes lately that are trending towards fulfilling the "Social" part of their "Social Coding" tagline. Recently this has taken two forms: They have made unlimited private repositories free for everyone and anyone who was paying them for private repositories gets a special badge for social caste status …| cat /dev/brain
Most people who start using Kotlin are already familiar with Java and its ecosystem. I, on the other hand, am not one of those people and have been looking for easier ways into the Java ecosystem. I found that Kotlin was probably that softer path back. (I wrote Java in …| cat /dev/brain
Recently, I have had the opportunity to work on some APIs that were implementing rate limiting for users. The idea we started with was to implement a limit algorithm that reset after a period of time, e.g., one hour. I researched rate limiting a bit more, and found another …| cat /dev/brain
Recently, I had the (genuine) joy of helping port a Python library with a C extension to work on Python 2 and Python 3. C was my first language that I really understood pretty well and I have some (possibly misplaced) nostalgia for the time when I only ever wrote …| cat /dev/brain
Over the last few months I've been assigned to work on a project called Craton[0]. The project will be an inventory system that can integrate with most of our popular configuration management tools (Ansible, Chef, Puppet, Salt, etc.) and perform automated remediation. My team started Craton and moved it …| cat /dev/brain
Every API client is different. They are shaped by many things, including: the author's personal tastes the language and its conventions the API itself the underlying HTTP library People have told me that they love github3.py and how I designed it. Personally, I feels there is room for significant …| cat /dev/brain
As someone who has written a few API client libraries and works on Requests a bit, I realize I have some overlapping knowledge that I need to share. There are some patterns I've found from building my own API client libraries and helping developers of other client libraries. I hesitate …| cat /dev/brain
In my position at Rackspace, I tend to spend a lot of time using OpenStack's instance of Gerrit to review proposed changes. When reviewing OpenStack changes, I prefer keyboard shortcuts and terminal interfaces so I can explore the affect of a change via my preferred text editor. To accommodate this …| cat /dev/brain
After setting up a home server running Fedora 25, we wanted to use it's large amounts of storage for images and such. Naturally, we reached for Samba to enable network file storage. We installed and configured it, but neither from macOS, nor from Linux could access files after mounting the …| cat /dev/brain
I have started to notice a trend. More and more people are aggressively attempting to integrate themselves into open source projects. Some are doing so spectacularly, while others are struggling. And the people who struggle seem to become agitated, aggressive, and their attempts to contribute discourage everyone involved. Often, when …| cat /dev/brain
Today, I released Flake8 3.0.0b1. You can try it out by running: pip install --pre flake8 This marks the start of the culmination of several months worth of work and a couple years of hammock driven development (mostly spent ruminating). You can read about the list of changes …| cat /dev/brain
I have been working on Open Source Software (in one way or another) since 2011 (just over 4 years since my first open source commit on a project). When I started writing open source software it was for fun. I was not a Computer Science/Engineering student. Programming was a …| cat /dev/brain
Tonight marks the release of Betamax 0.5.0. Beyond just reworking the documentation, it also marks the addition of two integrations with popular testing frameworks. Betamax now ships with a pytest fixture that provides an instantiated Session that is being recorded by Betamax. Let's look at how we might …| cat /dev/brain
tl;dr pep8's repository has moved from Johann Rocholl's account to the Python Code-Quality Authority organization. --- It's my great pleasure to announce that the pep8 project has moved to the PyCQA organization on GitHub and will hopefully enjoy an expanded team of maintainers as a result. This comes after …| cat /dev/brain
This year I gave the talk "Cutting Off the Internet: Testing Applications that Use Requests" at PyTennessee and PyCon. The recording of the talk is already online with my slides. At the end of my talk, I promised to write a blog post going into far more detail and covering …| cat /dev/brain
You may have already heard about this, but Guido van Rossum has co-authored PEP 484[1] to standardize a basic set of Type Hints. If you've heard of PEP 484 already, this probably isn't the one-line summary you've heard about. In fact, if you've heard about this already, you've probably …| cat /dev/brain
This year was my second year attending PyCon North America (a.k.a., PyCon US) and once again I loved every second of it. tl;dr I didn't see a lot of talks in person but I spoke to a large number of people this year and made some great …| cat /dev/brain
It is my distinct pleasure to announce the 0.4.0 release of the requests toolbelt. This version comes almost a year after the release of 0.3.1. A lot of work was put into the toolbelt in those 10 months though. We reorganized the documentation to make it …| cat /dev/brain
Lately, I found a new amount of energy and decided to help SQLObject add compatibility with Python 3. If you look at the Python 3 Wall of Superpowers you will notice that currently SQLObject is currently listed as Python 2 only (which is indicated by the lock symbol). While talking …| cat /dev/brain
On August 2nd, 2013 I opened issue 122 on github3.py's issue tracker. The driving force behind the "Roadmap for 1.0" was to clean up an API that I fundamentally disliked. Yesterday, on December 7th, 2014, I released the first alpha version of 1.0. The following is …| cat /dev/brain
This is the second in what I hope will be a series of explorations of advanced features in requests. Websites and servers sometimes, misbehave. They can misbehave in a number of ways: read errors large numbers of redirects failure to connect 500 errors What most people don't know is that …| cat /dev/brain
This is the first in what I hope will be a series of explorations of advanced and lesser known features in requests. Recently, the requests team released version 2.4.3. In this version, we had a very significant new feature released that was contributed by Carol Willing. It has …| cat /dev/brain
tl;dr Flake8 development has moved to GitLab and has a mirror on GitHub. Please send all further bug reports and pull requests to the GitLab repository. Changing to Git Recently I started a discussion on the code quality mailing list about moving Flake8 from Mercurial to Git and to …| cat /dev/brain
Initial Success Following the advice of Jim "Big Tiger" Remsik, I made the Google Docs Forms that have started OSAP as a service. Thankfully, I have a more manageable way of helping apprentices find mentors than people emailing me directly. Due to those forms working so well, we already have …| cat /dev/brain
This past weekend was Madison Ruby and it was fantastic. After it finished on Saturday, I went to dinner with some super awesome people and we eventually started discussing open source. A couple of the people at the table expressed concerns and fears about contributing to existing open soure projects …| cat /dev/brain
tl;drdispatch_hook now sends the keyword arguments that were originally sent with the request. Hook authors should modify their hooks to accept them and resend them. This morning Kenneth published (on PyPI and Crate) requests 1.2.0 which included a lot of very important changes. One, which will …| cat /dev/brain
So in my last post I discussed my pyserv bash function that looks and behaves like a program. I didn't exactly disect it, but I have a different one that I will disect. Meet my nifty function called sandbox: sandbox(){if[[-z"$1"]];thenecho"sandbox: No directory provided"else …| cat /dev/brain
I'm just going to collect some useful one-liners that I've either made myself or found elsewhere. I think some of these might benefit some people I know, so there may be follow up posts to add more. What's my IP? (python) This requires requests but it could probably be done …| cat /dev/brain
After mostly finishing github3.py[1] I started writing the unittests for the library. I waited until the end because I knew I wanted to test directly against the API. To do that, I needed to make sure I had all the functionality that would return the proper objects to …| cat /dev/brain
So a friend of mine is learning python and was fooling around in the interactive console. They accidentally ran: 'str'>19# But they meant to run'str'>'19' Can you guess what that evaluated to? Conventional thought would suggest a TypeError, but in fact that evaluates to True. Odd right …| cat /dev/brain
I've just had a few things kicking around in my head lately and I thought I'd jot them down. github3.py With the exception of paginated calls, github3.py is essentially feature complete but is lacking tests for everything. My plan as of this point in time is to finish …| cat /dev/brain
I previously mentioned my work on github3.py and how I was having trouble creating downloads on GitHub because they use Amazon's S3 service for the uploaded files. What this means is that first you have to "create" the download on GitHub then you have to upload the actual file …| cat /dev/brain
A Bit of Background I haven't mentioned it before, but after graduating from Stevens Institute of Technology, the Computer Science department hired me to work in the Scientific and Research Computing Information Technology (SRCIT) "department". We have approximately 120 desktop client machines with 4,000 users and 9 servers. All …| cat /dev/brain
While testing github3.py by hand, I found myself wanted to delete objects that I created as a test from an array after deleting them on GitHub. To do that, I have to do: gists[index].delete() del gists[index] So my initial instinct was to modify the __del__ method …| cat /dev/brain
I'm the kind of person who often fidgets with the appearance of the things I use. For example, over the course of a few weeks, I constantly changed the configuration file for wmii. I finally got it just right and haven't changed much since (except for the font). I've also …| cat /dev/brain
After finishing finals, I started working on my project to wrap the Github API. Recently, I came across the area of the API dealing with creating a download on a repository. The one thing that has made this project so enjoyable has been requests. Upon reaching this section, I noticed …| cat /dev/brain
After encountering some problems working on github3.py I stopped by #github on Freenode to see if anyone else had come across the same problems. While there, I noticed a lot of people asking some basic questions about how to do things with respect to git and Github. They seem …| cat /dev/brain
The Context I use sprunge.us on the rare occasion that I need to paste something for someone else to see. It's simple to use, written in python and open source. The chief example when you visit the website uses curl (and I love using the command line for as …| cat /dev/brain
I'll probably use this to replace the grimoire that I have since I vastly| blog.ian.stapletoncordas.co