Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ajout d'un binding Python pour Transit Model #962

Open
wants to merge 17 commits into
base: master
Choose a base branch
from

Conversation

princefr
Copy link

@princefr princefr commented Jan 23, 2025

Description

Cette PR introduit un binding Python pour Transit Model en utilisant pyo3. L'objectif est de permettre à Kirin de récupérer directement les données de Transit Model sans passer par Navitia, afin d'améliorer les performances.

Changements principaux :

  • Implémentation de la classe PythonTransitModel exposant des méthodes pour récupérer des informations sur :
    • Les lignes passant par un arrêt
    • Les contributeurs de données
    • Les réseaux utilisant un arrêt
    • Le nom d'une zone d'arrêt
    • Le nom d'un vehicle journey
  • Ajout de tests unitaires basés sur un jeu de données de test minimal.

⚡️ Comment tester cette PR ?

1️⃣ Compilation du module

Assurez-vous d’avoir Rust et maturin installés, puis exécutez :

python3 -m venv .venv
source .venv/bin/activate
pip install maturin
maturin develop
python python_test.py

Cela installera le module Python en local pour le tester.

2️⃣ Lancement des tests unitaires

Vous pouvez exécuter les tests via cargo :

cargo test

Ou directement en Python après installation du module :

pytest

3️⃣ Utilisation interactive

Après installation, testez le module en Python :

from transit_model_python import PythonTransitModel

# Charger un modèle NTFS
model = PythonTransitModel("chemin/vers/ntfs")

# Tester les méthodes
print(model.get_lines("M1"))  # Devrait retourner les lignes passant par l'arrêt "M1"
print(model.get_stop_area_by_id("GDL"))  # Devrait afficher "Gare de Lyon"

📌 Points d'attention :

  • Vérifier si le portage fonctionne correctement avec des jeux de données réels et si il faut rajouter d'autres méthodes d’intérêt.
  • Tester les performances pour comparer avec les appels Navitia.

🚀 Merci pour votre revue !

@princefr princefr requested review from datanel and kadhikari January 23, 2025 07:57
@princefr princefr requested a review from patochectp January 23, 2025 08:41
@datanel
Copy link
Member

datanel commented Jan 29, 2025

Je viens juste de voir la pull request.
Je testerai ça quand j'aurai un moment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants