Mercurial > repos > galaxyp > data_manager_eggnog_mapper_abspath
annotate data_manager/data_manager_eggnog.py @ 3:e59a8fe169af draft default tip
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit 75035b2919ce95fa8d3b785d86c7c7c9da531db2
author | galaxyp |
---|---|
date | Mon, 20 Jun 2022 12:47:41 +0000 |
parents | 3d12bbd5c0ba |
children |
rev | line source |
---|---|
0
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
1 #!/usr/bin/env python |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
2 |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
3 from __future__ import print_function |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
4 |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
5 import argparse |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
6 import json |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
7 import os.path |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
8 import sqlite3 |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
9 import sys |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
10 from sqlite3 import OperationalError |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
11 |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
12 |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
13 def _get_db_version(sqlitedb_path): |
1
46d2e3ed9530
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit fd234f7532b34a1b6ced0d3ac53a8f42348e23f7"
galaxyp
parents:
0
diff
changeset
|
14 version = '5.0' |
0
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
15 try: |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
16 query = 'select version from version' |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
17 conn = sqlite3.connect(sqlitedb_path) |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
18 cur = conn.cursor() |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
19 cur.execute(query) |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
20 version = cur.fetchone()[0] |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
21 except OperationalError as e: |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
22 print('Assuming eggnog version %s because %s %s' % |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
23 (version, sqlitedb_path, e), file=sys.stderr) |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
24 return version |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
25 |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
26 |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
27 def main(): |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
28 parser = argparse.ArgumentParser() |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
29 parser.add_argument('--config_file') |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
30 parser.add_argument('--install_path') |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
31 args = parser.parse_args() |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
32 |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
33 eggnog_db_path = os.path.join(args.install_path, 'eggnog.db') |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
34 if not os.path.exists(eggnog_db_path): |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
35 print('Can not open: %s' % eggnog_db_path, file=sys.stderr) |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
36 exit(1) |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
37 db_version = _get_db_version(eggnog_db_path) |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
38 |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
39 # params = json.loads(open(args.config_file).read()) |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
40 dm_dict = {} |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
41 dm_dict['data_tables'] = dm_dict.get('data_tables', {}) |
1
46d2e3ed9530
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit fd234f7532b34a1b6ced0d3ac53a8f42348e23f7"
galaxyp
parents:
0
diff
changeset
|
42 data_table = 'eggnog_mapper_db_versioned' |
0
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
43 dm_dict['data_tables'][data_table]\ |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
44 = dm_dict['data_tables'].get(data_table, []) |
2
3d12bbd5c0ba
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit e45c15081260025e470d23975ef5a734d3f8fc66"
galaxyp
parents:
1
diff
changeset
|
45 # DB versionning was super confusing for eggnog-mapper 2.0.x: |
1
46d2e3ed9530
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit fd234f7532b34a1b6ced0d3ac53a8f42348e23f7"
galaxyp
parents:
0
diff
changeset
|
46 # eggnog-mapper 1.* needed a db v4.5 (based on eggnog v4.5) |
2
3d12bbd5c0ba
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit e45c15081260025e470d23975ef5a734d3f8fc66"
galaxyp
parents:
1
diff
changeset
|
47 # eggnog-mapper 2.x needed a db v2.0 (based on eggnog v5.0) |
3d12bbd5c0ba
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit e45c15081260025e470d23975ef5a734d3f8fc66"
galaxyp
parents:
1
diff
changeset
|
48 # (db v4.5 are not compatible with eggnog-mapper 2.0) |
3d12bbd5c0ba
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit e45c15081260025e470d23975ef5a734d3f8fc66"
galaxyp
parents:
1
diff
changeset
|
49 # Starting with eggnog-mapper 2.1.* db versioning looks better: 2.1.0 requires db v5.0.2 |
1
46d2e3ed9530
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit fd234f7532b34a1b6ced0d3ac53a8f42348e23f7"
galaxyp
parents:
0
diff
changeset
|
50 version = "2.0" |
46d2e3ed9530
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit fd234f7532b34a1b6ced0d3ac53a8f42348e23f7"
galaxyp
parents:
0
diff
changeset
|
51 if "4.5" in db_version: |
2
3d12bbd5c0ba
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit e45c15081260025e470d23975ef5a734d3f8fc66"
galaxyp
parents:
1
diff
changeset
|
52 # special case: eggnog-mapper 1.x |
1
46d2e3ed9530
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit fd234f7532b34a1b6ced0d3ac53a8f42348e23f7"
galaxyp
parents:
0
diff
changeset
|
53 version = "1.0" |
2
3d12bbd5c0ba
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit e45c15081260025e470d23975ef5a734d3f8fc66"
galaxyp
parents:
1
diff
changeset
|
54 elif db_version.startswith('2.'): |
3d12bbd5c0ba
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit e45c15081260025e470d23975ef5a734d3f8fc66"
galaxyp
parents:
1
diff
changeset
|
55 # special case: eggnog-mapper 2.0.x |
3d12bbd5c0ba
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit e45c15081260025e470d23975ef5a734d3f8fc66"
galaxyp
parents:
1
diff
changeset
|
56 version = "2.0" |
3d12bbd5c0ba
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit e45c15081260025e470d23975ef5a734d3f8fc66"
galaxyp
parents:
1
diff
changeset
|
57 else: |
3d12bbd5c0ba
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit e45c15081260025e470d23975ef5a734d3f8fc66"
galaxyp
parents:
1
diff
changeset
|
58 # normal case or eggno-mapper >= 2.1 |
3d12bbd5c0ba
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit e45c15081260025e470d23975ef5a734d3f8fc66"
galaxyp
parents:
1
diff
changeset
|
59 version = db_version |
1
46d2e3ed9530
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit fd234f7532b34a1b6ced0d3ac53a8f42348e23f7"
galaxyp
parents:
0
diff
changeset
|
60 data_table_entry = dict(value=db_version, name=db_version, |
46d2e3ed9530
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit fd234f7532b34a1b6ced0d3ac53a8f42348e23f7"
galaxyp
parents:
0
diff
changeset
|
61 path=args.install_path, version=version) |
46d2e3ed9530
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit fd234f7532b34a1b6ced0d3ac53a8f42348e23f7"
galaxyp
parents:
0
diff
changeset
|
62 dm_dict['data_tables'][data_table].append(data_table_entry) |
0
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
63 |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
64 # save info to json file |
1
46d2e3ed9530
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit fd234f7532b34a1b6ced0d3ac53a8f42348e23f7"
galaxyp
parents:
0
diff
changeset
|
65 open(args.config_file, 'w').write(json.dumps(dm_dict)) |
0
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
66 |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
67 |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
68 if __name__ == "__main__": |
48893cfa76a8
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/eggnog_mapper/data_manager_eggnog_mapper_abspath commit ba81f4bfe31157aa6b986e81d5e4405ae1372b3b"
galaxyp
parents:
diff
changeset
|
69 main() |