Skip to main content

Display a randomly selected quote about Richard M. Stallman.

Project description

rmsfact

A port of the R package rmsfact by Dirk Edelbuettel.

Display a randomly selected quote about Richard M. Stallman based on the collection in the 'GNU Octave' function 'fact()' which was aggregated by Jordi Gutiérrez Hermoso based on the (now defunct) site stallmanfacts.com (which is accessible only via http://archive.org).

Installation

uv pip install rmsfact

Or with pip:

pip install rmsfact

Usage

The package exports a single function rmsfact() which returns a single randomly-chosen "fact" as a str.

import rmsfact

rmsfact.rmsfact()

You can also run python -m rmsfact from a shell.

Building from source

This project uses uv for dependency management and building.

Clone the repository:

git clone https://github.com/lewinfox/rmsfact.git
cd rmsfact

Install uv if you don't have it:

curl -LsSf https://astral.sh/uv/install.sh | sh

Set up the development environment:

make install_dev

This will create a virtual environment, install dependencies, and set up the package for development.

Making changes

To add a new fact you can edit rmsfact/data/rmsfact.txt.

echo "A new fact" >> rmsfact/data/rmsfact.txt

The Makefile provides several useful targets:

  • make install_dev: Set up development environment with uv
  • make test: Run unit tests with pytest
  • make build: Build the package (creates source and wheel distributions)
  • make clean: Remove build artifacts
  • make format: Format code with ruff
  • make check: Run linter checks

You can build the package with:

make build

Releasing to PyPI

This project uses GitHub Actions to automatically publish to PyPI when you create a new GitHub release.

First-time setup

You need to configure PyPI's Trusted Publishers feature (one-time setup):

  1. Go to PyPI and log in to your account
  2. Navigate to your project's settings (or create the project first if it doesn't exist)
  3. Go to the "Publishing" section
  4. Add a new publisher with these settings:
    • PyPI Project Name: rmsfact
    • Owner: lewinfox (your GitHub username)
    • Repository name: rmsfact
    • Workflow name: publish.yml
    • Environment name: (leave blank)

Creating a release

Once trusted publishing is configured, simply create a new GitHub release:

  1. Update the version in pyproject.toml
  2. Commit and push your changes
  3. Create a new release on GitHub with a tag matching the version (e.g., v0.5.0)
  4. The GitHub Action will automatically build and publish to PyPI

You can also manually publish with:

make upload

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rmsfact-0.5.0.tar.gz (23.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rmsfact-0.5.0-py3-none-any.whl (23.6 kB view details)

Uploaded Python 3

File details

Details for the file rmsfact-0.5.0.tar.gz.

File metadata

  • Download URL: rmsfact-0.5.0.tar.gz
  • Upload date:
  • Size: 23.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rmsfact-0.5.0.tar.gz
Algorithm Hash digest
SHA256 c2c9a56cdd8da60634ebd57539e806d0a745884260c24e9525464a614f379582
MD5 3bf34f5553bec1fd7b3e6d661e148243
BLAKE2b-256 76a9076d4e4aa14886c87d8d979cfb772d1c12617c427864dcadff566eeebfc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for rmsfact-0.5.0.tar.gz:

Publisher: publish.yml on lewinfox/rmsfact

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rmsfact-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: rmsfact-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 23.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rmsfact-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8b5732e0b2b68767609187c9c99738fe4e98c067d1ca72349abf130e4c903f56
MD5 8977f4271530f471184e12b8fd9db97e
BLAKE2b-256 bea8a34ac52c11cd4ba3e0b12f17ba50cba799349654ac672e6c30715522ac99

See more details on using hashes here.

Provenance

The following attestation bundles were made for rmsfact-0.5.0-py3-none-any.whl:

Publisher: publish.yml on lewinfox/rmsfact

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page