In [17]:
# associate line numbers tro YAML import
import yaml
from yaml.composer import Composer
from yaml.constructor import Constructor

loader = yaml.Loader(open('/home/nima/Documents/mycode/multi/qascade/unit_test/test1/correct_read.yaml').read())
def compose_node(parent, index):
    # the line number where the previous token has ended (plus empty lines)
    line = loader.line
    node = Composer.compose_node(loader, parent, index)
    node.__line__ = line + 1
    return node
def construct_mapping(node, deep=False):
    mapping = Constructor.construct_mapping(loader, node, deep=deep)
    mapping['__line__'] = node.__line__
    return mapping
loader.compose_node = compose_node
loader.construct_mapping = construct_mapping
data = loader.get_single_data()
print(data)


{'__line__': 1, 'random.txt': {'common_c': 12.0, 'folderonlytablekey2 ': 'folderonlyValue2', 'folderonlytablekey1': 99.0, 'key2': 'value2', 'z': {'__line__': 34, 'y': {'__line__': 35, 'z': 99.0}}, 'common_a': 'c', 'istxtFile': True, 'onlytopFolder': True, 'common_d': 50.0, 'common_array': ['first', 'second'], '__line__': 19, 'secondFolderKey': 2.0, 'key1': 120.0, 's': {'__line__': 32, 'field2': 2.0, 'field3': 3.0, 'field4': 4.0, 'field1': 1.0}}, 'sub2/index.html': {'common_c': 5000.0, 'secondsub2FolderKey': 2.0, 'isDirectlyUnderSuFolder': True, 'onlysub2Folder': True, 'z': {'__line__': 82, 'y': {'__line__': 83, 'z': 99.0}}, 'common_a': 'c', '__line__': 70, 's': {'__line__': 79, 'field2': 2.0, 'field3': 3.0, 'field4': 4.0, 'field1': 1.0}, 'common_d': 'test', 'common_array': ['first', 'second'], 'sub2_bb': 'cc'}, 'matfile.m': {'common_c': 12.0, 'isMFileFromOnlyTop': True, 'folderonlytablekey1': 10000.0, 'key2': 'value3', 'z': {'__line__': 17, 'y': {'__line__': 18, 'z': 99.0}}, 'common_a': 'c', 'folderonlytablekey2 ': 'folderonlyValue3', 'isMFile': True, 'onlytopFolder': True, 'common_d': 50.0, 'common_array': ['first', 'second'], '__line__': 1, 'secondFolderKey': 2.0, 'key1': 10000.0, 's': {'__line__': 15, 'field2': 2.0, 'field3': 3.0, 'field4': 4.0, 'field1': 1.0}}, 'sub1/calculate_density_significance_of_many_dipoles_script.m': {'common_c': 'common_c_overwrite', 'isMFileFromSubFolder': True, 'isDirectlyUnderSuFolder': True, 'key2': 'value3', 'z': {'__line__': 56, 'y': {'__line__': 57, 'z': 99.0}}, 'common_a': 'c', '__line__': 37, 'isMFile': True, 's': {'__line__': 49, 'field5': 'fromTable5', 'field3': 'sometext', 'field1': 'fromTable1', 'field4': 4.0, 'field2': 2.0}, 'common_d': 50.0, 'common_array': ['first', 'second'], 'isMFileFromTable': 'true', 'sub1_aa': 'bb', 'key1': 10000.0}, 'sub2/group_normal/index2.htm': {'common_c': 5000.0, 'isUnderGroupFolder': True, 'z': {'__line__': 68, 'y': {'__line__': 69, 'z': 99.0}}, 'common_a': 'c', '__line__': 58, 's': {'__line__': 66, 'field2': 2.0, 'field3': 3.0, 'field4': 4.0, 'field1': 1.0}, 'common_d': 'test', 'common_array': ['first', 'second'], 'sub2_bb': 'cc'}, 'sub3/cfk.yaml': {'common_c': 12.0, 'isDirectlyUnderSuFolder': True, 'z': {'__line__': 93, 'y': {'__line__': 94, 'z': 99.0}}, 'common_a': 'c', '__line__': 84, 's': {'__line__': 92, 'field2': 2.0, 'field3': 3.0, 'field4': 4.0, 'field1': 1.0}, 'common_d': 50.0, 'common_array': ['first', 'second']}}

In [1]:
%load_ext autoreload

In [2]:
import sys
sys.path.append('/home/nima/Documents/mycode/multi/qascade/python')

In [3]:
import files_record

In [12]:
s = files_record.create_files_record('/home/nima/Documents/mycode/multi/qascade/unit_test/test3')

In [13]:
s


Out[13]:
{'file_contents': {'container/manifest.qsc.yaml': 'KG1hdGNoZXMgKi5tKToKICAgaXNNRmlsZUZyb21Ub3A6IHRydWUKCihtYXRjaGVzICouKik6CiAgIGlzTUZpbGVGcm9tVG9wOiBmYWxzZQo=',
  'container/sub1/manifest.qsc.yaml': 'KG1hdGNoZXMgKi5tKToKICAgaXNNRmlsZUZyb21Cb3R0b206IHRydWUKCihtYXRjaGVzICouKik6CiAgIGlzTUZpbGVGcm9tQm90dG9tOiBmYWxzZQo='},
 'filenames': ['container/sub1/manifest.qsc.yaml',
  'container/sub1/some_matlab_file.m',
  'container/matfile.m',
  'container/manifest.qsc.yaml']}

In [14]:
import qascade

In [15]:
files_dict_array = qascade.make_file_dicts(s)


Processing folder: container
folder:  /container,  folder (keys-value)s:  {"(matches *.*)": {"isMFileFromTop": false}, "(matches *.m)": {"isMFileFromTop": true}}



Processing folder: sub1
folder:  /container/sub1,  folder (keys-value)s:  {"(matches *.*)": {"isMFileFromBottom": false}, "(matches *.m)": {"isMFileFromBottom": true}}



In [16]:
files_dict_array


Out[16]:
{'manifest.qsc.yaml': [{'(matches *.*)': {'isMFileFromTop': False},
   '(matches *.m)': {'isMFileFromTop': True}},
  {'(matches *.*)': {'isMFileFromBottom': False},
   '(matches *.m)': {'isMFileFromBottom': True}}],
 'matfile.m': [{'(matches *.*)': {'isMFileFromTop': False},
   '(matches *.m)': {'isMFileFromTop': True}}],
 'some_matlab_file.m': [{'(matches *.*)': {'isMFileFromBottom': False},
   '(matches *.m)': {'isMFileFromBottom': True}}]}

In [9]:
print('First line \n Second line')


First line 
 Second line

In [9]:
qascade.files_and_folders(s,"/container")


Out[9]:
(['matfile.m', 'manifest.qsc.yaml', 'random.txt'], ['sub1', 'sub2', 'sub3'])

In [8]:
s


Out[8]:
{'file_contents': {'container/manifest.qsc.yaml': 'Y29tbW9uX2E6IGIKY29tbW9uX2M6IDEyCmNvbW1vbl9kOiA1MAoKKG1hdGNoZXMgKi5tKToKICAgaXNNRmlsZTogdHJ1ZQoKKG1hdGNoZXMgKi50eHQpOgogICBpc3R4dEZpbGU6IHRydWUKCihtYXRjaGVzIHN1Ki8pOgogICBpc0RpcmVjdGx5VW5kZXJTdUZvbGRlcjogdHJ1ZQoKKG1hdGNoZXMgc3UqLyoqKToKICAgaXNBbnl3aGVyZVVuZGVyU3VGb2xkZXI6IHRydWUKCihtYXRjaGVzIGdyb3VwXyovKToKICAgaXNVbmRlckdyb3VwRm9sZGVyOiB0cnVlCgpjb21tb25fYXJyYXk6CiAgIC0gZmlyc3QKICAgLSBzZWNvbmQKCmNvbW1vbl9hOiBjCgp6LnkuejogOTkKCnM6CiAgZmllbGQxOiAxCiAgZmllbGQyOiAyCiAgZmllbGQzOiAzCiAgZmllbGQ0OiA0CgoodGFibGUpOiB8CiAgICAgICAobWF0Y2hlcykJa2V5MQlrZXkyCiAgICAgICAqLnR4dAkxMjAJdmFsdWUyCiAgICAgICAqLm0JMTAwMDAJdmFsdWUzCgoobm8tc3ViZGlyKToKICBvbmx5dG9wRm9sZGVyOiB0cnVlCiAgc2Vjb25kRm9sZGVyS2V5OiAyCiAgKG1hdGNoZXMgKi5tKToKICAgICBpc01GaWxlRnJvbU9ubHlUb3A6IHRydWUKICAodGFibGUpOiB8CiAgICAgICAobWF0Y2hlcykJZm9sZGVyb25seXRhYmxla2V5MQlmb2xkZXJvbmx5dGFibGVrZXkyIAogICAgICAgKi50eHQJOTkJZm9sZGVyb25seVZhbHVlMgogICAgICAgKi5tCTEwMDAwCWZvbGRlcm9ubHlWYWx1ZTMK',
  'container/sub1/manifest.qsc.yaml': 'c3ViMV9hYTogYmIKY29tbW9uX2M6IGNvbW1vbl9jX292ZXJ3cml0ZQpzLmZpZWxkMTogCiAgIHN1YmZpZWxkOiA5OTk5CnMuZmllbGQzOiBzb21ldGV4dApzLmZpZWxkNC5zdWJmaWVsZDogdmFsdWUKY29tbW9uX2FycmF5Lm5ld2ZpZWxkOiAxCgoobWF0Y2hlcyAqLm0pOgogICAgIGlzTUZpbGVGcm9tU3ViRm9sZGVyOiB0cnVlCgoodGFibGUpOiB8CiAgICAobWF0Y2hlcykJcy5maWVsZDEJcy5maWVsZDUJaXNNRmlsZUZyb21UYWJsZQogICAgKi5tCWZyb21UYWJsZTEJZnJvbVRhYmxlNQl0cnVlCg==',
  'container/sub2/manifest.qsc.yaml': 'c3ViMl9iYjogY2MKY29tbW9uX2M6IDUwMDAKY29tbW9uX2Q6IHRlc3QKCihuby1zdWJkaXIpOgogIG9ubHlzdWIyRm9sZGVyOiB0cnVlCiAgc2Vjb25kc3ViMkZvbGRlcktleTogMgo='},
 'filenames': ['container/sub3/cfk.yaml',
  'container/sub2/group_normal/index2.htm',
  'container/sub2/index.html',
  'container/sub2/manifest.qsc.yaml',
  'container/sub1/calculate_density_significance_of_many_dipoles_script.m',
  'container/sub1/manifest.qsc.yaml',
  'container/matfile.m',
  'container/manifest.qsc.yaml',
  'container/random.txt',
  'correct_read.yaml']}

In [11]:
[{'a':1, 'b':2}, {'c':3, 'd':4}]


Out[11]:
[{'a': 1, 'b': 2}, {'c': 3, 'd': 4}]

In [13]:
Array()


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-13-a2c2edfecf1b> in <module>()
----> 1 Array()

NameError: name 'Array' is not defined

In [ ]: