Skip to main content

Geddit

Simple zero-configuration retrieval of resources by URL.

This module provides a single geddit function which takes a single parameter specifying the URL to fetch. It will return a bytes object with the contents of the resource at that URL or will raise an exception specific to the URL scheme.

This library is intended to be used in situations where scheme-specific configuration can be inferred from the environment. (For example, in Google Cloud-hosted environments there is usually a default identity which the services run as. This identity will be used to fetch resources specified via the gs or sm schemes.)

This library is not intended to replace general use libraries such as requests.

Examples

from geddit import geddit

# The default scheme is file://
geddit('file:///etc/issue')     # == b'Debian GNU/Linux 10 \\n \\l\n\n'
geddit('/etc/issue')            # == b'Debian GNU/Linux 10 \\n \\l\n\n'
geddit('./README.md')           # Raises: ValueError

# Fetching using HTTP over TLS
geddit('https://www.gov.uk/bank-holidays.json')[:20]  # == b'{"england-and-wales"'

# HTTP errors are reported
geddit('https://www.example.com/not-found')  # raises requests.exceptions.HTTPError

# Google Storage objects. Uses default application credentials.
geddit('gs://my-bucket/some-object')          # fetches latest generation
geddit('gs://my-bucket/some-object#abcdefg')  # fetches generation abcdefg

# Google Secret Manager secrets. Uses default application credentials.
geddit('sm://my-project/some-secret')       # fetches latest version
geddit('sm://my-project/some-secret#3')     # fetches version 3

# Data URLs.
geddit('data:application/x-yaml;charset=utf-8;base64,eyJmb28iOjF9')  # == b'{"foo":1}'

Requirements

  • Python >= 3.11.

Installation

The latest release of this library on PyPI can be installed using pip:

$ pip3 install geddit

The library can also be installed directly from the git repository if you want the most up-to-date version.

$ pip3 install git+https://gitlab.developers.cam.ac.uk/uis/devops/lib/geddit.git

For developers, the tool can be installed from a cloned repo using pip:

$ cd /path/to/this/repo
$ pip3 install -e .

Publishing a new release

See the guidebook section on publishing to PyPI for more information.

License

This software is licensed under an MIT-like software license. See the LICENSE file for the full text of the license.

Scheme-specific notes

file

The file scheme is the default scheme. Only absolute paths can be specified.

https

There is no support for HTTP basic authentication as that involves putting the cleartext password into the URL.

Non-TLS ("http") URLs are not supported.

gs and sm

Only default application credentials are supported. To use specific credentials, set the GOOGLE_APPLICATION_CREDENTIALS environment variable to the absolute path to some JSON-formatted credentials.

data

Data URLs are not good way of passing secrets since their values are transparent. They can be useful for transferring non-secret configuration or for use in development environments.

Metadata

Release files for geddit 2.2.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for geddit 2.2.12
File Size Uploaded Provenance
geddit-2.2.12.tar.gz 4.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for geddit 2.2.12
File Interpreter ABI Platform
geddit-2.2.12-py3-none-any.whl Python 3 none any Details

Total release size: 9.1 kB

Release files / geddit-2.2.12.tar.gz

Download URL geddit-2.2.12.tar.gz
Size 4.2 kB
Tags Source
SHA-256 checksum
How to use checksums
87822d2befe193bafc1947eb89def77ac64c179dd6ae24e0af25eddca5d2eb7d
BLAKE2b-256 checksum
How to use checksums
3a0d97b4b2474af06ff46c7c34c01f38c10ef9de634d9cd966e121e2b3741f5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / geddit-2.2.12-py3-none-any.whl

Download URL geddit-2.2.12-py3-none-any.whl
Size 4.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
76011973f628ad98be915ebfd2213a7fb27f27242c5ea075a6e9e4446afc4021
BLAKE2b-256 checksum
How to use checksums
84a6c95dc57b19f469e3b00970253a1ee353fa2f3aae1833f2f6319ef937059d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Security for geddit 2.2.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.2.12 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page