A few months ago, I had a look to the Apache Cassandra project (
http://cassandra.apache.org/), contributed by Facebook, and the Thrift API (
http://thrift.apache.org/). It seems to be an interesting way to design and
deploy distributed databases seamlessly accessible from python. Do anyone
have experimented it?

2010/12/29 Dave Cowden <dave.cow...@gmail.com>

> I think that a distributed repository infrastructure is what's needed
> for robust sharing of objects and model data.  For sure, such
> repositories would likely be based on a database-- but the repo would
> need to expose crud ( create read update delete) functions via http,
> so it is firwall and internet friendly.
>
> On 12/29/10, jelle feringa <jelleferi...@gmail.com> wrote:
> > Hi,
> >
> > Recently I had enough of storing OCC's cad as files.
> > Sometimes all you need is a database.
> > Turns out that its really easy to do so. Perhaps its worth sharing how
> this
> > can be done...
> > Though this might be pretty trivial technically speaking, it can open up
> > interesting ways of collaborating on projects.
> >
> > -jelle
> >
> >
> > ================================================
> > from OCC.Utils.Topology import Topo
> >
> > __author__ = 'jdf'
> >
> >
> > from sqlalchemy import *
> > from sqlalchemy.ext.declarative import declarative_base
> > from sqlalchemy.orm import sessionmaker, scoped_session
> >
> > from OCC.Utils.Construct import make_cube
> > #from OCC.TopoDS import TopoDS_Shape
> > #
> > #TopoDS_Shape.__eq__ = lambda x: TopoDS_Shape.IsEqual(x)
> >
> > cube = make_cube(1,1,1)
> >
> > engine = create_engine('sqlite:///jelle.db')
> > Base = declarative_base(bind=engine)
> > Session = scoped_session(sessionmaker(engine))
> >
> > def comp_brep(brepA, brepB):
> >     import ipdb; ipdb.set_trace()
> >     print 'jajajaj',brepB, brepA
> >     return brepA.IsEqual(brepB)
> >
> > class Individual(Base):
> >     '''used to store data about an individual
> >     a row forms a generation
> >     '''
> >     __tablename__ = 'individual'
> >
> >     id = Column(Integer, primary_key=True)
> >     #name = Column(String)
> >     #fullname = Column(String)
> >     #password = Column(String)
> >     generation = Column(Integer)
> >     ancestor_a = Column(PickleType())
> >     ancestor_b = Column(PickleType())
> >     brep = Column(PickleType(mutable=False)) #comparator=comp_brep)) #) )
> >     fitness = Column(Float)
> >
> > Base.metadata.create_all()
> >
> >
> > indy = Individual()
> > indy.ancestor_a = 'parent_a'
> > indy.fitness = 12.
> > indy.ancestor_b = 'parent_a'
> > indy.generation = 1
> > #indy.id = 0
> > indy.brep = cube
> >
> > '''
> > to INSERT many rows very quickly, use the "executemany" style of
> > insertion:
> >
> >
> > connection.execute(table.insert(), [{'foo':'row1'}, {'foo':'row2'},
> > {'foo':'row3'}, ...])
> > '''
> >
> > s = Session()
> > # s.begin()
> > s.add(indy)
> > s.commit()
> > s.close()
> >
> > print('closed the previous db session\nlet\'s see if we can read back the
> > objects, that be cool...')
> >
> > engine = create_engine('sqlite:///jelle.db', echo=True)
> > Base = declarative_base(bind=engine)
> > Session = scoped_session(sessionmaker(engine))
> > s = Session()
> >
> > from OCC.BRep import BRep_Tool
> > bt = BRep_Tool().Pnt
> >
> > for indy in s.query(Individual):
> > print indy.id
> > for i in Topo(indy.brep).vertices():
> >     print bt(i).Coord()
> > ================================================
> >
>
> --
> Sent from my mobile device
>
> _______________________________________________
> Pythonocc-users mailing list
> Pythonocc-users@gna.org
> https://mail.gna.org/listinfo/pythonocc-users
>
_______________________________________________
Pythonocc-users mailing list
Pythonocc-users@gna.org
https://mail.gna.org/listinfo/pythonocc-users

Reply via email to