More Data Structures

More Data Structures or more-ds for short, provides simple and convenient Python data structures.

Data Structures

network

URL

Class for easy (unvalidated) URL construction.

time

Timer

Context manager for timing a block of code.

Getting Started

% pip install more-ds
>>> from more_ds.network import URL
>>> base_url = URL("http://example.org/")
>>> api_url = base_url / "api"
>>> url = api_url / "ip" / "address" // dict(version=4)
>>> print(url)
http://example.org/api/ip/address?version=4

Or

from time import sleep

from more_ds.time import Timer
with Timer() as t:
    # sleep for half a second
    sleep(.5)

print(t.elapsed)  # -> 0:00:00.501864

Origin

The projected started with the need to extract the simplest of classes from an existing open source library, nwa-stdlib. That library primarily contained code that was rather specific to the organization that created the library. However, the URL class was a tiny convenience data structure, with broader applicability, that took the chore out of programmatically creating URLs. By extracting that class into a separate project, one that is specifically focussed on convenient data structures, it hopefully attracts a broader set of users that would otherwise don’t feel comfortable including nwa-stdlib as a whole.

The project’s name was inspired by the wonderful More Itertools library.