Project

General

Profile

Statistics
| Revision:

# Date Author Comment
1080 02/21/2012 04:27 PM Aaron Marcuse-Kubitza

vegbien.sql: Removed location.authorlocationcode because it's now stored in locationevent as an author-specific setting

1079 02/21/2012 04:24 PM Aaron Marcuse-Kubitza

vegbien.sql: locationevent: Redid unique constraints to avoid applying authorlocationcode-only duplicate elimination to subplots

1078 02/21/2012 04:16 PM Aaron Marcuse-Kubitza

SALVIAS mappings: Map SiteCode/plot_code to locationevent.authorlocationcode because locationevent is now the place to store author-specific plot information

1077 02/21/2012 04:10 PM Aaron Marcuse-Kubitza

SALVIAS mappings: Fixed PlotID mapping to go to locationevent.sourceaccessioncode

1076 02/21/2012 04:06 PM Aaron Marcuse-Kubitza

VegBIEN: Renamed locationevent.authoreventcode to authorlocationcode to reflect that datasources usually use an author-defined code for a plot rather than a plot event

1075 02/21/2012 04:03 PM Aaron Marcuse-Kubitza

vegbien.sql: locationevent: Redid unique constraints to handle datasources that treat the authoreventcode as an authorlocationcode. Eventually, authoreventcode will be renamed to authorlocationcode.

1074 02/21/2012 03:51 PM Aaron Marcuse-Kubitza

vegbien.sql: locationevent: Redid unique constraints to work properly for all fully-specified combinations of keys

1073 02/21/2012 03:31 PM Aaron Marcuse-Kubitza

VegBIEN mappings: Mapped datasource name to new project.datasource. Fixes project duplicate elimination.

1072 02/21/2012 03:16 PM Aaron Marcuse-Kubitza

vegbien.sql: Renamed project.reference_id to datasource_id and pointed it to party, to match locationevent, etc.

1071 02/21/2012 03:02 PM Aaron Marcuse-Kubitza

VegBIEN mappings: Mapped current lat/long to centerlat/long as well so location duplicate elimination will work properly

1070 02/21/2012 03:01 PM Aaron Marcuse-Kubitza

xpath.py: Added support for common subpath after split path's {}

1069 02/21/2012 01:30 PM Aaron Marcuse-Kubitza

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.

1068 02/21/2012 01:27 PM Aaron Marcuse-Kubitza

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.

1067 02/21/2012 01:06 PM Aaron Marcuse-Kubitza

vegbien.sql: Added method and plotmethod UNIQUE indexes

1066 02/21/2012 01:04 PM Aaron Marcuse-Kubitza

vegbien.ERD.mwb: Removed embargo table from ERD because its functionality is provided in location.confidentialitystatus,confidentialityreason

1065 02/21/2012 12:36 PM Aaron Marcuse-Kubitza

Regenerated vegbien.ERD exports

1064 02/21/2012 12:34 PM Aaron Marcuse-Kubitza

vegbien.sql: Moved locationevent method fields to plotmethod and method. Added comments to method/plotmethod fields, as provided by Michael Lee.

1063 02/21/2012 12:15 PM Aaron Marcuse-Kubitza

VegX-VegBIEN mapping: Mapped locationevent.methodnarrative to new plotmethod table

1062 02/18/2012 07:18 PM Aaron Marcuse-Kubitza

Regenerated vegbien.ERD exports

1061 02/18/2012 07:15 PM Aaron Marcuse-Kubitza

VegX-VegBIEN mapping: Map sourceaccessioncode and voucher (catalognumber_dwc) to correct place. SALVIAS mappings: Map SourceVoucher as an alternative to coll_number.

1060 02/18/2012 06:46 PM Aaron Marcuse-Kubitza

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.

1059 02/18/2012 06:34 PM Aaron Marcuse-Kubitza

VegX-VegBIEN mapping: Mapped stem tags to new stemtag table

1058 02/18/2012 05:47 PM Aaron Marcuse-Kubitza

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.

1057 02/18/2012 05:05 PM Aaron Marcuse-Kubitza

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.

1056 02/18/2012 04:56 PM Aaron Marcuse-Kubitza

VegX-VegBIEN mapping: Map datasource name (/_ignore/inLabel) to new locationevent.datasource instead of location.reference

1055 02/18/2012 04:45 PM Aaron Marcuse-Kubitza

vegbien.sql: Added locationevent.datasource_id

1054 02/18/2012 04:33 PM Aaron Marcuse-Kubitza

vegbien.sql: locationevent: Removed VegBank-internal interp_* fields

1053 02/18/2012 04:28 PM Aaron Marcuse-Kubitza

VegBIEN: Renamed specimenreplicate.reference_id to datasource_id and pointed it to party instead of reference, since party is better optimized for storing names

1052 02/18/2012 04:14 PM Aaron Marcuse-Kubitza

DwC mappings: Mapped datasource name to specimenreplicate.reference instead of location.reference

1051 02/18/2012 04:08 PM Aaron Marcuse-Kubitza

DwC mappings: Mapped specimen description via fieldNotes instead of custom bien.specimenDescription field

1050 02/18/2012 03:52 PM Aaron Marcuse-Kubitza

VegBIEN: Moved specimenreplicate.verbatimcollectorname to taxonoccurrence since it can also apply to aggregateoccurrences. Removed no longer needed taxonoccurrence fields which are now in taxondetermination.

1049 02/18/2012 03:31 PM Aaron Marcuse-Kubitza

SALVIAS mappings: Mapped habit to growthForm (user-defined field) instead of habit

1048 02/18/2012 03:24 PM Aaron Marcuse-Kubitza

DwC-VegBIEN mapping: Convert latitude/longitude values of exactly zero to NULL

1047 02/18/2012 03:23 PM Aaron Marcuse-Kubitza

xml_func.py: Added _nullIf

1046 02/18/2012 03:22 PM Aaron Marcuse-Kubitza

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().

1045 02/18/2012 02:50 PM Aaron Marcuse-Kubitza

util.py: Removed locale import since it's no longer used by util

1044 02/18/2012 02:31 PM Aaron Marcuse-Kubitza

NYBG-DwC mappings: Map Vegetation to habitat (merged with Habitat). DwC-VegBIEN mapping: Removed remaining mappings to plantobservation.

1043 02/18/2012 02:22 PM Aaron Marcuse-Kubitza

DwC-VegBIEN mapping: Added datasource name to location.reference using /_ignore/inLabel

1042 02/18/2012 02:00 PM Aaron Marcuse-Kubitza

profiling.py: Support Python before 2.7 by using new dates.total_seconds(). Also use dates.now() to ensure datetimes always have a timezone.

1041 02/18/2012 01:59 PM Aaron Marcuse-Kubitza

dates.py: Fixed timestamp() to deal with microseconds correctly by adding them after time.mktime()

1040 02/18/2012 01:41 PM Aaron Marcuse-Kubitza

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.

1039 02/18/2012 12:41 PM Aaron Marcuse-Kubitza

vegbien.sql: *method tables: Added table comments

1038 02/17/2012 06:08 PM Aaron Marcuse-Kubitza

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.

1037 02/17/2012 05:53 PM Aaron Marcuse-Kubitza

Regenerated vegbien.ERD exports

1036 02/17/2012 05:46 PM Aaron Marcuse-Kubitza

vegbien.sql: method: Added lengthunits field

1035 02/17/2012 05:36 PM Aaron Marcuse-Kubitza

vegbien.sql: Changed types of numerical plotmethod fields to double precision

1034 02/17/2012 05:32 PM Aaron Marcuse-Kubitza

vegbien.sql: method, plotmethod: Added comments to fields

1033 02/17/2012 05:27 PM Aaron Marcuse-Kubitza

vegbien.ERD.mwb: Adjusted lines

1032 02/17/2012 05:24 PM Aaron Marcuse-Kubitza

vegbien.sql: Added plotmethod. locationevent points to plotmethod instead of directly to method

1031 02/17/2012 04:47 PM Aaron Marcuse-Kubitza

vegbien.sql: Point to covermethod from method instead of locationevent

1030 02/17/2012 04:39 PM Aaron Marcuse-Kubitza

vegbien.sql: Removed no longer needed sizeclass table (whose fields are now in method)

1029 02/17/2012 04:32 PM Aaron Marcuse-Kubitza

vegbien.sql: Replaced stratumtype, stratummethod with method

1028 02/17/2012 04:25 PM Aaron Marcuse-Kubitza

vegbien.sql: Attach method to aggregateoccurrence instead of taxonoccurrence

1027 02/17/2012 04:20 PM Aaron Marcuse-Kubitza

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.

1026 02/17/2012 04:04 PM Aaron Marcuse-Kubitza

vegbien.sql: Removed location.dsgpoly because it is now locationdetermination.footprintgeometry_dwc

1025 02/17/2012 03:59 PM Aaron Marcuse-Kubitza

VegBIEN mappings: Remap to new locationdetermination fields

1024 02/17/2012 03:44 PM Aaron Marcuse-Kubitza

VegBIEN: Renamed location.reallatitude,reallongitude to centerlatitude,centerlongitude to reflect that it's now a value calculated from the centroid of the current locationdetermination

1023 02/17/2012 03:35 PM Aaron Marcuse-Kubitza

vegbien.sql: locationdetermination: Reordered fields

1022 02/17/2012 03:32 PM Aaron Marcuse-Kubitza

vegbien.sql: locationdetermination.coordsaccuracy: Added comment with units

1021 02/17/2012 03:29 PM Aaron Marcuse-Kubitza

vegbien.sql: locationdetermination: Added determination status columns from taxondetermination

1020 02/17/2012 03:20 PM Aaron Marcuse-Kubitza

vegbien.sql: locationdetermination: Added coordinates-related fields

1019 02/17/2012 03:08 PM Aaron Marcuse-Kubitza

VegX-VegBIEN mapping: Include the datasource name (now provided by map in /_ignore/inLabel) in the appropriate places in both VegX and VegBIEN

1018 02/17/2012 02:47 PM Aaron Marcuse-Kubitza

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

1017 02/16/2012 06:07 PM Aaron Marcuse-Kubitza

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.

1016 02/16/2012 05:38 PM Aaron Marcuse-Kubitza

xml_dom.py: Fixed bug in parent() where incorrect variable name was used

1015 02/16/2012 05:05 PM Aaron Marcuse-Kubitza

VegX-VegBIEN mapping: Use the input data source's label (e.g. SALVIAS) everywhere a reference is needed

1014 02/16/2012 05:04 PM Aaron Marcuse-Kubitza

bin/map: Store the input data source's label (e.g. SALVIAS) in the output XML tree for use by references in the mappings

1013 02/14/2012 06:57 PM Aaron Marcuse-Kubitza

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.

1012 02/14/2012 06:52 PM Aaron Marcuse-Kubitza

util.py: Added list_eq_is() to compare two lists using is

1011 02/14/2012 06:23 PM Aaron Marcuse-Kubitza

xpath.py: Don't allow rooted attributes (doesn't make sense), in case someone tries to do elem[/rooted_attr]

1010 02/14/2012 05:52 PM Aaron Marcuse-Kubitza

bin/map: Moved root.clear() into separate function prep_root() that can be called whenever needed

1009 02/14/2012 05:43 PM Aaron Marcuse-Kubitza

xpath.py: Added get() support for references (different from pointers) to dynamically set the value of an attribute

1008 02/14/2012 05:21 PM Aaron Marcuse-Kubitza

util.py: Added list_get()

1007 02/14/2012 05:10 PM Aaron Marcuse-Kubitza

util.py: Added is_list()

1006 02/14/2012 05:00 PM Aaron Marcuse-Kubitza

bin/map: Use var doc0_root for quick reference to doc0's root

1005 02/14/2012 04:57 PM Aaron Marcuse-Kubitza

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.

1004 02/14/2012 04:32 PM Aaron Marcuse-Kubitza

xpath.py: Don't consider a path starting with "." to be rooted. Do this by not automatically translating an empty path name to ".".

1003 02/14/2012 04:18 PM Aaron Marcuse-Kubitza

xpath.py: Added is_rooted()

1002 02/14/2012 04:16 PM Aaron Marcuse-Kubitza

xpath.py: Added elem_is_empty()

1001 02/14/2012 04:10 PM Aaron Marcuse-Kubitza

xpath.py: Added documentation labels to each section

1000 02/14/2012 04:04 PM Aaron Marcuse-Kubitza

xpath.py: Added support for getting the parent node when encountering ".."

999 02/14/2012 04:02 PM Aaron Marcuse-Kubitza

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.

998 02/14/2012 03:44 PM Aaron Marcuse-Kubitza

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 "..".

997 02/14/2012 03:31 PM Aaron Marcuse-Kubitza

xpath.py: Added parser support for attribute values that are references to another part of the XML tree

996 02/14/2012 03:21 PM Aaron Marcuse-Kubitza

xml_func.py: Fixed module description comment to reflect that not all XML funcs generate text

995 02/14/2012 03:20 PM Aaron Marcuse-Kubitza

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.

994 02/14/2012 03:01 PM Aaron Marcuse-Kubitza

xml_func.py: Added _ignore func to "comment out" an XML subtree

993 02/14/2012 02:55 PM Aaron Marcuse-Kubitza

input.Makefile: Fixed error message when no DB file found so that it doesn't incorrectly imply that PostgreSQL inputs are supported

992 02/14/2012 02:54 PM Aaron Marcuse-Kubitza

input.Makefile: Fixed error message when no DB file found so that it doesn't incorrectly imply that PostgreSQL inputs are supported

991 02/14/2012 02:42 PM Aaron Marcuse-Kubitza

input.Makefile: Don't run tests in verbose mode because the run time stats, etc. are not relevant

990 02/14/2012 02:41 PM Aaron Marcuse-Kubitza

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.

989 02/14/2012 02:36 PM Aaron Marcuse-Kubitza

Moved value to string conversion functions infrom util.py to new module format.py

988 02/14/2012 02:32 PM Aaron Marcuse-Kubitza

exc.py, profiling.py: Use util.int2str() to print # iters with thousands separators

987 02/14/2012 02:32 PM Aaron Marcuse-Kubitza

util.py: Added int2str()

986 02/14/2012 02:26 PM Aaron Marcuse-Kubitza

bin/map: Document that the exit status is the # of errors in the import, up to the maximum exit status

985 02/14/2012 02:24 PM Aaron Marcuse-Kubitza

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.

984 02/14/2012 02:15 PM Aaron Marcuse-Kubitza

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.

983 02/14/2012 02:13 PM Aaron Marcuse-Kubitza

exc.py: ExPercentTracker: Added ability to set custom iter_text, similar to ItersProfiler

982 02/14/2012 02:07 PM Aaron Marcuse-Kubitza

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.

981 02/14/2012 02:06 PM Aaron Marcuse-Kubitza

Added profiling.py to time operations and provide the user with statistical information