Skip to main content

Add your description here

Project description

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

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

pip_timemachine-0.2.3.tar.gz (77.2 kB view details)

Uploaded Source

Built Distribution

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

pip_timemachine-0.2.3-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file pip_timemachine-0.2.3.tar.gz.

File metadata

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

File hashes

Hashes for pip_timemachine-0.2.3.tar.gz
Algorithm Hash digest
SHA256 75045883f153efcd4caeae2dd90aa765fef2fb1756713484e35979024f671c7a
MD5 47d9f1223e22d6fd5c62563f0fc252ae
BLAKE2b-256 eec1eb651f026f0505dac2499a391beea40681e9a0eaad43f17027324a0b6763

See more details on using hashes here.

Provenance

The following attestation bundles were made for pip_timemachine-0.2.3.tar.gz:

Publisher: release.yml on notatallshaw/pip-timemachine

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

File details

Details for the file pip_timemachine-0.2.3-py3-none-any.whl.

File metadata

File hashes

Hashes for pip_timemachine-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5e8209271d6c2674d7ce22cc8779287f5d41337cd0781e7d6de76f9865dbd38c
MD5 dadc2aa1942813da77f05d649946a25a
BLAKE2b-256 53146b5425f8d956903e52a6b8443d7ca1f7930d498ab3d5383621b41f353dcd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pip_timemachine-0.2.3-py3-none-any.whl:

Publisher: release.yml on notatallshaw/pip-timemachine

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