def main(): setup_session(sys.argv[1]) icons = {} frequencies = {} with transaction.manager: for valueset in DBSession.query(common.ValueSet).options( joinedload(common.ValueSet.parameter), joinedload_all(common.ValueSet.values, common.Value.domainelement) ): values = sorted(list(valueset.values), key=lambda v: v.domainelement.number) try: assert abs(sum(v.frequency for v in values) - 100) < 1 except AssertionError: print valueset.name print [v.frequency for v in valueset.values] raise fracs = [] colors = [] for v in values: color = v.domainelement.jsondata["color"] frequency = round(v.frequency) assert frequency if frequency not in frequencies: figure(figsize=(0.4, 0.4)) axes([0.1, 0.1, 0.8, 0.8]) coll = pie((int(100 - frequency), frequency), colors=("w", "k")) coll[0][0].set_linewidth(0.5) save("freq-%s" % frequency) frequencies[frequency] = True v.jsondata = {"frequency_icon": "freq-%s.png" % frequency} fracs.append(frequency) colors.append(color) v.domainelement.jsondata = {"color": color, "icon": "pie-100-%s.png" % color} assert len(colors) == len(set(colors)) fracs, colors = tuple(fracs), tuple(colors) basename = "pie-" basename += "-".join("%s-%s" % (f, c) for f, c in zip(fracs, colors)) valueset.jsondata = {"icon": basename + ".png"} if (fracs, colors) not in icons: figure(figsize=(0.4, 0.4)) axes([0.1, 0.1, 0.8, 0.8]) coll = pie(tuple(reversed(fracs)), colors=["#" + _color for _color in reversed(colors)]) for wedge in coll[0]: wedge.set_linewidth(0.5) save(basename) icons[(fracs, colors)] = True
def test_setup_session(self): from clld.scripts.util import setup_session res = setup_session( '%s#main' % TESTS_DIR.joinpath('test.ini').as_posix(), create_engine('sqlite://')) self.assertEquals(res, 'tests')
def test_setup_session(testsdir): from clld.scripts.util import setup_session res = setup_session( '%s#main' % (testsdir / 'test.ini').as_posix(), create_engine('sqlite://')) assert res == 'tests'
def with_session(args): setup_session(args.pkg_dir.parent.joinpath('development.ini').as_posix())
def test_setup_session(testsdir): from clld.scripts.util import setup_session res = setup_session('%s#main' % (testsdir / 'test.ini').as_posix(), create_engine('sqlite://')) assert res == 'tests'
def main(): setup_session(sys.argv[1]) icons = {} frequencies = {} with transaction.manager: for valueset in DBSession.query(common.ValueSet).options( joinedload(common.ValueSet.parameter), joinedload_all(common.ValueSet.values, common.Value.domainelement)): values = sorted(list(valueset.values), key=lambda v: v.domainelement.number) try: assert abs(sum(v.frequency for v in values) - 100) < 1 except AssertionError: print valueset.name print[v.frequency for v in valueset.values] raise fracs = [] colors = [] for v in values: color = v.domainelement.jsondata['color'] frequency = round(v.frequency) assert frequency if frequency not in frequencies: figure(figsize=(0.4, 0.4)) axes([0.1, 0.1, 0.8, 0.8]) coll = pie((int(100 - frequency), frequency), colors=('w', 'k')) coll[0][0].set_linewidth(0.5) save('freq-%s' % frequency) frequencies[frequency] = True v.jsondata = {'frequency_icon': 'freq-%s.png' % frequency} fracs.append(frequency) colors.append(color) v.domainelement.jsondata = { 'color': color, 'icon': 'pie-100-%s.png' % color } assert len(colors) == len(set(colors)) fracs, colors = tuple(fracs), tuple(colors) basename = 'pie-' basename += '-'.join('%s-%s' % (f, c) for f, c in zip(fracs, colors)) valueset.jsondata = {'icon': basename + '.png'} if (fracs, colors) not in icons: figure(figsize=(0.4, 0.4)) axes([0.1, 0.1, 0.8, 0.8]) coll = pie( tuple(reversed(fracs)), colors=['#' + _color for _color in reversed(colors)]) for wedge in coll[0]: wedge.set_linewidth(0.5) save(basename) icons[(fracs, colors)] = True
def with_session(args): setup_session(str(args.pkg_dir.parent.joinpath('development.ini')))
def test_setup_session(testsdir): from clld.scripts.util import setup_session res = setup_session('{0}#main'.format(testsdir / 'test.ini'), create_engine('sqlite://')) assert res == 'tests'