Skip to main content

pip-timemachine

A simple Python server that forwards requests to PyPI's Simple API, filters results based on a specific point in time, and returns the response.

Primary purpose is for testing pip, but may be useful for reliably installing the same packages from a given date.

Features

  • Filters package files by a specified datetime
  • Powered by PEP 691 and PEP 700 to quickly filter packages after the given time
  • Can point to any simple index that supports PEP 691 and PEP 700, not just PyPI

Installation

I reccomend install pip-timemachine as a tool, e.g.

Using uv:

uv tool install pip-timemachine

Or using pipx:

pipx install pip-timemachine

Usage

Run

Once installed, run the server:

pip-timemachine 2023-10-18T12:00:00

And then point pip (or any other installer) to use this server as an index:

pip install requests --index http://127.0.0.1:8040/simple

CLI Options

 Usage: pip-timemachine [OPTIONS] MOMENT:[%Y-%m-%d|%Y-%m-%dT%H:%M:%S|%Y-%m-%d %H:%M:%S]
 
 Arguments:
   moment      MOMENT:[%Y-%m-%d|%Y-%m-%dT%H:%M:%S|%Y-%m-%d %H:%M:%S]  [default: None] [required]
 
 Options : 
   --index        TEXT     [default: https://pypi.org/simple]
   --port         INTEGER  [default: 8040]
   --help                  Help

To Dos

  • Support clients (e.g. pip) that do not support PEP 691 or PEP 700

Release files for pip-timemachine 0.2.3

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

Source distribution (sdist)

Source distribution for pip-timemachine 0.2.3
File Size Uploaded
pip_timemachine-0.2.3.tar.gz 77.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pip-timemachine 0.2.3
File Interpreter ABI Platform
pip_timemachine-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 82.5 kB

Release files / pip_timemachine-0.2.3.tar.gz

Download URL pip_timemachine-0.2.3.tar.gz
Size 77.2 kB
Tags Source
SHA-256 checksum
How to use checksums
75045883f153efcd4caeae2dd90aa765fef2fb1756713484e35979024f671c7a
BLAKE2b-256 checksum
How to use checksums
eec1eb651f026f0505dac2499a391beea40681e9a0eaad43f17027324a0b6763
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 24, 2026.

Transparency log

Release files / pip_timemachine-0.2.3-py3-none-any.whl

Download URL pip_timemachine-0.2.3-py3-none-any.whl
Size 5.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5e8209271d6c2674d7ce22cc8779287f5d41337cd0781e7d6de76f9865dbd38c
BLAKE2b-256 checksum
How to use checksums
53146b5425f8d956903e52a6b8443d7ca1f7930d498ab3d5383621b41f353dcd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.3 This release

2 release files

0.2.2

2 release files

0.2.0

2 release files

0.1.0

2 release files

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