Forum Programmation.python lib de relation entre objets

Posté par . Licence CC by-sa
Tags : aucun
1
5
déc.
2013

Bonjour,

je cherche une librairie python qui me permettrait d'établir des relations de type (one to one, many to one…) entre objets de façon simple.
Je NE veux PAS d'une liaison avec une base de donnée (donc pas de sqlalchemy et consort).

Merci pour vos conseils.

Matt

  • # Heu.. un dict ?

    Posté par (page perso) . Évalué à 5.

    Je vais peut-être dire une bêtise (en même temps ta demande est relativement vague) mais un simple dictionnaire ne fait pas l'affaire ?

    relations = {}
    
    def is_in_relation(a, b):
        return b in relations.get(a, set())
    
    def add_relation(a, b):
        relations.setdefault(a, set()).add(b)

    À moins que tu veuilles savoir le type de relation qu'il peut y avoir:

    relations = {}
    
    def get_relation_type(a, b):
        return relations.get((a,b), None)
    
    def set_relation_type(a, b, type):
        relations[(a,b)] = type

    Matthieu Gautier|irc:starmad

    • [^] # Re: Heu.. un dict ?

      Posté par . Évalué à 1.

      En effet c'est très vague. Et c'est sans doute que mes besoins ne sont pas encore très clairs dans ma tête.
      Désolé de t'avoir fait perdre du temps, je reviendrais peut être avec une demande plus précise.

  • # Mapping type SQLAlchemy mais sans base ?

    Posté par (page perso) . Évalué à 2.

    Si ce que tu recherches c'est à faire un mapping type SQLAlchemy mais sans base de données, est-ce qu'un mapping avec une base sqlite en mémoire ne conviendrait pas ? Ca te permettra d'utiliser le mapping et de ne pas te préoccuper de la base de données.

    • [^] # Re: Mapping type SQLAlchemy mais sans base ?

      Posté par . Évalué à 1.

      Oui, j'avais pensé à ça mais ça m'oblige quand même à déclarer mes types "en SQL".
      Je pense que je vais me rabattre sur une solution maison.

      • [^] # Re: Mapping type SQLAlchemy mais sans base ?

        Posté par (page perso) . Évalué à 2.

        Qu'entends tu par "en SQL" ? Et si tu développais un backend "dummy" pour SQLAlchemy ? Hm… est-ce que par "en SQL" tu veux dire genre les types "Varchar", "Blob", etc ?

        • [^] # Re: Mapping type SQLAlchemy mais sans base ?

          Posté par . Évalué à 1.

          >>> from sqlalchemy import Column, Integer, String
          >>> class User(Base):
          ...     __tablename__ = 'users'
          ...
          ...     id = Column(Integer, primary_key=True)
          ...     name = Column(String)
          ...     fullname = Column(String)
          ...     password = Column(String)
          ...
          ...     def __init__(self, name, fullname, password):
          ...         self.name = name
          ...         self.fullname = fullname
          ...         self.password = password
          ...
          ...     def __repr__(self):
          ...        return "<User('%s','%s', '%s')>" % (self.name, self.fullname, self.password)
          

          Dans cet exemple, toute la partie tablename et ce qui suit immédiatement ne m’intéresse pas.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.