Over a million developers have joined DZone.

Introducing Bulbs for Python

DZone's Guide to

Introducing Bulbs for Python

· Web Dev Zone ·
Free Resource

Classify programming languages: Build a model that predicts a code's programming language based on its text.  Content provided by IBM Developer. 

In the process of developing Whybase, a startup debuting this fall,  developer James Thornton needed a persistence layer to model Whybase's complex relationships, and from that need came Bulbs, the open-sourced version of said framework.

Bulbs is an open-source Python persistence framework for graph databases and the first piece of a larger Web-development toolkit that will be released in the upcoming weeks.  It’s like an ORM for graphs, but instead of SQL, you use the graph-traveral language Gremlin to query the database.

-- James Thornton

Essentially, this allows you to take your code anywhere, since you no longer have to worry about vendor lock in.

Thornton provides a couple code examples on how to model and create domain objects:

Model Domain Objects

from bulbs.model import Node
from bulbs.datatype import Property, String
class Idea(Node):

    element_type = "idea"

    text = Property(String, nullable=False)
    stub = Property(String,"make_stub")

    def make_stub(self):
        return utils.create_stub(self.text)
    def after_created(self):

Create Domain Objects

>>> from whybase.idea import Idea
>>> idea = Idea(text="the key to life is perspective")
>>> idea.eid
>>> 8
>>> idea.text
'the key to life is perspetive'
>>> idea.stub

There's even this cool video by Gremlin creator, Marko Rodriguez:

So why take the time to create these graphs?  As Thornton puts it:

Graphs are a much more elegant way of storing relational data. Graphs are a fundamental data structure in computer science, and with graph databases you don’t have to mess with tables or joins – everything is explicitly joined.

--James Thornton

Bulbs is currently available for download here, and as previously mentioned, this is just the beginning of a much larger Web-Development toolkit that will be here soon.

Start coding something amazing with our library of open source Cloud code patterns. Content provided by IBM.


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}