Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

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):
        Relationship.create(self,"created_by",current_user)


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
'the-key-to-life-is-perspective'


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.

Topics:

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}