Example #1
0
    def test_simplify(self):
        """Simplification of attribute reference (with and without details)"""

        level = cubes.Level("name", attributes=["name"])
        dim = cubes.Dimension("group", levels=[level])
        attr = dim.attribute("name")
        self.assertEqual("name", attr.name)
        self.assertEqual("name", str(attr))
        self.assertEqual("group", attr.ref())
        self.assertEqual("group.name", attr.ref(simplify=False))
        self.assertEqual("group", attr.ref(simplify=True))

        level = cubes.Level("name", attributes=["key", "name"])
        dim = cubes.Dimension("group", levels=[level])
        attr = dim.attribute("name")
        self.assertEqual("name", attr.name)
        self.assertEqual("name", str(attr))
        self.assertEqual("group.name", attr.ref())
        self.assertEqual("group.name", attr.ref(simplify=False))
        self.assertEqual("group.name", attr.ref(simplify=True))
Example #2
0
 def setUp(self):
     self.levels = [
         cubes.Level("year", attributes=["year"]),
         cubes.Level("month",
                     attributes=["month", "month_name", "month_sname"]),
         cubes.Level("day", attributes=["day"]),
         cubes.Level("week", attributes=["week"])
     ]
     self.level_names = [level.name for level in self.levels]
     self.dimension = cubes.Dimension("date", levels=self.levels)
     self.hierarchy = cubes.Hierarchy("default", ["year", "month", "day"],
                                      self.dimension)
Example #3
0
    def test_coalesce_attribute(self):
        """Coalesce attribute object (string or Attribute instance)"""

        level = cubes.Level("name", attributes=["key", "name"])
        dim = cubes.Dimension("group", levels=[level])

        obj = cubes.coalesce_attribute("name")
        self.assertIsInstance(obj, cubes.Attribute)
        self.assertEqual("name", obj.name)

        obj = cubes.coalesce_attribute({"name": "key"}, dim)
        self.assertIsInstance(obj, cubes.Attribute)
        self.assertEqual("key", obj.name)
        self.assertEqual(dim, obj.dimension)

        attr = dim.attribute("key")
        obj = cubes.coalesce_attribute(attr)
        self.assertIsInstance(obj, cubes.Attribute)
        self.assertEqual("key", obj.name)
        self.assertEqual(obj, attr)
Example #4
0
import sqlalchemy
import cubes
import cubes.tutorial.sql as tutorial

engine = sqlalchemy.create_engine('sqlite:///:memory:')
tutorial.create_table_from_csv(engine,
                               "IBRD_Balance_Sheet__FY2010.csv",
                               table_name="irbd_balance",
                               fields=[("category", "string"),
                                       ("line_item", "string"),
                                       ("year", "integer"),
                                       ("amount", "integer")],
                               create_id=True)

model = cubes.Model
model.add_dimension(cubes.Dimension("category"))
model.add_dimension(cubes.Dimension("line_item"))
model.add_dimension(cubes.Dimension("year"))

cube = cubes.Cube(name="irbd_balance",
                  model=model,
                  dimensions=["category", "line_item", "year"],
                  measures=["amount"])

browser = cubes.backends.sql.SQLBrowser(cube,
                                        engine.connect(),
                                        view_name="irbd_balance")

cell = browser.full_cube()
result = browser.aggregate(cell)