pip-timemachine


Namepip-timemachine JSON
Version 0.2.0 PyPI version JSON
download
home_pageNone
SummaryAdd your description here
upload_time2024-10-20 19:33:20
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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](https://peps.python.org/pep-0691/) and [PEP 700](https://peps.python.org/pep-0691/) 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](https://github.com/astral-sh/uv?tab=readme-ov-file#uv):
```bash
uv tool install pip-timemachine
```

Or using [pipx](https://github.com/pypa/pipx?tab=readme-ov-file):
```bash
pipx install pip-timemachine
```

## Usage

### Run

Once installed, run the server:
```bash
pip-timemachine 2023-10-18T12:00:00
```

And then point pip (or any other installer) to use this server as an index:
```bash
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

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pip-timemachine",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": "Damian Shaw <damian.peter.shaw@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/a8/ee/e634e9b27d3d6dab6764d3dc810279fa4dbd886d28f2bd67e00eb5bc6c63/pip_timemachine-0.2.0.tar.gz",
    "platform": null,
    "description": "# pip-timemachine\n\nA simple Python server that forwards requests to PyPI's Simple API,\nfilters results based on a specific point in time, and returns the\nresponse.\n\nPrimary purpose is for testing pip, but may be useful for reliably\ninstalling the same packages from a given date.\n\n## Features\n\n- Filters package files by a specified datetime\n- Powered by [PEP 691](https://peps.python.org/pep-0691/) and [PEP 700](https://peps.python.org/pep-0691/) to quickly filter packages after the given time\n- Can point to any simple index that supports PEP 691 and PEP 700, not just PyPI\n\n## Installation\n\nI reccomend install `pip-timemachine` as a tool, e.g.\n\nUsing [uv](https://github.com/astral-sh/uv?tab=readme-ov-file#uv):\n```bash\nuv tool install pip-timemachine\n```\n\nOr using [pipx](https://github.com/pypa/pipx?tab=readme-ov-file):\n```bash\npipx install pip-timemachine\n```\n\n## Usage\n\n### Run\n\nOnce installed, run the server:\n```bash\npip-timemachine 2023-10-18T12:00:00\n```\n\nAnd then point pip (or any other installer) to use this server as an index:\n```bash\npip install requests --index http://127.0.0.1:8040/simple\n```\n\n### CLI Options\n\n```\n Usage: pip-timemachine [OPTIONS] MOMENT:[%Y-%m-%d|%Y-%m-%dT%H:%M:%S|%Y-%m-%d %H:%M:%S]\n \n Arguments:\n   moment      MOMENT:[%Y-%m-%d|%Y-%m-%dT%H:%M:%S|%Y-%m-%d %H:%M:%S]  [default: None] [required]\n \n Options : \n   --index        TEXT     [default: https://pypi.org/simple]\n   --port         INTEGER  [default: 8040]\n   --help                  Help\n```\n\n# To Dos\n\n * Support clients (e.g. pip) that do not support PEP 691 or PEP 700\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Add your description here",
    "version": "0.2.0",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6abfd742acea3690b3699ab37f7f499bd1b3cc246c8fee0a1d33d944db409b96",
                "md5": "fb0b738699979ff1cf974a6bd48cac0b",
                "sha256": "3ace3d3180f81448f0ce552c6597c0c45bf51c437769c389dfec9c3913ed82bd"
            },
            "downloads": -1,
            "filename": "pip_timemachine-0.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fb0b738699979ff1cf974a6bd48cac0b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 5203,
            "upload_time": "2024-10-20T19:33:19",
            "upload_time_iso_8601": "2024-10-20T19:33:19.270791Z",
            "url": "https://files.pythonhosted.org/packages/6a/bf/d742acea3690b3699ab37f7f499bd1b3cc246c8fee0a1d33d944db409b96/pip_timemachine-0.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a8eee634e9b27d3d6dab6764d3dc810279fa4dbd886d28f2bd67e00eb5bc6c63",
                "md5": "f6ec43257b3b9cabfc5d984eed7c5db5",
                "sha256": "8ad979cd4067e8dfa34c0901189b588a2dee52008acd2b20b0cec5dfe11dc657"
            },
            "downloads": -1,
            "filename": "pip_timemachine-0.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "f6ec43257b3b9cabfc5d984eed7c5db5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 45556,
            "upload_time": "2024-10-20T19:33:20",
            "upload_time_iso_8601": "2024-10-20T19:33:20.833824Z",
            "url": "https://files.pythonhosted.org/packages/a8/ee/e634e9b27d3d6dab6764d3dc810279fa4dbd886d28f2bd67e00eb5bc6c63/pip_timemachine-0.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-20 19:33:20",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "pip-timemachine"
}
        
Elapsed time: 0.63878s