renfe-cli


Namerenfe-cli JSON
Version 5.2.0 PyPI version JSON
download
home_pagehttps://github.com/gerardcl/renfe-cli
SummaryGet faster Renfe Spanish Trains timetables in your terminal.
upload_time2024-10-03 19:17:22
maintainerNone
docs_urlNone
authorGerard C.L. <gerardcl@gmail.com>
requires_python>=3.8
licenseBSD-3-Clause
keywords timetables schedules trains renfe cli rust python pyo3 maturin
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![CICD](https://github.com/gerardcl/renfe-cli/actions/workflows/CICD.yml/badge.svg)](https://github.com/gerardcl/renfe-cli/actions/workflows/CICD.yml)

# Renfe Timetables CLI

Get faster Renfe trains timetables in your terminal, with Python3.8+ support.
No longer need to open the browser! Just keep using your terminal 😀

It supports both [Horarios de alta velocidad, larga distancia y media distancia](https://data.renfe.com/dataset/horarios-de-alta-velocidad-larga-distancia-y-media-distancia) (default option, as in the web) and [Renfe Cercanías](https://data.renfe.com/dataset/horarios-cercanias)  GTFS datasets.

`renfe-cli` is written in [Rust](https://www.rust-lang.org/) (since v4.0.0) and published to [pypi.org](https://pypi.org/project/renfe-cli/) as a Python package (CLI and library).

It is provided as a Python package due to historical reasons, but was ported to Rust to showcase Rust's interoperability and performance improvements that can offer to the Python ecosystem. Nevertheless, one can optionally use the built [renfe-cli](https://crates.io/crates/renfe-cli) crate that is publised to crates.io.

See the [changelog](https://github.com/gerardcl/renfe-cli/blob/master/CHANGELOG.md).

**NOTE** since I am more often using Rodalies trains I have created [rodalies-cli](https://github.com/gerardcl/rodalies-cli). I hope you like it too!

  **DISCLAIMER**: Renfe's GTFS dataset might not be in sync with autonomic train schedules systems (e.g. Rodalies de la Generalitat de Catalunya), hence Renfe Cercanias train types (e.g.: REGIONAL or MD type) might not be accurate, or when using the `cercanias` flag you won't find timetables for the stations belonging to autonomic systems. For that, please use autonomic data/apps (.e.g: [rodalies-cli](https://github.com/gerardcl/rodalies-cli)).

## Installation

### Python package

Install Python CLI package [renfe-cli](https://pypi.org/project/renfe-cli/)

```bash
pip install renfe-cli --upgrade
```

### Rust crate (optional)

Install the Rust crate [renfe-cli](https://crates.io/crates/renfe-cli)

```bash
cargo install renfe-cli
```

## Usage (CLI)

The CLI uses the official and latest Renfe's GTFS dataset, from [Horarios de alta velocidad, larga distancia y media distancia](https://data.renfe.com/dataset/horarios-de-alta-velocidad-larga-distancia-y-media-distancia), by default. Optionally, one can enable searching over [Renfe Cercanías GTFS dataset](https://data.renfe.com/dataset/horarios-cercanias) (expect longer load time in this case).

```bash
$ renfe-cli -h
Usage: renfe-cli [options]

Options:
    -f ORIGIN           Set From origin station
    -t DESTINATION      Set To destination station
    -d, --day DAY       Set the Day (default: today's day)
    -m, --month MONTH   Set the Month (default: today's month)
    -y, --year YEAR     Set the Year (default: today's year)
    -s, --sort          Option to sort the timetable by Duration
    -c, --cercanias     Option to search over Renfe Cercanías
    -h, --help          Print this help menu
```

### **Getting the timetable**

Let's show an example of minimal inputs (origin and destination stations) with specific date and default GTFS dataset:

```bash
$ renfe-cli  -f girona -t "puerta de atocha" -d 30
Loading default GTFS data from Renfe web - Alta velocidad, Larga distancia y Media distancia
Provided input 'girona' does a match with 'Estación de tren Girona'
Provided input 'puerta de atocha' does a match with 'Estación de tren Madrid-Puerta de Atocha'
Today is: 2024-9-29
Searching timetable for date: 2024-9-30
Origin station: Estación de tren Girona
Destination station: Estación de tren Madrid-Puerta de Atocha

=========================TIMETABLE=========================
  Train        |   Departure  |   Arrival    |   Duration
-----------------------------------------------------------
   AVLO        |    05:46     |    09:20     |    03:34
-----------------------------------------------------------
   AVE         |    06:41     |    10:10     |    03:29
-----------------------------------------------------------
   AVE         |    08:11     |    11:45     |    03:34
-----------------------------------------------------------
   AVE INT     |    11:59     |    15:45     |    03:46
-----------------------------------------------------------
   AVE         |    15:11     |    19:12     |    04:01
-----------------------------------------------------------
   AVE         |    17:51     |    21:45     |    03:54
===========================================================
```

Let's show an example using Renfe Cercanías GTFS dataset:

```bash
$ renfe-cli -f chamartín -t "tres cantos" -c
Loading Cercanías GTFS data from Renfe web - long load time
Provided input 'chamartín' does a match with 'Station { name: "Estación de tren Madrid-Chamartín-Clara Campoamor", id: "17000" }'
Provided input 'tres cantos' does a match with 'Station { name: "Estación de tren Tres Cantos (apt)", id: "17004" }'
Today is: 2024-10-2
Searching timetable for date: 2024-10-2
Origin station: Estación de tren Madrid-Chamartín-Clara Campoamor
Destination station: Estación de tren Tres Cantos (apt)

=========================TIMETABLE=========================
  Train        |   Departure  |   Arrival    |   Duration    
-----------------------------------------------------------
   C4b         |    05:06     |    05:22     |    00:16     
-----------------------------------------------------------
   C4b         |    05:38     |    05:55     |    00:17     
-----------------------------------------------------------
   C4b         |    06:10     |    06:27     |    00:17     
-----------------------------------------------------------
.........
.........
-----------------------------------------------------------
   C4b         |    21:56     |    22:13     |    00:17     
-----------------------------------------------------------
   C4b         |    22:20     |    22:37     |    00:17     
-----------------------------------------------------------
   C4b         |    23:16     |    23:33     |    00:17     
===========================================================
```

## Usage (Library)

`renfe-cli` can be imported as a python package into your project, offering utilities when willing to deal with the Renfe search web site.

```bash
$ python
Python 3.12.6 (main, Sep  8 2024, 13:18:56) [GCC 14.2.1 20240805] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import renfe_cli
>>> renfe = renfe_cli.
renfe_cli.Renfe()    renfe_cli.Schedule(  renfe_cli.Station(   renfe_cli.main()     renfe_cli.renfe_cli  
>>> renfe = renfe_cli.Renfe()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Renfe.__new__() missing 1 required positional argument: 'cercanias'
>>> renfe = renfe_cli.Renfe(False)
Loading default GTFS data from Renfe web - Alta velocidad, Larga distancia y Media distancia
GTFS data:
  Read in 2171 ms
  Stops: 793
  Routes: 644
  Trips: 4150
  Agencies: 1
  Shapes: 0
  Fare attributes: 0
  Feed info: 0
>>> renfe.filter_station("madrid")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: Provided input 'madrid' does match with '[Station { name: "Estación de tren Madrid-Puerta de Atocha", id: "60000" }, Station { name: "Estación de tren Madrid - Atocha Cercanias", id: "18000" }, Station { name: "Estación de tren Madrid-Principe Pio", id: "10000" }, Station { name: "Estación de tren Madrid-Ramon Y Cajal", id: "97201" }, Station { name: "Estación de tren Madrid-Nuevos Ministerios", id: "18002" }, Station { name: "Estación de tren Madrid-Chamartin", id: "17000" }, Station { name: "Estación de tren Madrid-Recoletos", id: "18001" }]' -> There must be ONLY one match
>>> renfe.filter_station("girona")
Provided input 'girona' does a match with 'Station { name: "Estación de tren Girona", id: "79300" }'
<builtins.Station object at 0x77f04173d070>
>>> renfe.print_timetable()

No schedules available...won't print timetable.
>>> renfe.set_train_schedules("79300", "60000", 30, 9, 2024, False)
>>> renfe.print_timetable()

=========================TIMETABLE=========================
  Train        |   Departure  |   Arrival    |   Duration
-----------------------------------------------------------
   AVLO        |    05:46     |    09:20     |    03:34
-----------------------------------------------------------
   AVE         |    06:41     |    10:10     |    03:29
-----------------------------------------------------------
   AVE         |    08:11     |    11:45     |    03:34
-----------------------------------------------------------
   AVE INT     |    11:59     |    15:45     |    03:46
-----------------------------------------------------------
   AVE         |    15:11     |    19:12     |    04:01
-----------------------------------------------------------
   AVE         |    17:51     |    21:45     |    03:54
===========================================================
>>> ...
```

---

## Contribute or Report with Issues

If Renfe's GTFS dataset is being kept not up to date or you find any issue to be fixed or nice enhancements to have, please: [create an issue](https://github.com/gerardcl/renfe-cli/issues).

### Development

This project makes use of Rust bindings for the Python interpreter thanks to [pyo3](https://pyo3.rs). It is already available as a dependency.

To develop, build and publish, this project makes use of [maturin](https://www.maturin.rs/) project. See [usage](https://www.maturin.rs/#usage).

Example of first time working with this repository:

```bash
$ git clone https://github.com/gerardcl/renfe-cli.git && cd renfe-cli
$ python -m venv .venv
$ . .venv/bin/activate
$ pip install -U pip
$ pip install -U maturin
$ maturin develop
🔗 Found pyo3 bindings with abi3 support for Python ≥ 3.7
🐍 Not using a specific python interpreter
📡 Using build options features from pyproject.toml
   Compiling renfe-cli v5.1.0 (/path/to/renfe-cli)
    Finished dev [unoptimized + debuginfo] target(s) in 7.07s
📦 Built wheel for abi3 Python ≥ 3.7 to /tmp/.tmpDsjowL/renfe_cli-5.1.0-cp37-abi3-linux_x86_64.whl
🛠 Installed renfe-cli-5.1.0
```

Maturin takes care of compiling the rust code, generating the bindings for python and installing the package for local use (as library or binary/CLI).


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/gerardcl/renfe-cli",
    "name": "renfe-cli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Gerard Castillo Lasheras <gerardcl@gmail.com>",
    "keywords": "timetables, schedules, trains, renfe, cli, rust, python, pyo3, maturin",
    "author": "Gerard C.L. <gerardcl@gmail.com>",
    "author_email": "Gerard Castillo Lasheras <gerardcl@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/f1/58/c351f0b44a3100bba70f8fdf23b1ab29f30560beff1527813aa049b1fd0a/renfe_cli-5.2.0.tar.gz",
    "platform": null,
    "description": "[![CICD](https://github.com/gerardcl/renfe-cli/actions/workflows/CICD.yml/badge.svg)](https://github.com/gerardcl/renfe-cli/actions/workflows/CICD.yml)\n\n# Renfe Timetables CLI\n\nGet faster Renfe trains timetables in your terminal, with Python3.8+ support.\nNo longer need to open the browser! Just keep using your terminal \ud83d\ude00\n\nIt supports both [Horarios de alta velocidad, larga distancia y media distancia](https://data.renfe.com/dataset/horarios-de-alta-velocidad-larga-distancia-y-media-distancia) (default option, as in the web) and [Renfe Cercan\u00edas](https://data.renfe.com/dataset/horarios-cercanias)  GTFS datasets.\n\n`renfe-cli` is written in [Rust](https://www.rust-lang.org/) (since v4.0.0) and published to [pypi.org](https://pypi.org/project/renfe-cli/) as a Python package (CLI and library).\n\nIt is provided as a Python package due to historical reasons, but was ported to Rust to showcase Rust's interoperability and performance improvements that can offer to the Python ecosystem. Nevertheless, one can optionally use the built [renfe-cli](https://crates.io/crates/renfe-cli) crate that is publised to crates.io.\n\nSee the [changelog](https://github.com/gerardcl/renfe-cli/blob/master/CHANGELOG.md).\n\n**NOTE** since I am more often using Rodalies trains I have created [rodalies-cli](https://github.com/gerardcl/rodalies-cli). I hope you like it too!\n\n  **DISCLAIMER**: Renfe's GTFS dataset might not be in sync with autonomic train schedules systems (e.g. Rodalies de la Generalitat de Catalunya), hence Renfe Cercanias train types (e.g.: REGIONAL or MD type) might not be accurate, or when using the `cercanias` flag you won't find timetables for the stations belonging to autonomic systems. For that, please use autonomic data/apps (.e.g: [rodalies-cli](https://github.com/gerardcl/rodalies-cli)).\n\n## Installation\n\n### Python package\n\nInstall Python CLI package [renfe-cli](https://pypi.org/project/renfe-cli/)\n\n```bash\npip install renfe-cli --upgrade\n```\n\n### Rust crate (optional)\n\nInstall the Rust crate [renfe-cli](https://crates.io/crates/renfe-cli)\n\n```bash\ncargo install renfe-cli\n```\n\n## Usage (CLI)\n\nThe CLI uses the official and latest Renfe's GTFS dataset, from [Horarios de alta velocidad, larga distancia y media distancia](https://data.renfe.com/dataset/horarios-de-alta-velocidad-larga-distancia-y-media-distancia), by default. Optionally, one can enable searching over [Renfe Cercan\u00edas GTFS dataset](https://data.renfe.com/dataset/horarios-cercanias) (expect longer load time in this case).\n\n```bash\n$ renfe-cli -h\nUsage: renfe-cli [options]\n\nOptions:\n    -f ORIGIN           Set From origin station\n    -t DESTINATION      Set To destination station\n    -d, --day DAY       Set the Day (default: today's day)\n    -m, --month MONTH   Set the Month (default: today's month)\n    -y, --year YEAR     Set the Year (default: today's year)\n    -s, --sort          Option to sort the timetable by Duration\n    -c, --cercanias     Option to search over Renfe Cercan\u00edas\n    -h, --help          Print this help menu\n```\n\n### **Getting the timetable**\n\nLet's show an example of minimal inputs (origin and destination stations) with specific date and default GTFS dataset:\n\n```bash\n$ renfe-cli  -f girona -t \"puerta de atocha\" -d 30\nLoading default GTFS data from Renfe web - Alta velocidad, Larga distancia y Media distancia\nProvided input 'girona' does a match with 'Estaci\u00f3n de tren Girona'\nProvided input 'puerta de atocha' does a match with 'Estaci\u00f3n de tren Madrid-Puerta de Atocha'\nToday is: 2024-9-29\nSearching timetable for date: 2024-9-30\nOrigin station: Estaci\u00f3n de tren Girona\nDestination station: Estaci\u00f3n de tren Madrid-Puerta de Atocha\n\n=========================TIMETABLE=========================\n  Train        |   Departure  |   Arrival    |   Duration\n-----------------------------------------------------------\n   AVLO        |    05:46     |    09:20     |    03:34\n-----------------------------------------------------------\n   AVE         |    06:41     |    10:10     |    03:29\n-----------------------------------------------------------\n   AVE         |    08:11     |    11:45     |    03:34\n-----------------------------------------------------------\n   AVE INT     |    11:59     |    15:45     |    03:46\n-----------------------------------------------------------\n   AVE         |    15:11     |    19:12     |    04:01\n-----------------------------------------------------------\n   AVE         |    17:51     |    21:45     |    03:54\n===========================================================\n```\n\nLet's show an example using Renfe Cercan\u00edas GTFS dataset:\n\n```bash\n$ renfe-cli -f chamart\u00edn -t \"tres cantos\" -c\nLoading Cercan\u00edas GTFS data from Renfe web - long load time\nProvided input 'chamart\u00edn' does a match with 'Station { name: \"Estaci\u00f3n de tren Madrid-Chamart\u00edn-Clara Campoamor\", id: \"17000\" }'\nProvided input 'tres cantos' does a match with 'Station { name: \"Estaci\u00f3n de tren Tres Cantos (apt)\", id: \"17004\" }'\nToday is: 2024-10-2\nSearching timetable for date: 2024-10-2\nOrigin station: Estaci\u00f3n de tren Madrid-Chamart\u00edn-Clara Campoamor\nDestination station: Estaci\u00f3n de tren Tres Cantos (apt)\n\n=========================TIMETABLE=========================\n  Train        |   Departure  |   Arrival    |   Duration    \n-----------------------------------------------------------\n   C4b         |    05:06     |    05:22     |    00:16     \n-----------------------------------------------------------\n   C4b         |    05:38     |    05:55     |    00:17     \n-----------------------------------------------------------\n   C4b         |    06:10     |    06:27     |    00:17     \n-----------------------------------------------------------\n.........\n.........\n-----------------------------------------------------------\n   C4b         |    21:56     |    22:13     |    00:17     \n-----------------------------------------------------------\n   C4b         |    22:20     |    22:37     |    00:17     \n-----------------------------------------------------------\n   C4b         |    23:16     |    23:33     |    00:17     \n===========================================================\n```\n\n## Usage (Library)\n\n`renfe-cli` can be imported as a python package into your project, offering utilities when willing to deal with the Renfe search web site.\n\n```bash\n$ python\nPython 3.12.6 (main, Sep  8 2024, 13:18:56) [GCC 14.2.1 20240805] on linux\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n>>> import renfe_cli\n>>> renfe = renfe_cli.\nrenfe_cli.Renfe()    renfe_cli.Schedule(  renfe_cli.Station(   renfe_cli.main()     renfe_cli.renfe_cli  \n>>> renfe = renfe_cli.Renfe()\nTraceback (most recent call last):\n  File \"<stdin>\", line 1, in <module>\nTypeError: Renfe.__new__() missing 1 required positional argument: 'cercanias'\n>>> renfe = renfe_cli.Renfe(False)\nLoading default GTFS data from Renfe web - Alta velocidad, Larga distancia y Media distancia\nGTFS data:\n  Read in 2171 ms\n  Stops: 793\n  Routes: 644\n  Trips: 4150\n  Agencies: 1\n  Shapes: 0\n  Fare attributes: 0\n  Feed info: 0\n>>> renfe.filter_station(\"madrid\")\nTraceback (most recent call last):\n  File \"<stdin>\", line 1, in <module>\nValueError: Provided input 'madrid' does match with '[Station { name: \"Estaci\u00f3n de tren Madrid-Puerta de Atocha\", id: \"60000\" }, Station { name: \"Estaci\u00f3n de tren Madrid - Atocha Cercanias\", id: \"18000\" }, Station { name: \"Estaci\u00f3n de tren Madrid-Principe Pio\", id: \"10000\" }, Station { name: \"Estaci\u00f3n de tren Madrid-Ramon Y Cajal\", id: \"97201\" }, Station { name: \"Estaci\u00f3n de tren Madrid-Nuevos Ministerios\", id: \"18002\" }, Station { name: \"Estaci\u00f3n de tren Madrid-Chamartin\", id: \"17000\" }, Station { name: \"Estaci\u00f3n de tren Madrid-Recoletos\", id: \"18001\" }]' -> There must be ONLY one match\n>>> renfe.filter_station(\"girona\")\nProvided input 'girona' does a match with 'Station { name: \"Estaci\u00f3n de tren Girona\", id: \"79300\" }'\n<builtins.Station object at 0x77f04173d070>\n>>> renfe.print_timetable()\n\nNo schedules available...won't print timetable.\n>>> renfe.set_train_schedules(\"79300\", \"60000\", 30, 9, 2024, False)\n>>> renfe.print_timetable()\n\n=========================TIMETABLE=========================\n  Train        |   Departure  |   Arrival    |   Duration\n-----------------------------------------------------------\n   AVLO        |    05:46     |    09:20     |    03:34\n-----------------------------------------------------------\n   AVE         |    06:41     |    10:10     |    03:29\n-----------------------------------------------------------\n   AVE         |    08:11     |    11:45     |    03:34\n-----------------------------------------------------------\n   AVE INT     |    11:59     |    15:45     |    03:46\n-----------------------------------------------------------\n   AVE         |    15:11     |    19:12     |    04:01\n-----------------------------------------------------------\n   AVE         |    17:51     |    21:45     |    03:54\n===========================================================\n>>> ...\n```\n\n---\n\n## Contribute or Report with Issues\n\nIf Renfe's GTFS dataset is being kept not up to date or you find any issue to be fixed or nice enhancements to have, please: [create an issue](https://github.com/gerardcl/renfe-cli/issues).\n\n### Development\n\nThis project makes use of Rust bindings for the Python interpreter thanks to [pyo3](https://pyo3.rs). It is already available as a dependency.\n\nTo develop, build and publish, this project makes use of [maturin](https://www.maturin.rs/) project. See [usage](https://www.maturin.rs/#usage).\n\nExample of first time working with this repository:\n\n```bash\n$ git clone https://github.com/gerardcl/renfe-cli.git && cd renfe-cli\n$ python -m venv .venv\n$ . .venv/bin/activate\n$ pip install -U pip\n$ pip install -U maturin\n$ maturin develop\n\ud83d\udd17 Found pyo3 bindings with abi3 support for Python \u2265 3.7\n\ud83d\udc0d Not using a specific python interpreter\n\ud83d\udce1 Using build options features from pyproject.toml\n   Compiling renfe-cli v5.1.0 (/path/to/renfe-cli)\n    Finished dev [unoptimized + debuginfo] target(s) in 7.07s\n\ud83d\udce6 Built wheel for abi3 Python \u2265 3.7 to /tmp/.tmpDsjowL/renfe_cli-5.1.0-cp37-abi3-linux_x86_64.whl\n\ud83d\udee0 Installed renfe-cli-5.1.0\n```\n\nMaturin takes care of compiling the rust code, generating the bindings for python and installing the package for local use (as library or binary/CLI).\n\n",
    "bugtrack_url": null,
    "license": "BSD-3-Clause",
    "summary": "Get faster Renfe Spanish Trains timetables in your terminal.",
    "version": "5.2.0",
    "project_urls": {
        "Changelog": "https://github.com/gerardcl/renfe-cli/blob/master/CHANGELOG.md",
        "Documentation": "https://github.com/gerardcl/renfe-cli",
        "Homepage": "https://github.com/gerardcl/renfe-cli",
        "Issues": "https://github.com/gerardcl/renfe-cli/issues",
        "Repository": "https://github.com/gerardcl/renfe-cli"
    },
    "split_keywords": [
        "timetables",
        " schedules",
        " trains",
        " renfe",
        " cli",
        " rust",
        " python",
        " pyo3",
        " maturin"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ba12d5cac8bbde9a1cfa3c6c67cf3a521380484c838cc36ac75a6458423eaf69",
                "md5": "ad5a7e512ef29ead4e44bea89d4d0104",
                "sha256": "b022ff23995db6a27d7bcb7a558e4acd0c35bc2105847cc59ec9b85195a490cc"
            },
            "downloads": -1,
            "filename": "renfe_cli-5.2.0-cp37-abi3-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ad5a7e512ef29ead4e44bea89d4d0104",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.8",
            "size": 2175637,
            "upload_time": "2024-10-03T19:13:05",
            "upload_time_iso_8601": "2024-10-03T19:13:05.428592Z",
            "url": "https://files.pythonhosted.org/packages/ba/12/d5cac8bbde9a1cfa3c6c67cf3a521380484c838cc36ac75a6458423eaf69/renfe_cli-5.2.0-cp37-abi3-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0e52eecec2257aeae7e90afc5bdfb857a777aaa655008155bf2d82c314949485",
                "md5": "82da23d6a2194cd612366b1f6202bb14",
                "sha256": "3108ce64d323248364c8fd7fc80a46be9601c27bc5610c93168da08294332c2d"
            },
            "downloads": -1,
            "filename": "renfe_cli-5.2.0-cp37-abi3-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "82da23d6a2194cd612366b1f6202bb14",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.8",
            "size": 2044975,
            "upload_time": "2024-10-03T19:13:02",
            "upload_time_iso_8601": "2024-10-03T19:13:02.925430Z",
            "url": "https://files.pythonhosted.org/packages/0e/52/eecec2257aeae7e90afc5bdfb857a777aaa655008155bf2d82c314949485/renfe_cli-5.2.0-cp37-abi3-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7ccdaab7cba013872e58cd65834914e8f88c0bb313ae68d6305aaa958cc8659b",
                "md5": "d957b040511f4bd29a5b5f3915f45e0a",
                "sha256": "a60b2691df4a529930f91e239fefda1ea8922ba7b442e7804ed1c9a09c7f4bf2"
            },
            "downloads": -1,
            "filename": "renfe_cli-5.2.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "d957b040511f4bd29a5b5f3915f45e0a",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.8",
            "size": 2171624,
            "upload_time": "2024-10-03T19:12:51",
            "upload_time_iso_8601": "2024-10-03T19:12:51.785042Z",
            "url": "https://files.pythonhosted.org/packages/7c/cd/aab7cba013872e58cd65834914e8f88c0bb313ae68d6305aaa958cc8659b/renfe_cli-5.2.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "415f338fb014a3005b4696e732999e09de7eb572ab54462c9b95f79788971172",
                "md5": "1599b367f252601a5651e0436d0e9b59",
                "sha256": "00437fc58f8d6e8fc371f8c038248c8b5716057283fd76bc0bb6d4309712d4f6"
            },
            "downloads": -1,
            "filename": "renfe_cli-5.2.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "1599b367f252601a5651e0436d0e9b59",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.8",
            "size": 2340734,
            "upload_time": "2024-10-03T19:12:58",
            "upload_time_iso_8601": "2024-10-03T19:12:58.657317Z",
            "url": "https://files.pythonhosted.org/packages/41/5f/338fb014a3005b4696e732999e09de7eb572ab54462c9b95f79788971172/renfe_cli-5.2.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f1e53e7e9b6680e89119703fdcdd0a26ae09fba44e933a78577d0ab92fcc0813",
                "md5": "48beb67b7ae1b254b9aa88913b83eb83",
                "sha256": "24d81127069bdd1f68208cbde84bdb91850456280605bc1c80d25b7197cd318c"
            },
            "downloads": -1,
            "filename": "renfe_cli-5.2.0-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "48beb67b7ae1b254b9aa88913b83eb83",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.8",
            "size": 2460715,
            "upload_time": "2024-10-03T19:12:53",
            "upload_time_iso_8601": "2024-10-03T19:12:53.872218Z",
            "url": "https://files.pythonhosted.org/packages/f1/e5/3e7e9b6680e89119703fdcdd0a26ae09fba44e933a78577d0ab92fcc0813/renfe_cli-5.2.0-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "756a43a551867dae7e7fa0d9afff1e0440bc9fd8f739ccfcf1fc3353384d0b4c",
                "md5": "9c4288de526ccb61f61ca21061c7073a",
                "sha256": "80e42a83cb1824cfe3e8dcf2df100241ccc4116161b5e186131b552c6f31363e"
            },
            "downloads": -1,
            "filename": "renfe_cli-5.2.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "9c4288de526ccb61f61ca21061c7073a",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.8",
            "size": 2394950,
            "upload_time": "2024-10-03T19:12:56",
            "upload_time_iso_8601": "2024-10-03T19:12:56.076392Z",
            "url": "https://files.pythonhosted.org/packages/75/6a/43a551867dae7e7fa0d9afff1e0440bc9fd8f739ccfcf1fc3353384d0b4c/renfe_cli-5.2.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "92dd5787a417b471a7796d4f3c70f81c5ecbff23269ca652f8b4881f42433e60",
                "md5": "dec70ffc40d9bb7a1afa9f69bcd549d0",
                "sha256": "c1d58e95116d415e851f2191648ac03e96e07c353a026a485e7fec05f7fe8e81"
            },
            "downloads": -1,
            "filename": "renfe_cli-5.2.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "dec70ffc40d9bb7a1afa9f69bcd549d0",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.8",
            "size": 2382113,
            "upload_time": "2024-10-03T19:13:00",
            "upload_time_iso_8601": "2024-10-03T19:13:00.839627Z",
            "url": "https://files.pythonhosted.org/packages/92/dd/5787a417b471a7796d4f3c70f81c5ecbff23269ca652f8b4881f42433e60/renfe_cli-5.2.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4269ff39db9ae1f72d97a3e715499b188c51623e16e009227e37b0cc0fe6fa25",
                "md5": "a5650128c7ecbe809e5b82836dce83cb",
                "sha256": "9c8aa2717148cea77cf5d419c93deef87f3fdd650a2f826c64b8a8a0b77b8882"
            },
            "downloads": -1,
            "filename": "renfe_cli-5.2.0-cp37-abi3-musllinux_1_2_armv7l.whl",
            "has_sig": false,
            "md5_digest": "a5650128c7ecbe809e5b82836dce83cb",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.8",
            "size": 2402549,
            "upload_time": "2024-10-03T19:13:07",
            "upload_time_iso_8601": "2024-10-03T19:13:07.758028Z",
            "url": "https://files.pythonhosted.org/packages/42/69/ff39db9ae1f72d97a3e715499b188c51623e16e009227e37b0cc0fe6fa25/renfe_cli-5.2.0-cp37-abi3-musllinux_1_2_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e653f579b6c05deac098c0e5f09bec5460f7c0caaa9f83f90af148f06a94bdba",
                "md5": "d8650474b4dd0d04a370f5a99f42ff20",
                "sha256": "f80bc1d343d19fdb907b5bf3f8101e30dc98c555f9476d65b8eb9e1f62fae386"
            },
            "downloads": -1,
            "filename": "renfe_cli-5.2.0-cp37-abi3-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "d8650474b4dd0d04a370f5a99f42ff20",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.8",
            "size": 2404767,
            "upload_time": "2024-10-03T19:13:10",
            "upload_time_iso_8601": "2024-10-03T19:13:10.358343Z",
            "url": "https://files.pythonhosted.org/packages/e6/53/f579b6c05deac098c0e5f09bec5460f7c0caaa9f83f90af148f06a94bdba/renfe_cli-5.2.0-cp37-abi3-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "81dab3c0b81aa206d9579f499fad211c5644449a7bc36757efa396e2347c7777",
                "md5": "32affab774630994f072ada4fbd175c1",
                "sha256": "37f3806db7ba5fd8f824732b494ac71ff66aa703159195bb8b42cd38a7fee650"
            },
            "downloads": -1,
            "filename": "renfe_cli-5.2.0-cp37-abi3-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "32affab774630994f072ada4fbd175c1",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.8",
            "size": 2538243,
            "upload_time": "2024-10-03T19:17:21",
            "upload_time_iso_8601": "2024-10-03T19:17:21.216030Z",
            "url": "https://files.pythonhosted.org/packages/81/da/b3c0b81aa206d9579f499fad211c5644449a7bc36757efa396e2347c7777/renfe_cli-5.2.0-cp37-abi3-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3f7cc3861573ca419d508b12efbdbf5d8ceed6f2265fb0b299744b2849b49a8f",
                "md5": "bcad9e54ef4a3d4d176f6941cd5f68a3",
                "sha256": "45b293fb337ef5b564cca145fe0e76c02ec8fd6fe83d4f28b557be51db750309"
            },
            "downloads": -1,
            "filename": "renfe_cli-5.2.0-cp37-abi3-win32.whl",
            "has_sig": false,
            "md5_digest": "bcad9e54ef4a3d4d176f6941cd5f68a3",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.8",
            "size": 1663745,
            "upload_time": "2024-10-03T19:17:27",
            "upload_time_iso_8601": "2024-10-03T19:17:27.107579Z",
            "url": "https://files.pythonhosted.org/packages/3f/7c/c3861573ca419d508b12efbdbf5d8ceed6f2265fb0b299744b2849b49a8f/renfe_cli-5.2.0-cp37-abi3-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cde1341aac5e7d60f1f4e485b4d1246916cbb7d49eb0d0f6aa6fba588ef078ed",
                "md5": "f3590f0a1f0101aa6424e63ffbf9b073",
                "sha256": "e57ab17c293f70737132a88c6f8fb273241e3207e41168b08f8532406911a506"
            },
            "downloads": -1,
            "filename": "renfe_cli-5.2.0-cp37-abi3-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "f3590f0a1f0101aa6424e63ffbf9b073",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.8",
            "size": 1961390,
            "upload_time": "2024-10-03T19:17:24",
            "upload_time_iso_8601": "2024-10-03T19:17:24.974722Z",
            "url": "https://files.pythonhosted.org/packages/cd/e1/341aac5e7d60f1f4e485b4d1246916cbb7d49eb0d0f6aa6fba588ef078ed/renfe_cli-5.2.0-cp37-abi3-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f158c351f0b44a3100bba70f8fdf23b1ab29f30560beff1527813aa049b1fd0a",
                "md5": "540770aa850b821d7daa18b280797b10",
                "sha256": "236227f9cacdd4f0899ac846085de3b0603bd0dbb19776484974022e92ff5077"
            },
            "downloads": -1,
            "filename": "renfe_cli-5.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "540770aa850b821d7daa18b280797b10",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 24437,
            "upload_time": "2024-10-03T19:17:22",
            "upload_time_iso_8601": "2024-10-03T19:17:22.834885Z",
            "url": "https://files.pythonhosted.org/packages/f1/58/c351f0b44a3100bba70f8fdf23b1ab29f30560beff1527813aa049b1fd0a/renfe_cli-5.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-03 19:17:22",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "gerardcl",
    "github_project": "renfe-cli",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "renfe-cli"
}
        
Elapsed time: 2.38510s