Example #1
0
 def inject_into(self, stream):
     stream.set_protocol(cl1.LINE_BASED_PROTOCOL)
     stream.inject_packets([
         Header(),
         ReferenceSectionHeader(),
         Title('Title'),
         Creator('Creator'),
         Created('Timestamp'),
         Place('Place'),
         MetaSectionHeader('My Section'),
         KeyValue('x', '1.3'),
         KeyValue('important parameter', r'\eta = 1.24e-9 mW'),
         TableDefinitionsHeader(),
         KeyValue('table1', 't_1'),
         KeyValue('table2', 't_2'),
         DataDefinitionsHeader('t_1'),
         KeyValue('distance', 'd [m]'),
         KeyValue('time', 't [s]'),
         DataHeader('t_1'),
         Comment('d    t'),
         DataRow(("2.3", "4.555")),
         DataRow(("1.2", "4.15")),
         DataDefinitionsHeader('t_2'),
         KeyValue('Energy', 'E [J]'),
         KeyValue('distance', 'd [m]'),
         DataHeader('t_2'),
     ] + columns2rows((
         DataColumn(("1.2", "1.3", "1.5", "1.6")),
         DataColumn(("2.2", "2.3", "2.5", "2.6")),
     )) + [END_FMF])
Example #2
0
 def inject_into(self, stream):
     stream.set_protocol(cl1.LINE_BASED_PROTOCOL)
     stream.inject_packets(
         [
             Header(),
             ReferenceSectionHeader(),
             Title('Title'),
             Creator('Creator'),
             Created('Timestamp'),
             Place('Place'),
             MetaSectionHeader('My Section'),
             KeyValue('x', '1.3'),
             KeyValue('important parameter', r'\eta = 1.24e-9 mW'),
             TableDefinitionsHeader(),
             KeyValue('table1', 't_1'),
             KeyValue('table2', 't_2'),
             DataDefinitionsHeader('t_1'),
             KeyValue('distance', 'd [m]'),
             KeyValue('time', 't [s]'),
             DataHeader('t_1'),
             Comment('d    t'),
             DataRow(("2.3", "4.555")),
             DataRow(("1.2", "4.15")),
             DataDefinitionsHeader('t_2'),
             KeyValue('Energy', 'E [J]'),
             KeyValue('distance', 'd [m]'),
             DataHeader('t_2'),
             ] + columns2rows(
             (
                 DataColumn(("1.2", "1.3", "1.5", "1.6")),
                 DataColumn(("2.2", "2.3", "2.5", "2.6")),
                 )
             ) + [END_FMF]
         )
Example #3
0
def test_create_data_from_columns():
    # DataColumn accepts any iterable with string elements
    Data(
        symbol="TDM_1",
        entries=[Comment("t / s    s(t) / m"), Comment("here be columns")]
        + columns2rows((DataColumn(("0", "1.1", "2.0", "2.9")), DataColumn(("-2", "0.1", "3.1", "4.5"))))
        + [Comment("here be rows"), DataRow(("3.2", "6.7"))],  # we can mix rows and columns
    )
Example #4
0
def test_create_data_from_columns():
    # DataColumn accepts any iterable with string elements
    Data(
        symbol='TDM_1',
        entries=[
            Comment('t / s    s(t) / m'),
            Comment('here be columns'),
        ] + columns2rows((DataColumn(
            ('0', '1.1', '2.0', '2.9')), DataColumn(
                ('-2', '0.1', '3.1', '4.5')))) + [
                    Comment('here be rows'),
                    DataRow(('3.2', '6.7'))  # we can mix rows and columns
                ])
Example #5
0
def test_whole_fmf_raw_protocol(lstream):

    lstream.inject_packets(
        [
            Header(),

            Comment('A comment'),

            SectionHeader('*reference'),
            KeyValue('title', 'Title'),
            KeyValue('creator', 'Creator'),
            KeyValue('created', 'Timestamp'),
            KeyValue('place', 'Place'),

            SectionHeader('My Section'),
            KeyValue('x', '1.3'),
            KeyValue('important parameter', r'\eta = 1.24e-9 mW'),

            SectionHeader('*table definitions'),

            KeyValue('table1', 't_1'),
            KeyValue('table2', 't_2'),

            SectionHeader('*data definitions: t_1'),
            KeyValue('distance', 'd [m]'),
            KeyValue('time', 't [s]'),

            SectionHeader('*data: t_1'),
            Comment('d    t'),
            DataRow(("2.3", "4.555")),
            DataRow(("1.2", "4.15")),

            SectionHeader('*data definitions: t_2'),
            KeyValue('Energy', 'E [J]'),
            KeyValue('distance', 'd [m]'),

            SectionHeader('*data: t_2')
            ]
        )

    lstream.inject_packets(
        cl1.columns2rows(
            (
                cl1.DataColumn(("1.2", "1.3", "1.5", "1.6")),
                cl1.DataColumn(("2.2", "2.3", "2.5", "2.6"))
                )
            )
        )

    lstream.inject_packet(END_FMF)
Example #6
0
def test_whole_fmf(lstream):
    lstream.inject_packets(
        [
            Header(),

            ReferenceSectionHeader(),
            Title('Title'),
            Creator('Creator'),
            Created('Timestamp'),
            Place('Place'),

            MetaSectionHeader('My Section'),
            KeyValue('x', '1.3'),
            KeyValue('important parameter', r'\eta = 1.24e-9 mW'),

            TableDefinitionsHeader(),
            KeyValue('table1', 't_1'),
            KeyValue('table2', 't_2'),

            DataDefinitionsHeader('t_1'),
            KeyValue('distance', 'd [m]'),
            KeyValue('time', 't [s]'),

            DataHeader('t_1'),
            Comment('d    t'),
            DataRow(("2.3", "4.555")),
            DataRow(("1.2", "4.15")),

            DataDefinitionsHeader('t_2'),
            KeyValue('Energy', 'E [J]'),
            KeyValue('distance', 'd [m]'),

            DataHeader('t_2')
            ]
        )
    lstream.inject_packets(
        columns2rows(
            (
                DataColumn(("1.2", "1.3", "1.5", "1.6")),
                DataColumn(("2.2", "2.3", "2.5", "2.6"))
                )
            ) + [END_FMF]
        )
Example #7
0
def test_inject_tables(lhrstream):
    lhrstream.inject_packets(
        [
            TableDefinitionsHeader(),
            KeyValue('table1', 't_1'),
            KeyValue('table2', 't_2'),

            DataDefinitionsHeader('t_1'),
            KeyValue('distance', 'd [m]'),
            KeyValue('time', 't [s]'),

            DataHeader('t_1'),
            Comment('d    t'),
            DataRow(("2.3", "4.555")),
            DataRow(("1.2", "4.15")),

            DataDefinitionsHeader('t_2'),
            KeyValue('Energy', 'E [J]'),
            KeyValue('distance', 'd [m]'),

    # data streaming examples:
    # ------------------------

            DataHeader('t_2'),
            DataRow(("2.3", "1.33")),
            DataRow(["100.2", "44.2"]),

            format_data_row((2.3, 4.555), lambda x: '%.2f' % (x, ))
            ]
        )
    # Stream columns that are all known at a time.
    # For sequential streaming see test_column_data_protocol.py
    lhrstream.inject_packets(
        cl1.columns2rows(
            (
                cl1.DataColumn(("1.0", "3.4", "5.2")),
                cl1.DataColumn(("2.0", "2.4", "2.2")),
                )
            )
        )

    # stream nested iterable
    lhrstream.inject_packets(
        cl1.rowmajor2rows(
            (
                ('0', '-2'),
                ('1.1', '0.1'),
                ('2.0', '3.1'),
                ('2.9', '4.5')
                )
            )
        )

    # use a formatter:
    lhrstream.inject_packets(
        cl1.columnmajor2rows(
            (
                (0, 1.1, 2.0, 2.9),
                (-2, 0.1, 3.1, 4.5)
                ),
            formatter=lambda x: '%.2f' % (x, )
            )
        )