Project

General

Profile

Activity

From 02/04/2012 to 03/04/2012

03/03/2012

05:56 PM Revision 1255: Makefile: python-Linux: Added python-profiler
Aaron Marcuse-Kubitza
05:44 PM Revision 1254: specimens verification: Added # binomials test
Aaron Marcuse-Kubitza
05:35 PM Revision 1253: vegbien.sql: specimenreplicate: Removed specimenreplicate_unique_collectionnumber index because the collectionnumber (NYBG FieldNumber) is not always unique within a collector, even though it should be. Changed specimenreplicate_unique_catalognumber to only operate on rows with no sourceaccessioncode (of which there are 8 in NYBG).
Aaron Marcuse-Kubitza
05:09 PM Revision 1252: mappings/verify.specimens.sql: # species test: Fixed to join separately on taxondeterminations for genus and species. # genera test: Removed no longer needed join on party.
Aaron Marcuse-Kubitza
05:04 PM Revision 1251: vegbien.sql: specimenreplicate: Added fki index on taxonoccurrence_id
Aaron Marcuse-Kubitza
04:25 PM Revision 1250: vegbien.sql: plantname: Added index on rank to speed up specimens verifications, where the query planner insists on joining from plantname to specimenreplicate instead of the other way around (which takes much longer without the index)
Aaron Marcuse-Kubitza
03:33 PM Revision 1249: mappings/verify.*: Use nested SELECT instead of JOIN on party to get datasource_id, so that party will not be joined on after other joins have already occurred (which slows things down)
Aaron Marcuse-Kubitza
03:26 PM Revision 1248: vegbien.sql: party: Changed party_unique_name to ignore NULL values and the organizationname (a first(+middle)+last name is considered unique)
Aaron Marcuse-Kubitza
03:15 PM Revision 1247: vegbien.sql: party: Added party_unique_organizationname constraint
Aaron Marcuse-Kubitza
02:11 PM Revision 1246: Specimens verification: Added # genera and # species
Aaron Marcuse-Kubitza
01:50 PM Revision 1245: input.Makefile: verify: Create target dir if it doesn't exist
Aaron Marcuse-Kubitza
01:42 PM Revision 1244: inputs/NYBG: Added verify/specimens.ref.sql
Aaron Marcuse-Kubitza
01:41 PM Revision 1243: Added mappings/verify.specimens.sql
Aaron Marcuse-Kubitza
01:41 PM Revision 1242: Added inputs/NYBG-CSV/verify/
Aaron Marcuse-Kubitza
01:40 PM Revision 1241: Makefile: Print done message after verify
Aaron Marcuse-Kubitza
01:29 PM Revision 1240: VegX-VegBIEN mapping: Use new lookup-only element syntax to ensure that stemtag 1 is not created if it doesn't exist when stemtag 2 tries to set its iscurrent status to false. This should fix the 136 "NullValueException: columns: tag" errors in the SALVIAS organisms import.
Aaron Marcuse-Kubitza
01:27 PM Revision 1239: xpath.py: get(): Added support for lookup-only elements which are not created if they don't exist
Aaron Marcuse-Kubitza
01:25 PM Revision 1238: xpath.py: parse(): Added support for lookup-only elements which are not created if they don't exist
Aaron Marcuse-Kubitza
01:15 PM Revision 1237: VegX-VegBIEN mapping: Map stemtags using [] instead of :[] for attrs that are really keys
Aaron Marcuse-Kubitza

03/02/2012

07:54 PM Revision 1236: Regenerated vegbien.ERD exports
Aaron Marcuse-Kubitza
07:52 PM Revision 1235: VegX-VegBIEN mapping: Handle user-defined field voucherType (SALVIAS DetType) by mapping specimenreplicates for voucherTypes other than direct via voucher
Aaron Marcuse-Kubitza
06:58 PM Revision 1234: xml_func.py: Added _if and _eq. Added cast() to throw SyntaxException if can't cast and use it in conv_items(). _merge: Check types of input using conv_items(strings.ustr, items).
Aaron Marcuse-Kubitza
06:53 PM Revision 1233: util.py: Added all_not_none() and bool2str()
Aaron Marcuse-Kubitza
06:52 PM Revision 1232: strings.py: Added ustr() (like built-in str() but converts to unicode object)
Aaron Marcuse-Kubitza
05:32 PM Revision 1231: PostgreSQL-MySQL.csv: Fixed bug in removal of casts of default values, which treated NOT NULL as part of the datatype
Aaron Marcuse-Kubitza
05:30 PM Revision 1230: VegBIEN: soilobs: Added default value for horizon. Adjusted mappings to remove now-unecessary horizon value.
Aaron Marcuse-Kubitza
05:26 PM Revision 1229: repl: Removed automatic case-insensitivity because Python apparently only supports turning *on* case-insensitivity via (?i) but not off via (?-i) (as Java does)
Aaron Marcuse-Kubitza
05:09 PM Revision 1228: VegBIEN: soilobs: Removed soil* prefix from fields
Aaron Marcuse-Kubitza
05:05 PM Revision 1227: VegX-VegBIEN mapping: Map to new soilobs fields
Aaron Marcuse-Kubitza
04:57 PM Revision 1226: SALVIAS inputs: Use new _units:[units="%"] on soil fields that are percents. Replace "<..." values with 0.
Aaron Marcuse-Kubitza
04:55 PM Revision 1225: xml_func.py: Added _units
Aaron Marcuse-Kubitza
04:30 PM Revision 1224: vegbien.sql: soilobs: Converted user-defined fields to first-class. Labeled appropriate fields as "fraction".
Aaron Marcuse-Kubitza
04:08 PM Revision 1223: VegBIEN mappings: Changed tableRecord_ID to tablerecord_id to match PostgreSQL field name
Aaron Marcuse-Kubitza
04:05 PM Revision 1222: DwC2-VegBIEN mapping: Adjusted user-defined mappings
Aaron Marcuse-Kubitza
04:00 PM Revision 1221: vegbien.sql: userdefined: Made userdefinedname NOT NULL. userdefined, definedvalue: Added unique constraints.
Aaron Marcuse-Kubitza
03:54 PM Revision 1220: VegX-VegBIEN mapping: Mapped userdefined fields to new first-class fields
Aaron Marcuse-Kubitza
03:46 PM Revision 1219: xml_func.py: Added _map and _replace
Aaron Marcuse-Kubitza
02:33 PM Revision 1218: Regenerated vegbien.ERD exports
Aaron Marcuse-Kubitza
02:30 PM Revision 1217: vegbien.ERD.mwb: Fixed lines. Expanded truncated tables where there was room.
Aaron Marcuse-Kubitza
12:51 PM Revision 1216: Regenerated vegbien.ERD exports
Aaron Marcuse-Kubitza
12:51 PM Revision 1215: vegbien.sql: locationevent: Added temperature and precipitation
Aaron Marcuse-Kubitza
12:45 PM Revision 1214: vegbien.sql: aggregateoccurrence: Added growthform
Aaron Marcuse-Kubitza
12:39 PM Revision 1213: vegbien.ERD.mwb: Reversed the locations of soiltaxon and soilobs to give soilobs room to add new fields
Aaron Marcuse-Kubitza
12:36 PM Revision 1212: vegbien.sql: Removed embargo table and emb_* fields because we're using a central field, location.confidentialitystatus, for embargo information and coordinate fuzzing
Aaron Marcuse-Kubitza
12:22 PM Revision 1211: vegbien.sql: stemobservation: Added heightfirstbranch
Aaron Marcuse-Kubitza
12:17 PM Revision 1210: vegbien.sql: stemobservation: Added diameteraccuracy. Reordered fields.
Aaron Marcuse-Kubitza

03/01/2012

05:55 PM Revision 1209: VegBIEN: stemobservation: Renamed diameter to diameterbreastheight to be more accurate
Aaron Marcuse-Kubitza
05:45 PM Revision 1208: vegbien.ERD.mwb: Expanded tables where there was room
Aaron Marcuse-Kubitza
05:34 PM Revision 1207: DwC mappings: Fixed user-defined field mappings according to Brad Boyle's changes
Aaron Marcuse-Kubitza
05:33 PM Revision 1206: vegbien.sql: Changed specimenreplicate_unique_collectionnumber constraint to include verbatimcollectorname because collection number is assigned by collector
Aaron Marcuse-Kubitza

02/28/2012

07:41 PM Revision 1205: Regenerated vegbien.ERD exports
Aaron Marcuse-Kubitza
07:39 PM Revision 1204: vegbien.sql: Changed specimenreplicate_unique_collectionnumber constraint to include verbatimcollectorname because collection number is assigned by collector
Aaron Marcuse-Kubitza
07:36 PM Revision 1203: VegBIEN: Moved taxonoccurrence.verbatimcollectorname to specimenreplicate and aggregateoccurrence so that it can be used in specimenreplicate duplicate elimination
Aaron Marcuse-Kubitza
07:21 PM Revision 1202: mappings/DwC1-DwC2.specimens.csv: Notes mapping: Removed extraneous /_merge/1
Aaron Marcuse-Kubitza
05:51 PM Revision 1201: input.Makefile: svn_props: Removed no longer needed items from input dir svn:ignore
Aaron Marcuse-Kubitza
05:49 PM Revision 1200: input.Makefile: verify: Fixed bug for inputs without a .ref where $(wildcard) wouldn't recheck the file after verify/%.out is run, so the verify output wasn't printed
Aaron Marcuse-Kubitza
05:45 PM Revision 1199: input.Makefile: Moved verify files into separate subdir
Aaron Marcuse-Kubitza
04:30 PM Revision 1198: bin/map: Changed root label data format convention to datasrc[data_format] so datasource names containing hyphens would not have the part after the - treated as the data format
Aaron Marcuse-Kubitza
04:25 PM Revision 1197: inputs maps: Changed input root labels to match dir names since verify expects these to be the same
Aaron Marcuse-Kubitza
04:22 PM Revision 1196: input.Makefile: verify: Fixed bug where datasource name was not set for non-DB inputs
Aaron Marcuse-Kubitza
04:18 PM Revision 1195: input.Makefile: Removed no longer needed default verify action for dirs with no verify.ref's
Aaron Marcuse-Kubitza
04:15 PM Revision 1194: input.Makefile: verify: Made verifications table-specific
Aaron Marcuse-Kubitza
03:27 PM Revision 1193: input.Makefile: import: Merged import and import-all because they do the same thing
Aaron Marcuse-Kubitza
03:26 PM Revision 1192: input.Makefile: verify: Started rearranging to allow different verifies for each table
Aaron Marcuse-Kubitza
03:19 PM Revision 1191: Moved verify.sql to mappings since it's mapping-related
Aaron Marcuse-Kubitza
02:31 PM Revision 1190: input.Makefile: Changed option nolog to log so that options aren't specified in the negative
Aaron Marcuse-Kubitza
01:43 PM Revision 1189: input.Makefile: svn ignore .trace files
Aaron Marcuse-Kubitza
01:41 PM Revision 1188: input.Makefile: Profile imports into a .trace file unless env var profile=""
Aaron Marcuse-Kubitza
01:28 PM Revision 1187: xml_func.py: _alt: On empty input, return None instead of raising SyntaxException because empty input should be OK
Aaron Marcuse-Kubitza

02/27/2012

05:37 PM Revision 1186: xml_func.py: _alt: Fixed bug where not specifying any item would crash the program instead of raising a SyntaxException
Aaron Marcuse-Kubitza
05:33 PM Revision 1185: Factored verify.sql out into schemas dir
Aaron Marcuse-Kubitza
05:26 PM Revision 1184: input.Makefile: verify: Print diff in two columns if verbose=1
Aaron Marcuse-Kubitza
05:03 PM Revision 1183: inputs/SALVIAS/verify.sql: When filtering by datasource name, use an AND clause in the JOIN party's ON condition instead of a separate WHERE statement, so that the datasource filtering code is all on the same line
Aaron Marcuse-Kubitza
04:58 PM Revision 1182: inputs/SALVIAS/verify.sql: Use new :datasource variable instead of literal 'SALVIAS'
Aaron Marcuse-Kubitza
04:58 PM Revision 1181: input.Makefile: Provide the verify.sql script a :datasource variable set to the datasource name (in quotes)
Aaron Marcuse-Kubitza
04:39 PM Revision 1180: vegbien.ERD.mwb: Re-marked aggregateoccurrence:plantobservation relationship as 1:1 in the ERD
Aaron Marcuse-Kubitza
03:55 PM Revision 1179: bin/map: DB, CSV inputs: Use column indexes instead of column names to look up each field (optimization to avoid repeated dict lookups of the same key)
Aaron Marcuse-Kubitza
03:47 PM Revision 1178: util.py: ListDict: __str__(): Print each entry on its own line, in the order the keys were provided
Aaron Marcuse-Kubitza
03:37 PM Revision 1177: NYBG-DwC maps: Filter out MinimumElevation = "."
Aaron Marcuse-Kubitza
03:37 PM Revision 1176: xml_dom.py: NodeTextEntryIter: Filter out empty entries (instead of producing an entry with an explicit None value, which causes problems with XML funcs that can't handle Nones)
Aaron Marcuse-Kubitza
03:34 PM Revision 1175: NYBG-DwC maps: Map to input fields with XML func appended whenever possible (DwC1->DwC2 translation is done by DwC-VegBIEN.specimens.csv)
Aaron Marcuse-Kubitza
02:57 PM Revision 1174: vegbien.sql: Renamed methodtaxonclass.description to methodtaxonclass.taxonclass and changed it to a closed list (enum taxonclass). method.description can still be used for freeform taxonclass inclusions/exclusions.
Aaron Marcuse-Kubitza
02:47 PM Revision 1173: DwC1-DwC2.specimens.csv: Removed no longer needed /_alt/2 XML func from date mappings (you will only ever map either the full date or the year/month/day)
Aaron Marcuse-Kubitza
02:43 PM Revision 1172: DwC mappings: Moved DwC1's CoordinatePrecision /_noCV/value XML func suffix to DwC2-VegBIEN.specimens.csv
Aaron Marcuse-Kubitza
02:38 PM Revision 1171: mappings: Removed mappings for XML func suffixes of a path because they are now automatically created heuristically by join
Aaron Marcuse-Kubitza
02:37 PM Revision 1170: join: Added heuristic search for a match on a parent path, so that every XML func suffix of a path doesn't need its own mapping
Aaron Marcuse-Kubitza
02:03 PM Revision 1169: Regenerated vegbien.ERD exports
Aaron Marcuse-Kubitza
02:01 PM Revision 1168: vegbien.sql: Added method.pointsperline. Rearranged ERD after removing role fkeys.
Aaron Marcuse-Kubitza
02:00 PM Revision 1167: filter_ERD.csv: Remove role fkeys
Aaron Marcuse-Kubitza
01:45 PM Revision 1166: vegbien.sql: aggregateoccurrence: Added linecover
Aaron Marcuse-Kubitza
01:37 PM Revision 1165: vegbien.sql: methodtaxonclass: Added description comment with list of values (which may become a closed list)
Aaron Marcuse-Kubitza
01:10 PM Revision 1164: Regenerated vegbien.ERD exports
Aaron Marcuse-Kubitza
01:02 PM Revision 1163: vegbien.sql: Changed lengthunits to m in all comments
Aaron Marcuse-Kubitza
12:56 PM Revision 1162: vegbien.sql: method: Added subplotspacing and subplotmethod_id
Aaron Marcuse-Kubitza
12:36 PM Revision 1161: vegbien.sql: method: Removed lengthunits and instead require all length- or area-related measurements throughout VegBIEN to be converted to SI base units, e.g. cm -> m, ha -> m^2. Adjusted ERD to avoid some densely packed lines.
Aaron Marcuse-Kubitza
12:17 PM Revision 1160: vegbien.sql: methodtaxonclass: Added description field for taxon classes that don't fit well into a plantconcept. Made at least one of plantconcept_id or description required. Added unique constraint.
Aaron Marcuse-Kubitza
12:07 PM Revision 1159: SALVIAS verifications: Use count(DISTINCT) instead of nested SELECT DISTINCT
Aaron Marcuse-Kubitza
12:05 PM Revision 1158: VegBIEN verifications: Select only the records for the datasource being verified
Aaron Marcuse-Kubitza
11:46 AM Revision 1157: SALVIAS verifications: Fixed to exclude subplots from locations/location events and uniqify locations based on coords
Aaron Marcuse-Kubitza
11:25 AM Revision 1156: inputs/SALVIAS/verify.sql: Updated for schema changes
Aaron Marcuse-Kubitza
10:24 AM Revision 1155: Regenerated vegbien.ERD exports
Aaron Marcuse-Kubitza
10:22 AM Revision 1154: vegbien.ERD.mwb: Re-marked aggregateoccurrence:plantobservation relationship as 1:1 in the ERD. (I think this will need to be manually re-marked whenever either of those tables is updated.)
Aaron Marcuse-Kubitza
10:18 AM Revision 1153: vegbien.sql: Removed methodgrowthform and growthform, since growthforms can be accommodated by plantconcept in a similar way as higher-order taxonomic ranks
Aaron Marcuse-Kubitza
10:09 AM Revision 1152: vegbien.sql: methodgrowthform, methodtaxonclass: Removed "included" default value so it's always obvious whether the author intended the classes to be inclusions or exclusions
Aaron Marcuse-Kubitza
10:04 AM Revision 1151: vegbien.sql: aggregateoccurrence: Removed unneeded fields. Added aggregateoccurrence->coverindex fkey.
Aaron Marcuse-Kubitza
09:54 AM Revision 1150: vegbien.sql: Added constraint to enforce 1:1 aggregateoccurrence:plantobservation relationship
Aaron Marcuse-Kubitza

02/25/2012

08:16 PM Revision 1149: vegbien.sql: Added plantname unique constraint
Aaron Marcuse-Kubitza
08:01 PM Revision 1148: bin/map: Use new util.ListDict and util.WrapIter to simplify getting rows by column name instead of index, and to enable a row to be printed with its column names in error messages
Aaron Marcuse-Kubitza
08:00 PM Revision 1147: util.py: Added WrapIter to wrap an iterator and ListDict to view a list as a dict
Aaron Marcuse-Kubitza
07:38 PM Revision 1146: bin/map: Use new util.list_flip()
Aaron Marcuse-Kubitza
07:37 PM Revision 1145: util.py: Added list_flip()
Aaron Marcuse-Kubitza
07:02 PM Revision 1144: env_password: Fixed to set the environment variable in the calling shell. Do this by cc-ing the tty only on messages before the "Enter password" prompt, because the redirect creates a subshell which causes the env var to only be set within that subshell.
Aaron Marcuse-Kubitza
06:18 PM Revision 1143: inputs/NYBG-CSV/maps/DwC.specimens.csv: Removed mappings that are already present in mappings/DwC1-DwC2.specimens.csv. This map now contains only the mappings where NYBG-CSV differs from standard DwC1.
Aaron Marcuse-Kubitza
06:14 PM Revision 1142: inputs/NYBG/maps/DwC.specimens.csv: Removed mappings that are already present in mappings/DwC1-DwC2.specimens.csv. This map now contains only the mappings where NYBG differs from standard DwC1.
Aaron Marcuse-Kubitza
05:58 PM Revision 1141: Remove accidentally-committed temp file inputs/NYBG/DwC.specimens2.csv
Aaron Marcuse-Kubitza
05:56 PM Revision 1140: mappings/Makefile: Generate DwC.self.specimens.csv from DwC-VegBIEN.specimens.csv for use in creating full via maps for inputs
Aaron Marcuse-Kubitza
05:40 PM Revision 1139: input.Makefile: Generate full via maps from input via maps by appending mappings from the via format to itself when available
Aaron Marcuse-Kubitza
04:30 PM Revision 1138: inputs/NYBG/maps/DwC.specimens.csv: Changed label to "NYBG-DwC" to take advantage of automatic filling in of DwC mappings not specified in the NYBG map
Aaron Marcuse-Kubitza
04:28 PM Revision 1137: subtract: Support custom column numbers to compare on (instead of just input col). Added ignore option to continue even if input columns don't match.
Aaron Marcuse-Kubitza
04:26 PM Revision 1136: bin/map: DB inputs: Get all rows in one query (hopefully a significant optimization). Allow maps to contain entries for columns that are not in the DB table.
Aaron Marcuse-Kubitza
04:22 PM Revision 1135: sql.py: select(): Select all fields if fields == None. Replaced col(cur, idx) with col_names(cur) because an iterator is easier to use than getting by index.
Aaron Marcuse-Kubitza
03:57 PM Revision 1134: bin/map: Fixed bug in previous implementation of allowing maps for CSV inputs to contain entries for columns that are not in the CSV file
Aaron Marcuse-Kubitza
03:45 PM Revision 1133: bin/map: Allow maps for CSV inputs to contain entries for columns that are not in the CSV file
Aaron Marcuse-Kubitza
02:54 PM Revision 1132: Use new sort_map instead of manually specifying the sort order
Aaron Marcuse-Kubitza
02:54 PM Revision 1131: Added sort_map to sort a map spreadsheet in the standard order
Aaron Marcuse-Kubitza
02:43 PM Revision 1130: Removed no longer needed join_passthru, because join_union_sort now serves its purpose
Aaron Marcuse-Kubitza
02:42 PM Revision 1129: Don't generate mappings/for_review/DwC-VegBIEN.specimens.csv because it's a derived map with lots of duplicated mappings for the various DwC versions
Aaron Marcuse-Kubitza
02:41 PM Revision 1128: mappings/Makefile: Generate DwC-VegBIEN.specimens.csv directly from DwC1-DwC2 and DwC2-VegBIEN mappings by using join_union_sort with header_num=1, rather than via intermediate DwC1-VegBIEN.specimens.csv
Aaron Marcuse-Kubitza
02:37 PM Revision 1127: union: Added header_num option to select which map's header to use as the output header
Aaron Marcuse-Kubitza
02:28 PM Revision 1126: Rename join_sort to join_union_sort and have it run union in ignore mode. This will automatically append the joined map when the input map is a derivative of the joined map, such as for NYBG-DwC.
Aaron Marcuse-Kubitza
02:25 PM Revision 1125: union: Pass through map 0, so that if ignore is set, the input map will still be output. Allow either map's input label to contain the other's input label to enable e.g. appending mappings for an older input version to those for a newer input version.
Aaron Marcuse-Kubitza
01:43 PM Revision 1124: DwC1-DwC2 mapping: Changed input label to DwC1, which is allowed by the now relaxed label constraints imposed by union
Aaron Marcuse-Kubitza
01:42 PM Revision 1123: union: Check if two maps can be combined based on whether map 0 column 0 label *contains* map 1 column 0 label instead of being equal. This allows map 0's input 0 root to contain the datasource name as well as a format that allows it to be combined with a more general map. Added ignore flag to not print an error if column labels don't match.
Aaron Marcuse-Kubitza
01:39 PM Revision 1122: bin/map: Support optional data format tag in map spreadsheet labels, used by union to check if two maps can be combined
Aaron Marcuse-Kubitza
01:01 PM Revision 1121: mappings: Added DwC1-DwC2.specimens.csv to core maps so it gets cleaned up
Aaron Marcuse-Kubitza
12:57 PM Revision 1120: Only generate for_review mappings of core maps and end products
Aaron Marcuse-Kubitza
12:56 PM Revision 1119: Generate DwC-VegBIEN mapping as union of DwC1 and DwC2 mappings
Aaron Marcuse-Kubitza

02/24/2012

08:00 PM Revision 1118: Generate DwC-VegBIEN mapping as union of DwC1 and DwC2 mappings
Aaron Marcuse-Kubitza
07:40 PM Revision 1117: NYBG DB mapping: Removed IdentifiedDate and CollectedDate mappings because they are generated from the year/month/day
Aaron Marcuse-Kubitza
07:39 PM Revision 1116: Added mappings/for_review/DwC1-VegBIEN.specimens.csv
Aaron Marcuse-Kubitza
07:35 PM Revision 1115: Added DwC1-DwC mapping. Generate DwC1-VegBIEN mapping automatically.
Aaron Marcuse-Kubitza
07:11 PM Revision 1114: Regenerated vegbien.ERD exports
Aaron Marcuse-Kubitza
07:08 PM Revision 1113: vegbien.sql: Renamed _keys unique constraints/unique indexes to _unique to better reflect their purpose
Aaron Marcuse-Kubitza
06:54 PM Revision 1112: vegbien.sql: Added method.diameterheight to store DBH height
Aaron Marcuse-Kubitza
06:44 PM Revision 1111: VegBIEN: Moved plantstatus.plantlevel to plantname.rank because the taxonomic rank is a property of the name itself
Aaron Marcuse-Kubitza
06:43 PM Revision 1110: PostgreSQL-MySQL.csv: Fixed custom types translation to match shorter type names
Aaron Marcuse-Kubitza
06:09 PM Revision 1109: vegbien.sql: Added plantstatus unique constraint
Aaron Marcuse-Kubitza
06:07 PM Revision 1108: DwC-VegBIEN mapping: Map datasource name via DwC institutionCode
Aaron Marcuse-Kubitza
05:42 PM Revision 1107: Regenerated vegbien.ERD exports
Aaron Marcuse-Kubitza
05:40 PM Revision 1106: vegbien.ERD.mwb: Lined up logo and legend with other ERD elements
Aaron Marcuse-Kubitza
05:35 PM Revision 1105: vegbien.sql: Renamed methodgrowthform.growthformmethod_id to submethod_id. Added methodtaxonclass.submethod_id (similar to methodgrowthform.submethod_id).
Aaron Marcuse-Kubitza
05:27 PM Revision 1104: vegbien.sql: Added methodgrowthform.growthformmethod_id for specifying a method used by just the growthform
Aaron Marcuse-Kubitza
05:14 PM Revision 1103: vegbien.ERD.mwb: Rearranged legend to more closely match layout of ERD
Aaron Marcuse-Kubitza
04:51 PM Revision 1102: vegbien.sql: Reordered plantstatus fields to put the most important fields at the top, which will be visible in the ERD
Aaron Marcuse-Kubitza
04:42 PM Revision 1101: vegbien.sql: Replaced method.taxonclassincluded,taxonclassexcluded with new many:many methodtaxonclass table. Added methodgrowthform, growthform tables to do the same thing as methodtaxonclass for growth forms.
Aaron Marcuse-Kubitza
03:53 PM Revision 1100: vegbien.sql: method: Added comment on reference_id
Aaron Marcuse-Kubitza
03:44 PM Revision 1099: VegBIEN: Moved plotmethod fields to method because they can also apply to strata. Removed no longer used plotmethod table.
Aaron Marcuse-Kubitza
03:13 PM Revision 1098: input.Makefile: input DB creation: Removed "IF NOT EXISTS" because that check is handled by $(dbExists)
Aaron Marcuse-Kubitza
03:02 PM Revision 1097: input.Makefile: Don't try to recreate an input DB if it already exists
Aaron Marcuse-Kubitza
03:01 PM Revision 1096: Added UArizona DB input
Aaron Marcuse-Kubitza
02:42 PM Revision 1095: Renaming UArizona to UArizona-CSV because there is also a DB input in bien2_staging.ariz_raw on nimoy
Aaron Marcuse-Kubitza
02:31 PM Revision 1094: Added UArizona input
Aaron Marcuse-Kubitza
12:46 PM Revision 1093: env_password: Fixed bug where exit command would not cause it to exit, because pipefail shell option was not set. Moved automatic exiting of the calling script into env_password itself.
Aaron Marcuse-Kubitza
12:26 PM Revision 1092: map: Exit if password not set
Aaron Marcuse-Kubitza
12:18 PM Revision 1091: env_password: cc stderr if it's a log file
Aaron Marcuse-Kubitza

02/23/2012

06:49 PM Revision 1090: env_password: Print all messages to /dev/tty so the user sees them even if stderr is redirected to a log file. Exit if password not already set, because e.g. scripts run in the background will not be able to prompt for it.
Aaron Marcuse-Kubitza
05:32 PM Revision 1089: input.Makefile: Don't have make import call verify, because the user often runs import as a test and will not want the output cluttered with verification information. Also, the full imports for which this was intended are often run asynchronously, so that the user will not see the output anyway.
Aaron Marcuse-Kubitza
05:28 PM Revision 1088: input.Makefile: Don't abort on verification errors, which are expected during development
Aaron Marcuse-Kubitza

02/21/2012

06:21 PM Revision 1087: SALVIAS tests: Fixed invalid accepted test outputs due to not running `make empty_db` before running tests when using the no-redo optimization shortcut
Aaron Marcuse-Kubitza
06:14 PM Revision 1086: SALVIAS mappings: Fixed plot key mappings to map the correct values to subplot and parent plot
Aaron Marcuse-Kubitza
05:36 PM Revision 1085: vegbien.sql: locationevent: Added unique constraint for subplots based on subplot location
Aaron Marcuse-Kubitza
05:02 PM Revision 1084: SALVIAS-db VegX mapping: Map subplots correctly the way SALVIAS-CSV does
Aaron Marcuse-Kubitza
04:54 PM Revision 1083: SALVIAS verification: Updated to schema changes
Aaron Marcuse-Kubitza
04:42 PM Revision 1082: input.Makefile: Fixed syntax error in verify %.ref target (outdated variable name)
Aaron Marcuse-Kubitza
04:33 PM Revision 1081: input.Makefile: Halt psql commands on first error
Aaron Marcuse-Kubitza
04:27 PM Revision 1080: vegbien.sql: Removed location.authorlocationcode because it's now stored in locationevent as an author-specific setting
Aaron Marcuse-Kubitza
04:24 PM Revision 1079: vegbien.sql: locationevent: Redid unique constraints to avoid applying authorlocationcode-only duplicate elimination to subplots
Aaron Marcuse-Kubitza
04:16 PM Revision 1078: SALVIAS mappings: Map SiteCode/plot_code to locationevent.authorlocationcode because locationevent is now the place to store author-specific plot information
Aaron Marcuse-Kubitza
04:10 PM Revision 1077: SALVIAS mappings: Fixed PlotID mapping to go to locationevent.sourceaccessioncode
Aaron Marcuse-Kubitza
04:06 PM Revision 1076: VegBIEN: Renamed locationevent.authoreventcode to authorlocationcode to reflect that datasources usually use an author-defined code for a plot rather than a plot event
Aaron Marcuse-Kubitza
04:03 PM Revision 1075: vegbien.sql: locationevent: Redid unique constraints to handle datasources that treat the authoreventcode as an authorlocationcode. Eventually, authoreventcode will be renamed to authorlocationcode.
Aaron Marcuse-Kubitza
03:51 PM Revision 1074: vegbien.sql: locationevent: Redid unique constraints to work properly for all fully-specified combinations of keys
Aaron Marcuse-Kubitza
03:31 PM Revision 1073: VegBIEN mappings: Mapped datasource name to new project.datasource. Fixes project duplicate elimination.
Aaron Marcuse-Kubitza
03:16 PM Revision 1072: vegbien.sql: Renamed project.reference_id to datasource_id and pointed it to party, to match locationevent, etc.
Aaron Marcuse-Kubitza
03:02 PM Revision 1071: VegBIEN mappings: Mapped current lat/long to centerlat/long as well so location duplicate elimination will work properly
Aaron Marcuse-Kubitza
03:01 PM Revision 1070: xpath.py: Added support for common subpath after split path's {}
Aaron Marcuse-Kubitza
01:30 PM Revision 1069: sql.py: put(): When encountering a DuplicateKeyException, use dict_subset_right_join to fill in explicit NULL values for columns which don't have data. This causes the database to use the UNIQUE constraint's index to look up the record, instead of relying on individual column indexes for the columns that did have data, which may or may not be available.
Aaron Marcuse-Kubitza
01:27 PM Revision 1068: util.py: Added DefaultDict to wrap collections.defaultdict with a simple value passed in the constructor, defaulting to None. Added dict_subset_right_join() to fill in None for subset keys that don't exist.
Aaron Marcuse-Kubitza
01:06 PM Revision 1067: vegbien.sql: Added method and plotmethod UNIQUE indexes
Aaron Marcuse-Kubitza
01:04 PM Revision 1066: vegbien.ERD.mwb: Removed embargo table from ERD because its functionality is provided in location.confidentialitystatus,confidentialityreason
Aaron Marcuse-Kubitza
12:36 PM Revision 1065: Regenerated vegbien.ERD exports
Aaron Marcuse-Kubitza
12:34 PM Revision 1064: vegbien.sql: Moved locationevent method fields to plotmethod and method. Added comments to method/plotmethod fields, as provided by Michael Lee.
Aaron Marcuse-Kubitza
12:15 PM Revision 1063: VegX-VegBIEN mapping: Mapped locationevent.methodnarrative to new plotmethod table
Aaron Marcuse-Kubitza

02/18/2012

07:18 PM Revision 1062: Regenerated vegbien.ERD exports
Aaron Marcuse-Kubitza
07:15 PM Revision 1061: VegX-VegBIEN mapping: Map sourceaccessioncode and voucher (catalognumber_dwc) to correct place. SALVIAS mappings: Map SourceVoucher as an alternative to coll_number.
Aaron Marcuse-Kubitza
06:46 PM Revision 1060: vegbien.sql: Removed VegBank-internal tables (including user account tables) because they do not belong in the ecological database. Any web interface should store user account information, cached queries, etc. in a separate interface-specific database.
Aaron Marcuse-Kubitza
06:34 PM Revision 1059: VegX-VegBIEN mapping: Mapped stem tags to new stemtag table
Aaron Marcuse-Kubitza
05:47 PM Revision 1058: vegbien.sql: Renamed planttag to stemtag and made it a child of stemobservation. Removed trait table from ERD because it's not used for the purpose we want to use traits for.
Aaron Marcuse-Kubitza
05:05 PM Revision 1057: vegbien.sql: Removed no longer used location.reference_id. Datasource scoping is now done on locationevent instead, so that locations can be shared across datasources that refer to the same plot or point.
Aaron Marcuse-Kubitza
04:56 PM Revision 1056: VegX-VegBIEN mapping: Map datasource name (/_ignore/inLabel) to new locationevent.datasource instead of location.reference
Aaron Marcuse-Kubitza
04:45 PM Revision 1055: vegbien.sql: Added locationevent.datasource_id
Aaron Marcuse-Kubitza
04:33 PM Revision 1054: vegbien.sql: locationevent: Removed VegBank-internal interp_* fields
Aaron Marcuse-Kubitza
04:28 PM Revision 1053: VegBIEN: Renamed specimenreplicate.reference_id to datasource_id and pointed it to party instead of reference, since party is better optimized for storing names
Aaron Marcuse-Kubitza
04:14 PM Revision 1052: DwC mappings: Mapped datasource name to specimenreplicate.reference instead of location.reference
Aaron Marcuse-Kubitza
04:08 PM Revision 1051: DwC mappings: Mapped specimen description via fieldNotes instead of custom bien.specimenDescription field
Aaron Marcuse-Kubitza
03:52 PM Revision 1050: VegBIEN: Moved specimenreplicate.verbatimcollectorname to taxonoccurrence since it can also apply to aggregateoccurrences. Removed no longer needed taxonoccurrence fields which are now in taxondetermination.
Aaron Marcuse-Kubitza
03:31 PM Revision 1049: SALVIAS mappings: Mapped habit to growthForm (user-defined field) instead of habit
Aaron Marcuse-Kubitza
03:24 PM Revision 1048: DwC-VegBIEN mapping: Convert latitude/longitude values of exactly zero to NULL
Aaron Marcuse-Kubitza
03:23 PM Revision 1047: xml_func.py: Added _nullIf
Aaron Marcuse-Kubitza
03:22 PM Revision 1046: util.py: Fixed cast() to not cast a subclass to a superclass (which doesn't make sense in a dynamically-typed language). Added none_if().
Aaron Marcuse-Kubitza
02:50 PM Revision 1045: util.py: Removed locale import since it's no longer used by util
Aaron Marcuse-Kubitza
02:31 PM Revision 1044: NYBG-DwC mappings: Map Vegetation to habitat (merged with Habitat). DwC-VegBIEN mapping: Removed remaining mappings to plantobservation.
Aaron Marcuse-Kubitza
02:22 PM Revision 1043: DwC-VegBIEN mapping: Added datasource name to location.reference using /_ignore/inLabel
Aaron Marcuse-Kubitza
02:00 PM Revision 1042: profiling.py: Support Python before 2.7 by using new dates.total_seconds(). Also use dates.now() to ensure datetimes always have a timezone.
Aaron Marcuse-Kubitza
01:59 PM Revision 1041: dates.py: Fixed timestamp() to deal with microseconds correctly by adding them after time.mktime()
Aaron Marcuse-Kubitza
01:41 PM Revision 1040: dates.py: Deal properly with different timezones by using external dateutil package. Added total_seconds() to replace datetime.timedelta.total_seconds() on Python before 2.7.
Aaron Marcuse-Kubitza
12:41 PM Revision 1039: vegbien.sql: *method tables: Added table comments
Aaron Marcuse-Kubitza

02/17/2012

06:08 PM Revision 1038: VegX-VegBIEN mapping: Reordered 2-step-only mappings that use /_ignore/inLabel so they run at the same time as other mappings that set the field that uses /_ignore/inLabel. This fixes almost all of the failing 2-step tests.
Aaron Marcuse-Kubitza
05:53 PM Revision 1037: Regenerated vegbien.ERD exports
Aaron Marcuse-Kubitza
05:46 PM Revision 1036: vegbien.sql: method: Added lengthunits field
Aaron Marcuse-Kubitza
05:36 PM Revision 1035: vegbien.sql: Changed types of numerical plotmethod fields to double precision
Aaron Marcuse-Kubitza
05:32 PM Revision 1034: vegbien.sql: method, plotmethod: Added comments to fields
Aaron Marcuse-Kubitza
05:27 PM Revision 1033: vegbien.ERD.mwb: Adjusted lines
Aaron Marcuse-Kubitza
05:24 PM Revision 1032: vegbien.sql: Added plotmethod. locationevent points to plotmethod instead of directly to method
Aaron Marcuse-Kubitza
04:47 PM Revision 1031: vegbien.sql: Point to covermethod from method instead of locationevent
Aaron Marcuse-Kubitza
04:39 PM Revision 1030: vegbien.sql: Removed no longer needed sizeclass table (whose fields are now in method)
Aaron Marcuse-Kubitza
04:32 PM Revision 1029: vegbien.sql: Replaced stratumtype, stratummethod with method
Aaron Marcuse-Kubitza
04:25 PM Revision 1028: vegbien.sql: Attach method to aggregateoccurrence instead of taxonoccurrence
Aaron Marcuse-Kubitza
04:20 PM Revision 1027: vegbien.sql: Removed methodtrait* tables and added first-class method attributes as first-class fields of method. Removed *method tables from the ERD that will be replaced by method.
Aaron Marcuse-Kubitza
04:04 PM Revision 1026: vegbien.sql: Removed location.dsgpoly because it is now locationdetermination.footprintgeometry_dwc
Aaron Marcuse-Kubitza
03:59 PM Revision 1025: VegBIEN mappings: Remap to new locationdetermination fields
Aaron Marcuse-Kubitza
03:44 PM Revision 1024: VegBIEN: Renamed location.reallatitude,reallongitude to centerlatitude,centerlongitude to reflect that it's now a value calculated from the centroid of the current locationdetermination
Aaron Marcuse-Kubitza
03:35 PM Revision 1023: vegbien.sql: locationdetermination: Reordered fields
Aaron Marcuse-Kubitza
03:32 PM Revision 1022: vegbien.sql: locationdetermination.coordsaccuracy: Added comment with units
Aaron Marcuse-Kubitza
03:29 PM Revision 1021: vegbien.sql: locationdetermination: Added determination status columns from taxondetermination
Aaron Marcuse-Kubitza
03:20 PM Revision 1020: vegbien.sql: locationdetermination: Added coordinates-related fields
Aaron Marcuse-Kubitza
03:08 PM Revision 1019: VegX-VegBIEN mapping: Include the datasource name (now provided by map in /_ignore/inLabel) in the appropriate places in both VegX and VegBIEN
Aaron Marcuse-Kubitza
02:47 PM Revision 1018: bin/map: Removed metadata values feature since the syntax used was causing problems with mappings starting with a ":", and metadata can instead be stored as attributes of the primary key's mapping
Aaron Marcuse-Kubitza

02/16/2012

06:07 PM Revision 1017: xml_dom.py: Fixed bug in parent() where it didn't account for NodeParentIter's first element returned being the current node, not its parent. Refactored parent() to use parentNode directly, and NodeParentIter to use parent(), instead of the other way around.
Aaron Marcuse-Kubitza
05:38 PM Revision 1016: xml_dom.py: Fixed bug in parent() where incorrect variable name was used
Aaron Marcuse-Kubitza
05:05 PM Revision 1015: VegX-VegBIEN mapping: Use the input data source's label (e.g. SALVIAS) everywhere a reference is needed
Aaron Marcuse-Kubitza
05:04 PM Revision 1014: bin/map: Store the input data source's label (e.g. SALVIAS) in the output XML tree for use by references in the mappings
Aaron Marcuse-Kubitza

02/14/2012

06:57 PM Revision 1013: xpath.py: get(): Fixed bug where it would try to create a node named . or .. if . or .. didn't have matching attributes. Now it will just reuse the current or parent node, but create any needed attrs if create is True.
Aaron Marcuse-Kubitza
06:52 PM Revision 1012: util.py: Added list_eq_is() to compare two lists using is
Aaron Marcuse-Kubitza
06:23 PM Revision 1011: xpath.py: Don't allow rooted attributes (doesn't make sense), in case someone tries to do elem[/rooted_attr]
Aaron Marcuse-Kubitza
05:52 PM Revision 1010: bin/map: Moved root.clear() into separate function prep_root() that can be called whenever needed
Aaron Marcuse-Kubitza
05:43 PM Revision 1009: xpath.py: Added get() support for references (different from pointers) to dynamically set the value of an attribute
Aaron Marcuse-Kubitza
05:21 PM Revision 1008: util.py: Added list_get()
Aaron Marcuse-Kubitza
05:10 PM Revision 1007: util.py: Added is_list()
Aaron Marcuse-Kubitza
05:00 PM Revision 1006: bin/map: Use var doc0_root for quick reference to doc0's root
Aaron Marcuse-Kubitza
04:57 PM Revision 1005: xpath.py: get(): Go to root when empty element is encountered at the beginning of an XPath. Added allow_rooted parameter to turn off this functionality when XPaths with a leading slash should not be considered rooted.
Aaron Marcuse-Kubitza
04:32 PM Revision 1004: xpath.py: Don't consider a path starting with "." to be rooted. Do this by not automatically translating an empty path name to ".".
Aaron Marcuse-Kubitza
04:18 PM Revision 1003: xpath.py: Added is_rooted()
Aaron Marcuse-Kubitza
04:16 PM Revision 1002: xpath.py: Added elem_is_empty()
Aaron Marcuse-Kubitza
04:10 PM Revision 1001: xpath.py: Added documentation labels to each section
Aaron Marcuse-Kubitza
04:04 PM Revision 1000: xpath.py: Added support for getting the parent node when encountering ".."
Aaron Marcuse-Kubitza
04:02 PM Revision 999: xml_dom.py: Added parent() to get parent node without recursing past the root node to the document object. Documented that NodeParentIter incorporates this sanity check.
Aaron Marcuse-Kubitza
03:44 PM Revision 998: xpath.py: get(): Renamed parent to root to better reflect that it's the starting point for the search. Calling it parent will later be confusing when we want to get the parent node using "..".
Aaron Marcuse-Kubitza
03:31 PM Revision 997: xpath.py: Added parser support for attribute values that are references to another part of the XML tree
Aaron Marcuse-Kubitza
03:21 PM Revision 996: xml_func.py: Fixed module description comment to reflect that not all XML funcs generate text
Aaron Marcuse-Kubitza
03:20 PM Revision 995: xml_func.py: Refactored to add funcs to the module funcs variable as they are defined. Renamed defined functions to the name of the corresponding XML function.
Aaron Marcuse-Kubitza
03:01 PM Revision 994: xml_func.py: Added _ignore func to "comment out" an XML subtree
Aaron Marcuse-Kubitza
02:55 PM Revision 993: input.Makefile: Fixed error message when no DB file found so that it doesn't incorrectly imply that PostgreSQL inputs are supported
Aaron Marcuse-Kubitza
02:54 PM Revision 992: input.Makefile: Fixed error message when no DB file found so that it doesn't incorrectly imply that PostgreSQL inputs are supported
Aaron Marcuse-Kubitza
02:42 PM Revision 991: input.Makefile: Don't run tests in verbose mode because the run time stats, etc. are not relevant
Aaron Marcuse-Kubitza
02:41 PM Revision 990: bin/map: Only print error/run time stats in verbose mode. input.Makefile: Run import in verbose mode so that error/run time stats are still printed.
Aaron Marcuse-Kubitza
02:36 PM Revision 989: Moved value to string conversion functions infrom util.py to new module format.py
Aaron Marcuse-Kubitza
02:32 PM Revision 988: exc.py, profiling.py: Use util.int2str() to print # iters with thousands separators
Aaron Marcuse-Kubitza
02:32 PM Revision 987: util.py: Added int2str()
Aaron Marcuse-Kubitza
02:26 PM Revision 986: bin/map: Document that the exit status is the # of errors in the import, up to the maximum exit status
Aaron Marcuse-Kubitza
02:24 PM Revision 985: exc.py: Generalize ExTracker to not just print the # of errors at exit. Instead, provide an exit() method that the ExTracker creator can call at exit to set the exit status to the # of errors. This fixes the Python bug where a benign error message was printed if SystemExit was raised in an atexit function.
Aaron Marcuse-Kubitza
02:15 PM Revision 984: bin/map: Set ExPercentTracker's iter_text. Start ExPercentTracker after input processing, because errors in command line options should just end the program and don't need to be tracked.
Aaron Marcuse-Kubitza
02:13 PM Revision 983: exc.py: ExPercentTracker: Added ability to set custom iter_text, similar to ItersProfiler
Aaron Marcuse-Kubitza
02:07 PM Revision 982: bin/map: Use profiling.ItersProfiler. Refactored input row count calculation to have each function aggregate and return the row count, and then display the row count and statistics that depend on it at the end of the program.
Aaron Marcuse-Kubitza
02:06 PM Revision 981: Added profiling.py to time operations and provide the user with statistical information
Aaron Marcuse-Kubitza
02:03 PM Revision 980: util.py: Added basic to_si() to add SI prefix to value
Aaron Marcuse-Kubitza
01:02 PM Revision 979: util.py: Added format_str() to use locale-specific formatting settings, including thousands separator. Use it in to_percent().
Aaron Marcuse-Kubitza
12:48 PM Revision 978: bin/map: Use new ExPercentTracker to print error rate (% of # rows) when program exits
Aaron Marcuse-Kubitza
12:47 PM Revision 977: exc.py: Added ExPercentTracker to track errors as % of iterations
Aaron Marcuse-Kubitza
12:47 PM Revision 976: util.py: Added to_percent()
Aaron Marcuse-Kubitza
12:07 PM Revision 975
Aaron Marcuse-Kubitza
12:02 PM Revision 974: exc.py: print_ex(): Declare emph param as a keywork param instead of popping it from **format
Aaron Marcuse-Kubitza
11:54 AM Revision 973: exc.py: print_ex(): Declare emph param as a keywork param instead of popping it from **format
Aaron Marcuse-Kubitza

02/13/2012

04:38 PM Revision 972: inputs/SALVIAS/maps/VegX.organisms.csv: Mapped OrigSpecies and OrigGenus combined to new plantlevel Binomial
Aaron Marcuse-Kubitza
04:35 PM Revision 971: xpath.py: Fixed bug where value of XPath (used for copying to other branches) is retrieved after first XPath element is popped rather than before, which can sometimes leave an empty XPath for value() to run on
Aaron Marcuse-Kubitza
03:33 PM Revision 970: mappings/DwC-VegBIEN.specimens.csv: Fixed bien.vegetation mapping to point to commconcept->commname. Fixed bien.substrate mapping to point to locationevent.landscapenarrative.
Aaron Marcuse-Kubitza
03:25 PM Revision 969: inputs/NYBG/maps/DwC.specimens.csv: Mapped CoordinatePrecision using _noCV
Aaron Marcuse-Kubitza
03:24 PM Revision 968: xml_func.py: Added _noCV func to check that non-ratio-scale data does not contain CV values
Aaron Marcuse-Kubitza
02:34 PM Revision 967: mappings/DwC-VegBIEN.specimens.csv: Fixed locality fields mapping to go to location.locationnarrative
Aaron Marcuse-Kubitza
02:05 PM Revision 966: input.Makefile: For all input types, including DB, import each table in a separate map invocation
Aaron Marcuse-Kubitza
01:58 PM Revision 965: xml_func.py: _range: Treat a None from or to value as an unknown (a la SQL NULL) and return None instead of raising a SyntaxException
Aaron Marcuse-Kubitza
01:57 PM Revision 964: xml_dom.py: NodeTextEntryIter: Convert empty entries (including entries containing error comments) to None
Aaron Marcuse-Kubitza
01:48 PM Revision 963: xml_dom.py: replace(): Added support for new node that's None (deletes existing node)
Aaron Marcuse-Kubitza
12:59 PM Revision 962: xml_func.py: Put SyntaxException's cause on same line as error message so that the whole error is treated as distinct by error_stats
Aaron Marcuse-Kubitza
12:47 PM Revision 961: Added errors_filter_before and errors_filter_after to prepare `map` error messages for easy filtering and then restore line breaks
Aaron Marcuse-Kubitza
12:46 PM Revision 960: error_stats: Fixed to work on Mac
Aaron Marcuse-Kubitza
11:26 AM Revision 959: error_stats: Simplified to use uniq --count option
Aaron Marcuse-Kubitza
11:21 AM Revision 958: input.Makefile: Print error message if no input file found (for file input type). This fixes a bug where map would just take input from stdin when no input file redirect or input DB env vars were specified.
Aaron Marcuse-Kubitza
11:10 AM Revision 957: map: Map standard DB names to original DB names on nimoy
Aaron Marcuse-Kubitza
10:29 AM Revision 956: Regenerated vegbien.ERD exports
Aaron Marcuse-Kubitza
10:26 AM Revision 955: vegbien.sql: Added methodtrait and methodtraitname tables
Aaron Marcuse-Kubitza
10:24 AM Revision 954: PostgreSQL-MySQL.csv: Handle array types
Aaron Marcuse-Kubitza
09:54 AM Revision 953: vegbien.ERD.mwb: Recolored plant tables to all have the same color, distinct from the occurrence color
Aaron Marcuse-Kubitza
09:32 AM Revision 952: mappings/VegX-VegBIEN.organisms.csv: Added mappings for SALVIAS fields with no join mapping. This fixes the last of the "no join mapping" errors.
Aaron Marcuse-Kubitza
09:27 AM Revision 951: input.Makefile: svn_props: Set svn:ignore on maps subdirs
Aaron Marcuse-Kubitza
09:26 AM Revision 950: inputs/SALVIAS-CSV/maps/VegX.plots.csv: Fixed mappings without a join mapping in VegX-VegBIEN.*.csv
Aaron Marcuse-Kubitza
09:20 AM Revision 949: VegX mappings: Gentry DBH mapping: Use VegX's attribute and method tables
Aaron Marcuse-Kubitza
09:05 AM Revision 948: mappings/VegX-VegBIEN.organisms.csv: Removed no longer used mapping to taxondetermination.determinationdate. This also prevents ever creating a taxondetermination without a plantconcept.
Aaron Marcuse-Kubitza

02/11/2012

07:31 PM Revision 947: bin/map: Added redo option to control whether the database is emptied before inserting new data. Can be used to turn off emptying the DB in test mode, because this is often slow and is not needed if you are running tests on an empty testing database.
Aaron Marcuse-Kubitza
07:25 PM Revision 946: opts.py: env_flag(): Added support for default value if unset
Aaron Marcuse-Kubitza
07:25 PM Revision 945: opts.py: env_flag(): Added support for default value if unset
Aaron Marcuse-Kubitza
07:16 PM Revision 944: bin/map: Use env_flag()'s new env_names usage support to print flags usage
Aaron Marcuse-Kubitza
07:16 PM Revision 943: opts.py: Added env_names usage support to env_flag()
Aaron Marcuse-Kubitza
07:05 PM Revision 942: mappings/VegX-VegBIEN.organisms.csv: Removed no longer needed mapping for taxonDetermination/note
Aaron Marcuse-Kubitza
07:03 PM Revision 941: inputs/SALVIAS-CSV/maps/VegX.organisms.csv: Map cfaff to taxonConcept/fit, which maps to taxondetermination.taxonFit
Aaron Marcuse-Kubitza
06:59 PM Revision 940: inputs/SALVIAS/maps/VegX.organisms.csv: Map cfaff to taxonConcept/fit, which maps to taxondetermination.taxonFit
Aaron Marcuse-Kubitza
06:39 PM Revision 939: join: Print a warning if no join mapping found (in addition to adding this warning to the comments column)
Aaron Marcuse-Kubitza
06:27 PM Revision 938: Removed no longer needed inputs/NYBG/maps/VegX.organisms.csv because NYBG is now mapped via DwC
Aaron Marcuse-Kubitza
06:26 PM Revision 937: mappings/VegX-VegBIEN.organisms.csv: Removed mappings used only by NYBG, because NYBG now maps via DwC
Aaron Marcuse-Kubitza
06:11 PM Revision 936: Added ch_root_via to transform a map spreadsheet to use a different root, using a connecting root that links the input and output roots together
Aaron Marcuse-Kubitza
06:02 PM Revision 935: Added cols to select columns from a spreadsheet
Aaron Marcuse-Kubitza
06:02 PM Revision 934: util.py: Added list_subset()
Aaron Marcuse-Kubitza
05:42 PM Revision 933: ch_root: Fixed detection of unset env vars so that usage message is printed when any option is missing
Aaron Marcuse-Kubitza
05:41 PM Revision 932: opts.py: Call an error handler if an env var isn't set
Aaron Marcuse-Kubitza
05:40 PM Revision 931: util.py: Added function wrappers for statements noop() and and_()
Aaron Marcuse-Kubitza
05:07 PM Revision 930: inputs/NYBG-CSV: Map via DwC
Aaron Marcuse-Kubitza
04:50 PM Revision 929: Added subtract to subtract map spreadsheets
Aaron Marcuse-Kubitza
04:49 PM Revision 928: ch_root: Ignore empty lines
Aaron Marcuse-Kubitza
04:06 PM Revision 927: Added intersect to intersect two map spreadsheets
Aaron Marcuse-Kubitza
03:48 PM Revision 926: union: Clarified overwrite order of inputs in description
Aaron Marcuse-Kubitza
03:31 PM Revision 925: Removed no longer needed mappings/review
Aaron Marcuse-Kubitza
03:31 PM Revision 924: mappings/Makefile: Regenerate for_review maps automatically when a map changes
Aaron Marcuse-Kubitza
03:17 PM Revision 923: mappings/review: Generalized to convert all mappings to VegBIEN, not just a specific listed set (which was out of date)
Aaron Marcuse-Kubitza
03:16 PM Revision 922: mappings/for_review/DwC-VegBIEN.specimens.csv: Regenerated
Aaron Marcuse-Kubitza
03:12 PM Revision 921: inputs/NYBG/maps/DwC.specimens.csv: Fixed CollectedDate mapping to use the _date XML func
Aaron Marcuse-Kubitza
03:07 PM Revision 920: DwC mappings: Mapped Substrate and Vegetation
Aaron Marcuse-Kubitza
02:54 PM Revision 919: DwC mappings: Mapped BoundingBox, footprintWKT to location.dsgpoly
Aaron Marcuse-Kubitza
02:44 PM Revision 918: DwC mappings: Mapped Notes and PlantFungusDescription to bien.specimenDescription, merged together
Aaron Marcuse-Kubitza
02:41 PM Revision 917: xml_func.py: Added _merge and _label XML funcs
Aaron Marcuse-Kubitza
02:12 PM Revision 916: vegbien.sql: Added specimenreplicate.description
Aaron Marcuse-Kubitza
02:01 PM Revision 915: DwC mappings: Corrected mappings for CollectorNumber, individualID, recordNumber, and fieldNumber
Aaron Marcuse-Kubitza
01:31 PM Revision 914: DwC mappings: Mapped infraspecificEpithet to/from Subspecies
Aaron Marcuse-Kubitza
01:22 PM Revision 913: DwC-VegBIEN mapping: merge decimalLatitude/Longitude with verbatimLatitude/Longitude
Aaron Marcuse-Kubitza

02/10/2012

05:55 PM Revision 912: Regenerated vegbien.ERD exports
Aaron Marcuse-Kubitza
05:53 PM Revision 911: vegbien.ERD.mwb: Fixed lines. Repositioned elements.
Aaron Marcuse-Kubitza
05:41 PM Revision 910: vegbien.sql: Added locationevent.parent_id for subplot events to point to their parent plot event
Aaron Marcuse-Kubitza
05:21 PM Revision 909: vegbien.sql: Added plantconceptscope.namedplace_id
Aaron Marcuse-Kubitza
05:14 PM Revision 908: vegbien.sql: Added taxonoccurrence.method_id
Aaron Marcuse-Kubitza
05:00 PM Revision 907: vegbien.sql: Renamed plotmethod to method
Aaron Marcuse-Kubitza
04:47 PM Revision 906: vegbien.sql: Added locationdetermination.identifier_id
Aaron Marcuse-Kubitza
04:39 PM Revision 905: vegbien.ERD.mwb: Fixed lines
Aaron Marcuse-Kubitza
04:35 PM Revision 904: VegBIEN: Renamed locationplace to locationdetermination
Aaron Marcuse-Kubitza
04:18 PM Revision 903: vegbien.sql: Removed morphospecies, instead using plantconcept and new table plantconceptscope to represent scoped morphospecies. Reorganized plant* tables in ERD.
Aaron Marcuse-Kubitza
03:41 PM Revision 902: vegbien.ERD.mwb: Added plantcorrelation table to ERD
Aaron Marcuse-Kubitza

02/09/2012

07:08 PM Revision 901: mappings/VegX-VegBIEN.organisms.csv: Fixed TaxonomicRankBelowSubspeciesEnum mapping to use plantname instead of placing the name directly inside plantconcept. This bug was probably left over from the switch from linking directly to plantname rather than to a plantconcept which has a plantname.
Aaron Marcuse-Kubitza
06:54 PM Revision 900: Renamed get_errors to error_stats and added counts of each error message
Aaron Marcuse-Kubitza
06:24 PM Revision 899: Regenerated vegbien.ERD exports
Aaron Marcuse-Kubitza
06:22 PM Revision 898: vegbien.sql: Added plotmethod table
Aaron Marcuse-Kubitza

02/07/2012

05:22 PM Revision 897: input.Makefile: Renamed $(test) variable (containing the command to run a test) so it wouldn't conflict with test environment variable
Aaron Marcuse-Kubitza
05:10 PM Revision 896: mappings to VegBIEN: Don't map notes to taxondetermination because some organisms have notes but no species name
Aaron Marcuse-Kubitza
05:08 PM Revision 895: mappings/Makefile: Fixed bug in rules for cleaning up core maps whenever they change, which had the target and prerequisite reversed
Aaron Marcuse-Kubitza
04:39 PM Revision 894: input.Makefile: nolog option defaults to on when test is on
Aaron Marcuse-Kubitza
04:36 PM Revision 893: input.Makefile: Fixed bug where no log file was being created, even when nolog was off
Aaron Marcuse-Kubitza
04:11 PM Revision 892: Replaced all type(...) == str with util.is_str(...) to properly treat Unicode objects as strings
Aaron Marcuse-Kubitza
04:08 PM Revision 891: xml_dom.py: minidom.Element.write_opening(): Use new Attr.__str__() method for printing attributes
Aaron Marcuse-Kubitza
04:06 PM Revision 890: bin/map: For XML inputs, use xpath.get()'s new multiple result support to iterate over elements matching the root, rather than just iterating over the first matching element's siblings. This fixes the broken 2-step tests for stems, which didn't filter by the root's attributes.
Aaron Marcuse-Kubitza
04:04 PM Revision 889: xpath.py: get(): Fixed bug where limit was not passed to recursive get() calls
Aaron Marcuse-Kubitza
04:02 PM Revision 888: xml_dom.py: by_tag_name(): Iterate forwards over children unless last_only optimization turned on. Added Attr.__str__() and __repr__() for debug-printing Attrs.
Aaron Marcuse-Kubitza
03:10 PM Revision 887: xpath.py: get(): Turn off last_only optimization when limit > 1
Aaron Marcuse-Kubitza
03:07 PM Revision 886: xpath.py: get(): Added full support for returning multiple matches
Aaron Marcuse-Kubitza
02:33 PM Revision 885: xpath.py: get(): Added basic structure for returning multiple matches. Added limit parameter to select one or many matches.
Aaron Marcuse-Kubitza
02:13 PM Revision 884: input.Makefile: test/VegBIEN.%.2-step.xml: Use the core map specific to the test's table instead of the main core map
Aaron Marcuse-Kubitza
02:10 PM Revision 883: bin/map: Print error if map root not found inXML input
Aaron Marcuse-Kubitza
01:52 PM Revision 882: mappings/: Removed mappings used by old tester
Aaron Marcuse-Kubitza
01:48 PM Revision 881: inputs/SALVIAS/maps/VegX.*.csv: Replaced symlinks with actual files
Aaron Marcuse-Kubitza
01:45 PM Revision 880: Removed old tester
Aaron Marcuse-Kubitza
01:44 PM Revision 879: Switched to using inputs/test as main test target
Aaron Marcuse-Kubitza
01:38 PM Revision 878: Added SALVIAS-CSV tests
Aaron Marcuse-Kubitza
01:31 PM Revision 877: Added NYBG-CSV tests
Aaron Marcuse-Kubitza
01:28 PM Revision 876: input.Makefile: Run separate tests for each map spreadsheet (input table) rather than all tables at once. This will make it possible to test CSV inputs, which have one CSV per table.
Aaron Marcuse-Kubitza
12:54 PM Revision 875: Added NYBG-CSV input
Aaron Marcuse-Kubitza
12:47 PM Revision 874: inputs/Makefile: Fixed forwarding of empty targets to subdirs
Aaron Marcuse-Kubitza
12:20 PM Revision 873: Regenerated vegbien.ERD exports
Aaron Marcuse-Kubitza
12:17 PM Revision 872: vegbien.sql: Added morphospecies table
Aaron Marcuse-Kubitza
11:53 AM Revision 871: vegbien.ERD.mwb: Fixed lines
Aaron Marcuse-Kubitza
11:45 AM Revision 870: vegbien.sql: Removed the taxonOccurrence:aggregateOccurrence 1:1 constraint
Aaron Marcuse-Kubitza

02/06/2012

05:22 PM Revision 869: sql.py: truncate(): Use run_raw_query() instead of run_query() because truncate() does not use the recover functionality of run_query(). Also, in the profiling output, this separates the "normal" SQL statements (which use run_query()) from the "core" SQL statements (which use run_raw_query()).
Aaron Marcuse-Kubitza
05:09 PM Revision 868: vegbien.sql: Added indexes for each field in party used in duplicate elimination (for use by sql.put()'s DuplicateKeyException handler)
Aaron Marcuse-Kubitza
04:58 PM Revision 867: sql.py: run_raw_query(): In debug mode, print query after params have been substituted in
Aaron Marcuse-Kubitza
04:55 PM Revision 866: sql.py: Fixed index_cols() to handle UNIQUE indexes with expressions, whose column names are stored in a different format
Aaron Marcuse-Kubitza
04:04 PM Revision 865: sql.py: Print warning if SELECT statement missing a WHERE, LIMIT, or OFFSET clause. Changed bin/map DB input get-all-rows statement to pass start=0 to suppress this warning for that statement.
Aaron Marcuse-Kubitza
03:51 PM Revision 864: db_xml.py: Added start option to get() that passes through to sql.select()
Aaron Marcuse-Kubitza
03:50 PM Revision 863: sql.py: Added start option to select() to set the OFFSET
Aaron Marcuse-Kubitza
03:27 PM Revision 862: sql.py: If run_raw_query.debug flag is set, print each query executed (on a single line)
Aaron Marcuse-Kubitza
03:25 PM Revision 861: strings.py: Added one_line() function to make a string all on one line
Aaron Marcuse-Kubitza
03:20 PM Revision 860: strings.py: Renamed one_line() to remove_extra_newl() to better reflect what it does
Aaron Marcuse-Kubitza
03:19 PM Revision 859: bin/map: Don't print Done after an action in debug logging mode because it messes up newlines when more debugging info is printed right after it
Aaron Marcuse-Kubitza
02:45 PM Revision 858: input.Makefile: Added nolog option to disable creating a log file, e.g. for debugging runs
Aaron Marcuse-Kubitza
01:57 PM Revision 857: xml_dom.py: Remove extra newlines from single-line strings (bin/map doesn't need to do this itself anymore)
Aaron Marcuse-Kubitza
01:56 PM Revision 856: strings.py: Added is_multiline() and one_line() for removing extra newlines from single-line strings
Aaron Marcuse-Kubitza
01:48 PM Revision 855: bin/map: In debug mode, print input XPath's XML tree all on one line
Aaron Marcuse-Kubitza
01:22 PM Revision 854: sql.py: Switched try_insert() to use index_cols() instead of constraint_cols() for "duplicate key value violates unique constraint" errors because they can also be generated by UNIQUE indexes (and there is a UNIQUE index for every UNIQUE constraint)
Aaron Marcuse-Kubitza
01:14 PM Revision 853: sql.py: Added index_cols() to get cols used by an index (similar to constraint_cols())
Aaron Marcuse-Kubitza
01:00 PM Revision 852: vegbien.sql: Fixed duplicate elimination for party to use a UNIQUE index with COALESCE for nullable fields
Aaron Marcuse-Kubitza
01:00 PM Revision 851: sql.py: Fixed bug in try_insert() where DuplicateKeyException was passed only cols[0] instead of cols array
Aaron Marcuse-Kubitza
12:49 PM Revision 850: vegbien.ERD.mwb: Fixed lines
Aaron Marcuse-Kubitza
12:30 PM Revision 849: Added get_errors to select just the error messages from `map` output
Aaron Marcuse-Kubitza
11:59 AM Revision 848: Added profile_stats to analyze a profiling statistics file
Aaron Marcuse-Kubitza
11:59 AM Revision 847: bin/map: Added profile_to option which turns on profiling to the specified file
Aaron Marcuse-Kubitza
11:13 AM Revision 846: bin/map: Added "if __name__ == '__main__': main()" idiom so file can be included as well as run. This will be useful for profiling.
Aaron Marcuse-Kubitza
11:12 AM Revision 845: dates.py: Fixed strftime() to pad years and days with leading zeros as datetime.strftime() does
Aaron Marcuse-Kubitza
11:01 AM Revision 844: dates.py: Work around strftime() bug that can't deal with 2/29 on a leap year
Aaron Marcuse-Kubitza
10:44 AM Revision 843: xml_func.py: Added FormatException for SyntaxExceptions generated by strftime() (which are often Python bugs)
Aaron Marcuse-Kubitza
09:46 AM Revision 842: Added schemas/vegbank.revised.sql. Initial version has all "character varying" types replaced with text.
Aaron Marcuse-Kubitza
09:45 AM Revision 841: vegbien.sql: Replaced all "character varying" types with text, removing the length limits. Note that in PostgreSQL, text and "character varying" are stored the same way internally, so this does not affect performance or indexes.
Aaron Marcuse-Kubitza

02/04/2012

05:28 PM Revision 840: xml_dom.py: Added documentation labels to each section
Aaron Marcuse-Kubitza
05:21 PM Revision 839: xml_dom.py: Fixed bug in NodeTextEntryIter where an entry containing an element instead of a text node would be returned as the whole entry, instead of the value *of* the entry
Aaron Marcuse-Kubitza
04:56 PM Revision 838: bin/map: Added support for starting import at a specific row. Refactored row-processing code with and without a map to use a common process_rows() function (with the previous process_rows() being renamed to map_rows()).
Aaron Marcuse-Kubitza
04:14 PM Revision 837: bin/map: Use new util.cast()
Aaron Marcuse-Kubitza
04:14 PM Revision 836: util.py: Added cast() to cast a value while passing None through
Aaron Marcuse-Kubitza
04:09 PM Revision 835: bin/map: Print row # of rows with errors
Aaron Marcuse-Kubitza
03:22 PM Revision 834: sql.py: Fixed error in pkey() where recover was not passed as a named parameter to run_query()
Aaron Marcuse-Kubitza
03:12 PM Revision 833: sql.py: Added documentation labels to each section
Aaron Marcuse-Kubitza
03:10 PM Revision 832: sql.py: Added documentation labels to each section
Aaron Marcuse-Kubitza
03:03 PM Revision 831: db_xml.py: Used new sql.py recover functionality
Aaron Marcuse-Kubitza
03:03 PM Revision 830: sql.py: Added ability to recover from database errors so you don't get the error "InternalError: current transaction is aborted, commands ignored until end of transaction block"
Aaron Marcuse-Kubitza
02:25 PM Revision 829: vegbien.sql: Removed taxonoccurrence.taxoninferencearea because it's duplicated in aggregateoccurrence.inferencearea
Aaron Marcuse-Kubitza
02:18 PM Revision 828: bin/map: Highlight the "input row" and "output row:" labels in error messages
Aaron Marcuse-Kubitza
02:17 PM Revision 827: xml_func.py: Highlight nodes that were commented out because of errors
Aaron Marcuse-Kubitza
02:17 PM Revision 826: exc.py: Print exceptions with the first line highlighted in red
Aaron Marcuse-Kubitza
02:16 PM Revision 825: term.py: Added emph() and error()
Aaron Marcuse-Kubitza
01:51 PM Revision 824: vegbien.ERD.mwb: Fixed lines
Aaron Marcuse-Kubitza
01:47 PM Revision 823: vegbien.ERD.mwb: Fixed lines
Aaron Marcuse-Kubitza
01:46 PM Revision 822: vegbien.ERD.mwb: Added note, notelink, and revision
Aaron Marcuse-Kubitza
01:43 PM Revision 821: vegbien.ERD.mwb: Added embargo to diagram
Aaron Marcuse-Kubitza
01:27 PM Revision 820: Regenerated vegbien.ERD exports
Aaron Marcuse-Kubitza
01:24 PM Revision 819: vegbien.ERD.mwb: Fixed lines. Added "Core subset" and "Other tables" labels.
Aaron Marcuse-Kubitza
01:03 PM Revision 818: xml_func.py: Changed _date func to use new dates.strftime(), which can handle years before 1900
Aaron Marcuse-Kubitza
01:03 PM Revision 817: Added dates.py to handle date/time manipulation, such as fixing Python's broken strftime() that can't handle years before 1900
Aaron Marcuse-Kubitza
01:02 PM Revision 816: Regenerated mappings/for_review/DwC-VegBIEN.specimens.csv
Aaron Marcuse-Kubitza
 

Also available in: Atom