imw 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. data/.gitignore +15 -0
  2. data/CHANGELOG +0 -0
  3. data/LICENSE +674 -0
  4. data/README.rdoc +101 -0
  5. data/Rakefile +20 -0
  6. data/VERSION +1 -0
  7. data/etc/imwrc.rb +76 -0
  8. data/lib/imw.rb +42 -0
  9. data/lib/imw/boot.rb +58 -0
  10. data/lib/imw/dataset.rb +233 -0
  11. data/lib/imw/dataset/datamapper.rb +66 -0
  12. data/lib/imw/dataset/datamapper/time_and_user_stamps.rb +37 -0
  13. data/lib/imw/dataset/loaddump.rb +50 -0
  14. data/lib/imw/dataset/old/file_collection.rb +88 -0
  15. data/lib/imw/dataset/old/file_collection_utils.rb +71 -0
  16. data/lib/imw/dataset/scaffold.rb +132 -0
  17. data/lib/imw/dataset/scraped_uri.rb +305 -0
  18. data/lib/imw/dataset/scrub/old_working_scrubber.rb +87 -0
  19. data/lib/imw/dataset/scrub/scrub.rb +147 -0
  20. data/lib/imw/dataset/scrub/scrub_simple_url.rb +38 -0
  21. data/lib/imw/dataset/scrub/scrub_test.rb +60 -0
  22. data/lib/imw/dataset/scrub/slug.rb +101 -0
  23. data/lib/imw/dataset/stats.rb +73 -0
  24. data/lib/imw/dataset/stats/counter.rb +23 -0
  25. data/lib/imw/dataset/task.rb +38 -0
  26. data/lib/imw/dataset/workflow.rb +81 -0
  27. data/lib/imw/files.rb +110 -0
  28. data/lib/imw/files/archive.rb +113 -0
  29. data/lib/imw/files/basicfile.rb +122 -0
  30. data/lib/imw/files/binary.rb +28 -0
  31. data/lib/imw/files/compressed_file.rb +93 -0
  32. data/lib/imw/files/compressed_files_and_archives.rb +348 -0
  33. data/lib/imw/files/compressible.rb +103 -0
  34. data/lib/imw/files/csv.rb +112 -0
  35. data/lib/imw/files/json.rb +41 -0
  36. data/lib/imw/files/sgml.rb +65 -0
  37. data/lib/imw/files/text.rb +68 -0
  38. data/lib/imw/files/yaml.rb +46 -0
  39. data/lib/imw/packagers.rb +8 -0
  40. data/lib/imw/packagers/archiver.rb +108 -0
  41. data/lib/imw/packagers/s3_mover.rb +28 -0
  42. data/lib/imw/parsers.rb +7 -0
  43. data/lib/imw/parsers/html_parser.rb +382 -0
  44. data/lib/imw/parsers/html_parser/matchers.rb +306 -0
  45. data/lib/imw/parsers/line_parser.rb +87 -0
  46. data/lib/imw/parsers/regexp_parser.rb +72 -0
  47. data/lib/imw/utils.rb +24 -0
  48. data/lib/imw/utils/components.rb +61 -0
  49. data/lib/imw/utils/config.rb +46 -0
  50. data/lib/imw/utils/error.rb +54 -0
  51. data/lib/imw/utils/extensions/array.rb +125 -0
  52. data/lib/imw/utils/extensions/class/attribute_accessors.rb +8 -0
  53. data/lib/imw/utils/extensions/core.rb +43 -0
  54. data/lib/imw/utils/extensions/dir.rb +24 -0
  55. data/lib/imw/utils/extensions/file_core.rb +64 -0
  56. data/lib/imw/utils/extensions/hash.rb +218 -0
  57. data/lib/imw/utils/extensions/hpricot.rb +48 -0
  58. data/lib/imw/utils/extensions/string.rb +49 -0
  59. data/lib/imw/utils/extensions/struct.rb +42 -0
  60. data/lib/imw/utils/extensions/symbol.rb +28 -0
  61. data/lib/imw/utils/extensions/typed_struct.rb +22 -0
  62. data/lib/imw/utils/extensions/uri.rb +59 -0
  63. data/lib/imw/utils/log.rb +67 -0
  64. data/lib/imw/utils/misc.rb +63 -0
  65. data/lib/imw/utils/paths.rb +115 -0
  66. data/lib/imw/utils/uri.rb +59 -0
  67. data/lib/imw/utils/uuid.rb +33 -0
  68. data/lib/imw/utils/validate.rb +38 -0
  69. data/lib/imw/utils/version.rb +12 -0
  70. data/lib/imw/utils/view.rb +113 -0
  71. data/lib/imw/utils/view/dump_csv.rb +112 -0
  72. data/lib/imw/utils/view/dump_csv_older.rb +117 -0
  73. data/spec/data/sample.csv +131 -0
  74. data/spec/data/sample.tsv +131 -0
  75. data/spec/data/sample.txt +131 -0
  76. data/spec/data/sample.xml +653 -0
  77. data/spec/data/sample.yaml +652 -0
  78. data/spec/imw/dataset/datamapper/uri_spec.rb +43 -0
  79. data/spec/imw/dataset/datamapper_spec_helper.rb +11 -0
  80. data/spec/imw/files/archive_spec.rb +118 -0
  81. data/spec/imw/files/basicfile_spec.rb +121 -0
  82. data/spec/imw/files/bz2_spec.rb +32 -0
  83. data/spec/imw/files/compressed_file_spec.rb +96 -0
  84. data/spec/imw/files/compressible_spec.rb +100 -0
  85. data/spec/imw/files/file_spec.rb +144 -0
  86. data/spec/imw/files/gz_spec.rb +32 -0
  87. data/spec/imw/files/rar_spec.rb +33 -0
  88. data/spec/imw/files/tar_spec.rb +31 -0
  89. data/spec/imw/files/text_spec.rb +23 -0
  90. data/spec/imw/files/zip_spec.rb +31 -0
  91. data/spec/imw/files_spec.rb +38 -0
  92. data/spec/imw/packagers/archiver_spec.rb +125 -0
  93. data/spec/imw/packagers/s3_mover_spec.rb +7 -0
  94. data/spec/imw/parsers/line_parser_spec.rb +96 -0
  95. data/spec/imw/parsers/regexp_parser_spec.rb +42 -0
  96. data/spec/imw/utils/extensions/file_core_spec.rb +72 -0
  97. data/spec/imw/utils/extensions/find_spec.rb +113 -0
  98. data/spec/imw/utils/paths_spec.rb +38 -0
  99. data/spec/imw/workflow/rip/local_spec.rb +89 -0
  100. data/spec/imw/workflow/rip_spec.rb +27 -0
  101. data/spec/rcov.opts +1 -0
  102. data/spec/spec.opts +4 -0
  103. data/spec/spec_helper.rb +32 -0
  104. data/spec/support/archive_contents_matcher.rb +94 -0
  105. data/spec/support/custom_matchers.rb +21 -0
  106. data/spec/support/directory_contents_matcher.rb +61 -0
  107. data/spec/support/extensions.rb +18 -0
  108. data/spec/support/file_contents_matcher.rb +50 -0
  109. data/spec/support/random.rb +210 -0
  110. data/spec/support/without_regard_to_order_matcher.rb +58 -0
  111. metadata +196 -0
@@ -0,0 +1,112 @@
1
+ # #
2
+ # # views
3
+ # #
4
+ # require 'imw/view/db_infochimps'
5
+ #
6
+
7
+
8
+ #
9
+ # This is where views of the metadata will go (right now it's all just
10
+ # sitting in a crapheap within model.rb).
11
+ #
12
+ # we'll have routines for
13
+ #
14
+ # - dumping/undumping to yaml
15
+ # - dumping/undumping to files that load right into the ics database.
16
+ #
17
+ class IMWObject
18
+
19
+ def self.from_icss(hsh)
20
+ # lists of dumpables
21
+ self._attr_objlists.each do |attr, cl|
22
+ if (vals = hsh.delete(attr.to_s))
23
+ hsh[attr] = vals.map{ |val| cl.from_icss(val) }
24
+ end
25
+ end
26
+ # simply dumpable objects
27
+ self._attr_objs.each do |attr, cl|
28
+ if (val = hsh.delete(attr.to_s))
29
+ hsh[attr] = cl.from_icss(val)
30
+ end
31
+ end
32
+ self.new(hsh)
33
+ end
34
+
35
+ # Dump as a plain hash
36
+ def to_icss()
37
+ hsh = instance_values
38
+ # lists of dumpable objects
39
+ self.class._attr_objlists.keys.map(&:to_s).each do |attr|
40
+ hsh[attr] = (hsh.delete(attr)||[]).map{ |a| a.to_icss() }
41
+ end
42
+ # simply dumpable objects
43
+ self.class._attr_objs.keys.map(&:to_s).each do |attr|
44
+ (v=hsh.delete attr) && hsh[attr] = v.to_icss
45
+ end
46
+ hsh
47
+ end
48
+
49
+ # Pivot from object to relational view
50
+ def to_csv(parent_id=nil)
51
+ tables = {}
52
+ sub_ids = []
53
+ my_cl = self.class.to_s
54
+ self.class._attr_objs.sort.each do |attr, cl|
55
+ tables[attr] ||= [] ; tables[attr].push(self[attr].to_csv(id))
56
+ join = "%s_%s" % [my_cl, cl.to_s].sort
57
+ tables[join] ||= [] ; tables[join].push(id, self[attr].id)
58
+ sub_ids.push self[attr].handle
59
+ end
60
+
61
+ self.class._attr_objlists.sort.each do |attr, cl|
62
+ tables[attr] ||= []
63
+ join = "%s_%s" % [my_cl, cl.to_s].sort
64
+ tables[join] ||= []
65
+ self[attr].each do |obj|
66
+ tables[attr].push(obj.to_csv(id))
67
+ tables[join].push(id, obj.id)
68
+ sub_ids.push obj.handle
69
+ end
70
+ end
71
+
72
+
73
+ tables[self.class.to_s] = [
74
+ [self.id, parent_id].compact +
75
+ slice(self.class._attr_scalars.keys - [:id]) +
76
+ sub_ids
77
+ ]
78
+ tables
79
+ end
80
+
81
+ end
82
+
83
+ class Note < IMWObject
84
+ def to_pair()
85
+ { self.handle => self.desc }
86
+ end
87
+ def to_icss()
88
+ to_pair
89
+ end
90
+ def self.from_icss(pair)
91
+ self.new Hash.zip([:handle,:desc], pair.to_pair)
92
+ end
93
+ end
94
+
95
+
96
+ class TagList
97
+ def self.from_icss(str)
98
+ self.from(str)
99
+ end
100
+ def to_icss()
101
+ self.to_s
102
+ end
103
+ def to_csv(parent_id=nil)
104
+ [self.to_s]
105
+ end
106
+
107
+ def handle() to_s end
108
+ end
109
+
110
+
111
+
112
+ # You acquire the vision of a sharp-eyed tanzier. We'll just assume that's good.
@@ -0,0 +1,117 @@
1
+ # #
2
+ # # views
3
+ # #
4
+ # require 'imw/view/db_infochimps'
5
+ #
6
+
7
+
8
+ #
9
+ # This is where views of the metadata will go (right now it's all just
10
+ # sitting in a crapheap within model.rb).
11
+ #
12
+ # we'll have routines for
13
+ #
14
+ # - dumping/undumping to yaml
15
+ # - dumping/undumping to files that load right into the ics database.
16
+ #
17
+ class IMWBase
18
+
19
+ def self.from_icss(hsh)
20
+ # simply dumpable objects
21
+ self._attr_has_one.map(&:to_s).each do |attr|
22
+ if (val = hsh.delete(attr.to_s))
23
+ hsh[attr] = get_attr_class(attr).from_icss(val)
24
+ end
25
+ end
26
+ # lists of dumpables
27
+ self._attr_manys.each do |attr|
28
+ if (vals = hsh.delete(attr.to_s))
29
+ hsh[attr] = vals.map{ |val| get_attr_class(attr).from_icss(val) }
30
+ end
31
+ end
32
+ self.new(hsh)
33
+ end
34
+
35
+ # Dump as a plain hash
36
+ def to_icss()
37
+ hsh = instance_values
38
+ # simply dumpable objects
39
+ self.class._attr_has_one.map(&:to_s).each do |attr|
40
+ (v=hsh.delete attr) && hsh[attr] = v.to_icss
41
+ end
42
+ # lists of dumpable objects
43
+ self.class._attr_manys.each do |attr|
44
+ hsh[attr] = (hsh.delete(attr)||[]).map{ |a| a.to_icss() }
45
+ end
46
+ hsh
47
+ end
48
+
49
+ # Pivot from object to relational view
50
+ def to_csv(parent_id=nil)
51
+ tables = {}
52
+ sub_ids = []
53
+ my_cl = self.class.to_s
54
+ self.class._attr_has_one.map(&:to_s).sort.each do |attr|
55
+ # Banks the object
56
+ obj = self[attr]
57
+ cl = self.class.get_attr_class(attr).to_s
58
+ tables[attr] ||= [] ; tables[attr].push( obj.to_csv(id) )
59
+ # tie the parent and child together
60
+ join = "%s_%s" % [my_cl, cl].sort
61
+ tables[join] ||= [] ; tables[join].push( [id, obj.id] )
62
+ sub_ids.push obj.handle
63
+ end
64
+
65
+ self.class._attr_manys.sort.each do |attr|
66
+ objs = self[attr] or next
67
+ cl = self.class.get_attr_class(attr).to_s
68
+ tables[attr] ||= []
69
+ join = "%s_%s" % [my_cl, cl.to_s].sort
70
+ tables[join] ||= []
71
+ objs.each do |obj|
72
+ tables[attr].push(obj.to_csv(id))
73
+ tables[join].push(id, obj.id)
74
+ sub_ids.push obj.handle
75
+ end
76
+ end
77
+
78
+
79
+ tables[self.class.to_s] = [
80
+ [self.id, parent_id].compact +
81
+ slice(self.class._attr_scalar - [:id]) +
82
+ sub_ids
83
+ ].zip(['id', 'pid']+(self.class._attr_scalar - [:id])+self.class._attr_has_one.map(&:to_s).sort)
84
+ tables
85
+ end
86
+
87
+ end
88
+
89
+ class Note < IMWBase
90
+ # { :format_name => {}, ... } -- must be a hash
91
+ def to_pair()
92
+ { self.handle => self.desc }
93
+ end
94
+ def to_icss()
95
+ to_pair
96
+ end
97
+ def self.from_icss(pair)
98
+ self.new Hash.zip([:handle,:desc], pair.to_pair)
99
+ end
100
+ end
101
+
102
+
103
+ class TagList
104
+ def self.from_icss(str)
105
+ self.from(str)
106
+ end
107
+ def to_icss()
108
+ self.to_s
109
+ end
110
+ def to_csv(parent_id=nil)
111
+ [self.to_s]
112
+ end
113
+
114
+ def handle() to_s end
115
+ end
116
+
117
+
@@ -0,0 +1,131 @@
1
+ ID,Name,Genus,Species
2
+ 001,Gray-bellied Night Monkey,Aotus,lemurinus
3
+ 002,Panamanian Night Monkey,Aotus,zonalis
4
+ 003,Hernández-Camacho's Night Monkey,Aotus,jorgehernandezi
5
+ 004,Gray-handed Night Monkey,Aotus,griseimembra
6
+ 005,Hershkovitz's Night Monkey,Aotus,hershkovitzi
7
+ 006,Brumback's Night Monkey,Aotus,brumbacki
8
+ 007,Three-striped Night Monkey,Aotus,trivirgatus
9
+ 008,Spix's Night Monkey,Aotus,vociferans
10
+ 009,Malaysian Lar Gibbon,Hylobates,lar lar
11
+ 010,Carpenter's Lar Gibbon,Hylobates,lar carpenteri
12
+ 011,Central Lar Gibbon,Hylobates,lar entelloides
13
+ 012,Sumatran Lar Gibbon,Hylobates,lar vestitus
14
+ 013,Yunnan Lar Gibbon,Hylobates,lar yunnanensis
15
+ 014,Mountain Agile Gibbon,Hylobates,agilis agilis
16
+ 015,Bornean White-bearded Gibbon,Hylobates,agilis albibarbis
17
+ 016,Lowland Agile Gibbon,Hylobates,agilis unko
18
+ 017,Müller's Gray Gibbon,Hylobates,muelleri muelleri
19
+ 018,Abbott's Gray Gibbon,Hylobates,muelleri abbotti
20
+ 019,Northern Gray Gibbon,Hylobates,muelleri funereus
21
+ 020,Black Tamarin,Saguinas,niger
22
+ 021,Black-mantled Tamarin,Saguinas,nigricollis
23
+ 022,Brown-mantled Tamarin,Saguinas,fuscicollis
24
+ 023,Cottontop Tamarin or Pinché Tamarin,Saguinas,oedipus
25
+ 024,Emperor Tamarin,Saguinas,imperator
26
+ 025,Geoffroy's Tamarin,Saguinas,geoffroyi
27
+ 026,Golden-mantled Tamarin,Saguinas,tripartitus
28
+ 027,Graells's Tamarin,Saguinas,graellsi
29
+ 028,Martins's Tamarin,Saguinas,martinsi
30
+ 029,Mottle-faced Tamarin,Saguinas,inustus
31
+ 030,Moustached Tamarin,Saguinas,mystax
32
+ 031,Pied Tamarin,Saguinas,bicolor
33
+ 032,Red-capped Tamarin,Saguinas,pileatus
34
+ 033,Red-handed Tamarin,Saguinas,midas
35
+ 034,White-footed Tamarin,Saguinas,leucopus
36
+ 035,White-lipped Tamarin,Saguinas,labiatus
37
+ 036,White-mantled Tamarin,Saguinas,melanoleucus
38
+ 037,Allen's Swamp Monkey,Allenopithecus,nigroviridis
39
+ 038,Angolan Talapoin,Miopithecus,talapoin
40
+ 039,Gabon Talapoin,Miopithecus,ogouensis
41
+ 040,Patas Monkey,Erythrocebus,patas
42
+ 041,Green Monkey,Chlorocebus,sabaeus
43
+ 042,Grivet,Chlorocebus,aethiops
44
+ 043,Bale Mountains Vervet,Chlorocebus,djamdjamensis
45
+ 044,Tantalus Monkey,Chlorocebus,tantalus
46
+ 045,Vervet Monkey,Chlorocebus,pygerythrus
47
+ 046,Malbrouck,Chlorocebus,cynosuros
48
+ 047,Dryas Monkey or Salongo Monkey,Cercopithecus,dryas
49
+ 048,Diana Monkey,Cercopithecus,diana
50
+ 049,Roloway Monkey,Cercopithecus,roloway
51
+ 050,Greater Spot-nosed Monkey,Cercopithecus,nictitans
52
+ 051,Blue Monkey,Cercopithecus,mitis
53
+ 052,Silver Monkey,Cercopithecus,doggetti
54
+ 053,Golden Monkey,Cercopithecus,kandti
55
+ 054,Sykes's Monkey,Cercopithecus,albogularis
56
+ 055,Mona Monkey,Cercopithecus,mona
57
+ 056,Campbell's Mona Monkey,Cercopithecus,campbelli
58
+ 057,Lowe's Mona Monkey,Cercopithecus,lowei
59
+ 058,Crested Mona Monkey,Cercopithecus,pogonias
60
+ 059,Wolf's Mona Monkey,Cercopithecus,wolfi
61
+ 060,Dent's Mona Monkey,Cercopithecus,denti
62
+ 061,Lesser Spot-nosed Monkey,Cercopithecus,petaurista
63
+ 062,White-throated Guenon,Cercopithecus,erythrogaster
64
+ 063,Sclater's Guenon,Cercopithecus,sclateri
65
+ 064,Red-eared Guenon,Cercopithecus,erythrotis
66
+ 065,Moustached Guenon,Cercopithecus,cephus
67
+ 066,Red-tailed Monkey,Cercopithecus,ascanius
68
+ 067,L'Hoest's Monkey,Cercopithecus,lhoesti
69
+ 068,Preuss's Monkey,Cercopithecus,preussi
70
+ 069,Sun-tailed Monkey,Cercopithecus,solatus
71
+ 070,Hamlyn's Monkey,Cercopithecus,hamlyni
72
+ 071,De Brazza's Monkey,Cercopithecus,neglectus
73
+ 072,Barbary Macaque,Macaca,sylvanus
74
+ 073,Lion-tailed Macaque,Macaca,silenus
75
+ 074,Southern Pig-tailed Macaque or Beruk,Macaca,nemestrina
76
+ 075,Northern Pig-tailed Macaque,Macaca,leonina
77
+ 076,Pagai Island Macaque or Bokkoi,Macaca,pagensis
78
+ 077,Siberut Macaque,Macaca,siberu
79
+ 078,Moor Macaque,Macaca,maura
80
+ 079,Booted Macaque,Macaca,ochreata
81
+ 080,Tonkean Macaque,Macaca,tonkeana
82
+ 081,Heck's Macaque,Macaca,hecki
83
+ 082,Gorontalo Macaque,Macaca,nigrescens
84
+ 083,Celebes Crested Macaque or Black "Ape",Macaca,nigra
85
+ 084,Crab-eating Macaque or Long-tailed Macaque or Kera,Macaca,fascicularis
86
+ 085,Stump-tailed Macaque or Bear Macaque,Macaca,arctoides
87
+ 086,Rhesus Macaque,Macaca,mulatta
88
+ 087,Formosan Rock Macaque,Macaca,cyclopis
89
+ 088,Japanese Macaque,Macaca,fuscata
90
+ 089,Toque Macaque,Macaca,sinica
91
+ 090,Bonnet Macaque,Macaca,radiata
92
+ 091,Assam Macaque,Macaca,assamensis
93
+ 092,Tibetan Macaque or Milne-Edwards' Macaque,Macaca,thibetana
94
+ 093,Arunachal Macaque or Munzala,Macaca,munzala
95
+ 094,Grey-cheeked Mangabey,Lophocebus,albigena
96
+ 095,Black Crested Mangabey,Lophocebus,aterrimus
97
+ 096,Opdenbosch's Mangabey,Lophocebus,opdenboschi
98
+ 097,Uganda Mangabey,Lophocebus,ugandae
99
+ 098,Johnston's Mangabey,Lophocebus,johnstoni
100
+ 099,Osman Hill's Mangabey,Lophocebus,osmani
101
+ 100,Kipunji,Rungwecebus,kipunji
102
+ 101,Hamadryas Baboon,Papio,hamadryas
103
+ 102,Guinea Baboon,Papio,papio
104
+ 103,Olive Baboon,Papio,anubis
105
+ 104,Yellow Baboon,Papio,cynocephalus
106
+ 105,Chacma Baboon,Papio,ursinus
107
+ 106,Gelada,Theropithecus,gelada
108
+ 107,Sooty Mangabey,Cercocebus,atys
109
+ 108,Collared Mangabey,Cercocebus,torquatus
110
+ 109,Agile Mangabey,Cercocebus,agilis
111
+ 110,Golden-bellied Mangabey,Cercocebus,chrysogaster
112
+ 111,Tana River Mangabey,Cercocebus,galeritus
113
+ 112,Sanje Mangabey,Cercocebus,sanjei
114
+ 113,Mandrill,Mandrillus,sphinx
115
+ 114,Drill,Mandrillus,leucophaeus
116
+ 115,Black Colobus,Colobus,satanas
117
+ 116,Angola Colobus,Colobus,angolensis
118
+ 117,King Colobus,Colobus,polykomos
119
+ 118,Ursine Colobus,Colobus,vellerosus
120
+ 119,Mantled Guereza,Colobus,guereza
121
+ 120,Western Red Colobus,Piliocolobus,badius
122
+ 121,Pennant's Colobus,Piliocolobus,pennantii
123
+ 122,Preuss's Red Colobus,Piliocolobus,preussi
124
+ 123,Thollon's Red Colobus,Piliocolobus,tholloni
125
+ 124,Central African Red Colobus,Piliocolobus,foai
126
+ 125,Ugandan Red Colobus,Piliocolobus,tephrosceles
127
+ 126,Uzungwa Red Colobus,Piliocolobus,gordonorum
128
+ 127,Zanzibar Red Colobus,Piliocolobus,kirkii
129
+ 128,Tana River Red Colobus,Piliocolobus,rufomitratus
130
+ 129,Olive Colobus,Procolobus,verus
131
+ 130,Maroon Leaf Monkey,Presbytis,rubicunda
@@ -0,0 +1,131 @@
1
+ ID Name Genus Species
2
+ 001 Gray-bellied Night Monkey Aotus lemurinus
3
+ 002 Panamanian Night Monkey Aotus zonalis
4
+ 003 Hernández-Camacho's Night Monkey Aotus jorgehernandezi
5
+ 004 Gray-handed Night Monkey Aotus griseimembra
6
+ 005 Hershkovitz's Night Monkey Aotus hershkovitzi
7
+ 006 Brumback's Night Monkey Aotus brumbacki
8
+ 007 Three-striped Night Monkey Aotus trivirgatus
9
+ 008 Spix's Night Monkey Aotus vociferans
10
+ 009 Malaysian Lar Gibbon Hylobates lar lar
11
+ 010 Carpenter's Lar Gibbon Hylobates lar carpenteri
12
+ 011 Central Lar Gibbon Hylobates lar entelloides
13
+ 012 Sumatran Lar Gibbon Hylobates lar vestitus
14
+ 013 Yunnan Lar Gibbon Hylobates lar yunnanensis
15
+ 014 Mountain Agile Gibbon Hylobates agilis agilis
16
+ 015 Bornean White-bearded Gibbon Hylobates agilis albibarbis
17
+ 016 Lowland Agile Gibbon Hylobates agilis unko
18
+ 017 Müller's Gray Gibbon Hylobates muelleri muelleri
19
+ 018 Abbott's Gray Gibbon Hylobates muelleri abbotti
20
+ 019 Northern Gray Gibbon Hylobates muelleri funereus
21
+ 020 Black Tamarin Saguinas niger
22
+ 021 Black-mantled Tamarin Saguinas nigricollis
23
+ 022 Brown-mantled Tamarin Saguinas fuscicollis
24
+ 023 Cottontop Tamarin or Pinché Tamarin Saguinas oedipus
25
+ 024 Emperor Tamarin Saguinas imperator
26
+ 025 Geoffroy's Tamarin Saguinas geoffroyi
27
+ 026 Golden-mantled Tamarin Saguinas tripartitus
28
+ 027 Graells's Tamarin Saguinas graellsi
29
+ 028 Martins's Tamarin Saguinas martinsi
30
+ 029 Mottle-faced Tamarin Saguinas inustus
31
+ 030 Moustached Tamarin Saguinas mystax
32
+ 031 Pied Tamarin Saguinas bicolor
33
+ 032 Red-capped Tamarin Saguinas pileatus
34
+ 033 Red-handed Tamarin Saguinas midas
35
+ 034 White-footed Tamarin Saguinas leucopus
36
+ 035 White-lipped Tamarin Saguinas labiatus
37
+ 036 White-mantled Tamarin Saguinas melanoleucus
38
+ 037 Allen's Swamp Monkey Allenopithecus nigroviridis
39
+ 038 Angolan Talapoin Miopithecus talapoin
40
+ 039 Gabon Talapoin Miopithecus ogouensis
41
+ 040 Patas Monkey Erythrocebus patas
42
+ 041 Green Monkey Chlorocebus sabaeus
43
+ 042 Grivet Chlorocebus aethiops
44
+ 043 Bale Mountains Vervet Chlorocebus djamdjamensis
45
+ 044 Tantalus Monkey Chlorocebus tantalus
46
+ 045 Vervet Monkey Chlorocebus pygerythrus
47
+ 046 Malbrouck Chlorocebus cynosuros
48
+ 047 Dryas Monkey or Salongo Monkey Cercopithecus dryas
49
+ 048 Diana Monkey Cercopithecus diana
50
+ 049 Roloway Monkey Cercopithecus roloway
51
+ 050 Greater Spot-nosed Monkey Cercopithecus nictitans
52
+ 051 Blue Monkey Cercopithecus mitis
53
+ 052 Silver Monkey Cercopithecus doggetti
54
+ 053 Golden Monkey Cercopithecus kandti
55
+ 054 Sykes's Monkey Cercopithecus albogularis
56
+ 055 Mona Monkey Cercopithecus mona
57
+ 056 Campbell's Mona Monkey Cercopithecus campbelli
58
+ 057 Lowe's Mona Monkey Cercopithecus lowei
59
+ 058 Crested Mona Monkey Cercopithecus pogonias
60
+ 059 Wolf's Mona Monkey Cercopithecus wolfi
61
+ 060 Dent's Mona Monkey Cercopithecus denti
62
+ 061 Lesser Spot-nosed Monkey Cercopithecus petaurista
63
+ 062 White-throated Guenon Cercopithecus erythrogaster
64
+ 063 Sclater's Guenon Cercopithecus sclateri
65
+ 064 Red-eared Guenon Cercopithecus erythrotis
66
+ 065 Moustached Guenon Cercopithecus cephus
67
+ 066 Red-tailed Monkey Cercopithecus ascanius
68
+ 067 L'Hoest's Monkey Cercopithecus lhoesti
69
+ 068 Preuss's Monkey Cercopithecus preussi
70
+ 069 Sun-tailed Monkey Cercopithecus solatus
71
+ 070 Hamlyn's Monkey Cercopithecus hamlyni
72
+ 071 De Brazza's Monkey Cercopithecus neglectus
73
+ 072 Barbary Macaque Macaca sylvanus
74
+ 073 Lion-tailed Macaque Macaca silenus
75
+ 074 Southern Pig-tailed Macaque or Beruk Macaca nemestrina
76
+ 075 Northern Pig-tailed Macaque Macaca leonina
77
+ 076 Pagai Island Macaque or Bokkoi Macaca pagensis
78
+ 077 Siberut Macaque Macaca siberu
79
+ 078 Moor Macaque Macaca maura
80
+ 079 Booted Macaque Macaca ochreata
81
+ 080 Tonkean Macaque Macaca tonkeana
82
+ 081 Heck's Macaque Macaca hecki
83
+ 082 Gorontalo Macaque Macaca nigrescens
84
+ 083 Celebes Crested Macaque or Black "Ape" Macaca nigra
85
+ 084 Crab-eating Macaque or Long-tailed Macaque or Kera Macaca fascicularis
86
+ 085 Stump-tailed Macaque or Bear Macaque Macaca arctoides
87
+ 086 Rhesus Macaque Macaca mulatta
88
+ 087 Formosan Rock Macaque Macaca cyclopis
89
+ 088 Japanese Macaque Macaca fuscata
90
+ 089 Toque Macaque Macaca sinica
91
+ 090 Bonnet Macaque Macaca radiata
92
+ 091 Assam Macaque Macaca assamensis
93
+ 092 Tibetan Macaque or Milne-Edwards' Macaque Macaca thibetana
94
+ 093 Arunachal Macaque or Munzala Macaca munzala
95
+ 094 Grey-cheeked Mangabey Lophocebus albigena
96
+ 095 Black Crested Mangabey Lophocebus aterrimus
97
+ 096 Opdenbosch's Mangabey Lophocebus opdenboschi
98
+ 097 Uganda Mangabey Lophocebus ugandae
99
+ 098 Johnston's Mangabey Lophocebus johnstoni
100
+ 099 Osman Hill's Mangabey Lophocebus osmani
101
+ 100 Kipunji Rungwecebus kipunji
102
+ 101 Hamadryas Baboon Papio hamadryas
103
+ 102 Guinea Baboon Papio papio
104
+ 103 Olive Baboon Papio anubis
105
+ 104 Yellow Baboon Papio cynocephalus
106
+ 105 Chacma Baboon Papio ursinus
107
+ 106 Gelada Theropithecus gelada
108
+ 107 Sooty Mangabey Cercocebus atys
109
+ 108 Collared Mangabey Cercocebus torquatus
110
+ 109 Agile Mangabey Cercocebus agilis
111
+ 110 Golden-bellied Mangabey Cercocebus chrysogaster
112
+ 111 Tana River Mangabey Cercocebus galeritus
113
+ 112 Sanje Mangabey Cercocebus sanjei
114
+ 113 Mandrill Mandrillus sphinx
115
+ 114 Drill Mandrillus leucophaeus
116
+ 115 Black Colobus Colobus satanas
117
+ 116 Angola Colobus Colobus angolensis
118
+ 117 King Colobus Colobus polykomos
119
+ 118 Ursine Colobus Colobus vellerosus
120
+ 119 Mantled Guereza Colobus guereza
121
+ 120 Western Red Colobus Piliocolobus badius
122
+ 121 Pennant's Colobus Piliocolobus pennantii
123
+ 122 Preuss's Red Colobus Piliocolobus preussi
124
+ 123 Thollon's Red Colobus Piliocolobus tholloni
125
+ 124 Central African Red Colobus Piliocolobus foai
126
+ 125 Ugandan Red Colobus Piliocolobus tephrosceles
127
+ 126 Uzungwa Red Colobus Piliocolobus gordonorum
128
+ 127 Zanzibar Red Colobus Piliocolobus kirkii
129
+ 128 Tana River Red Colobus Piliocolobus rufomitratus
130
+ 129 Olive Colobus Procolobus verus
131
+ 130 Maroon Leaf Monkey Presbytis rubicunda