psql_vegbien: Changed to use postgres_vegbien
Added postgres_vegbien to run PostgreSQL command on the vegbien db
SALVIAS verification: Added plot methods
SALVIAS verification: Added # plots
Makefile: Added targets to run input targets on all inputs
SALVIAS verification: Added projects list to examine why project counts differ
SALVIAS verification: Made statement-label SELECT statements use the same syntax for MySQL and PostgreSQL so they are easy to copy and paste between the input and output queries
input.Makefile: Don't remove logs in clean
input.Makefile: Added support for multi-column verification queries. inputs/SALVIAS: Added a multi-column verification query.
input.Makefile: Remove all *.out in clean
inputs: Don't keep *.out under version control
input.Makefile: Added rules to verify inserted data and run tests
Regenerated inputs/SALVIAS/map.VegBIEN.1.organisms.csv
exc.py: Print ! before error messages so they can be found and counted more easily in log files
input.Makefile: Only output to log if importing all rows
Moved vegbien CREATE DATABASE command to Makefile and run vegbien.sql as bien user
Renamed vegbien tables according to Bob Peet's new VegBank-VegBIEN mapping
input.Makefile: Don't print commands that use set -x to be echoed
input.Makefile: Use system's time utility instead of shell's time command
sql.py: Include sql.DbException in DatabaseErrors list
Generate VegX-VegBIEN.organisms.csv from VegBank-VegBIEN.map.csv, which is generated from VegBank-VegBIEN.map_only.csv
repl: Process whole file as one string so that regexps can match EOF for appending
mappings/Makefile: Clean -VegBIEN..csv maps
Generate VegBank-VegBIEN.schema.csv from VegBank-VegBIEN.schema_only.csv and VegBank-VegBIEN.csv
Added cat_csv to concatenate two spreadsheets
Removed no longer needed inputs/SALVIAS/db.sh
Add sort order prefixes to inputs/SALVIAS maps
VegX-VegBank organisms mapping: Added collectionDate mapping
mappings/Makefile: Sort VegX-VegBank organisms mapping automatically when anything that depends on it is remade
Added in_place to run a stream command on a file
join_sort: Use /bin/sh instead of /bin/bash
NYBG-VegX mapping: Removed no longer needed global stem count value
Renamed test/accept_output to accept
VegX-VegBank.organisms.csv: Made stemCount default to 1
bin/map: Print DatabaseErrors without stack traces
exc.py: Added print_ex()
util.py: Added type_name()
strings.py: Added ensure_newl()
input.Makefile: Save map output in log file
bin/map: Print usage message when run with no arguments
Makefile: Removed unnecessary commenting out of "allow from 127.0.0.0..." lines in /etc/phppgadmin/apache.conf
Makefile: Use --loose-exit-status for ed to avoid failing on no match. In editPhppgadminApacheConf, use ,s/// instead of /.../\ns/// to match lines regardless of position.
Makefile: Use tee instead of ed in sudoAppend. Don't change apache port to 8080 if apache already running on 80.
Makefile: Added phppgadmin apache config
bin/map: Only treat DatabaseErrors as warnings, not all Exceptions
xml_func.py: Print newline before func XML because XML is now pretty-printed with indents
xml_dom.py: Node.__str__() uses toprettyxml() instead of toxml()
util.py: Changed rename_key() not to suppress KeyError, since some callers might want to assert that a key exists
Makefile: Added phpPgAdmin dependency
xml_func.py: _name func doesn't require all name parts to be set. _namePart func throws SyntaxException for invalid name parts.
bin/map: Fixed syntax error where db variable had not been renamed to out_db
xml_func.py: Generate SyntaxExceptions on missing XML func args
VegX-VegBank mapping: Added default soilObs.soilHorizon value
xml_func.py: Changed _date func to try parsing date field, rather than year field, as a decimal. Changed SALVIAS mappings to use new _date func syntax. Fixes SALVIAS plots data syntax error for decimal years.
Removed no longer needed VegBank accepted test outputs
test/map: Abort tester on failed diff
Added accepted test output SALVIAS_db.organisms.VegBIEN.xml
SALVIAS organisms mapping: Use _alt to merge tag1 and tag2. Fixes failing diff due to duplicate stemCodes.
test/map: Added tests to insert VegBIEN XML into VegBIEN db
bin/map: Fixed non-map input to set out_label
bin/map: Fixed row processing when no map is used
bin/map: Refactored to process each row separately when out_is_db
xml_dom.py: Added Node pop() and clear() methods
bin/map: Moved process_rows() exception handling around entire row, rather than each value, so that a broken value will not be ignored only to cause errors when outputing the row
db_xml.py: Removed no longer needed xml2db()
bin/map: out_is_db uses use_row instead of xml2db()
bin/map: Added commit and exception-handling code to out_is_db use_row()
bin/map: Merged get_xml() into process_xml(). Renamed process*() functions to distinguish them better.
bin/map: Create separate document for printing XML opening and closing
bin/map: Refactored to print document opening, contents, and closing in separate steps so they can be separated later
xml_dom.py: Added support for integer indents
xml_dom.py: Added NodeIter() and Node.__iter__()
Use new xml_dom.prettyxml_config instead of Node.writeprettyxml because it can be passed as keyword args to any writexml function
xml_dom.py: Removed no longer needed xml_dom.writexml()
bin/map: Use Node.writeprettyxml() instead of xml_dom.writexml()
xml_dom.py: Added minidom.Document write_opening() and write_closing() methods. Changed writexml(writer, node) to use new Node.writeprettyxml() method.
Renamed ex.py to exc.py
Import xml.dom.minidom as minidom
xml_dom.py: Refactored xml.dom.minidom.Element.writexml() to use new write_opening() and write_closing() methods. Use new functions is_elem() and is_text_node() to determine node type. Corrected definition of a text element to be an element that contains a single text node.
bin/map: Factored out input processing code
Commit after inserting each row
Use traceback.print_exc() to print Exceptions for each row instead of exiting
env_password: Allow user to change saved password
env_password: Don't print instructions for storing password for the session if called to store password for the session
env_password: Print absolute path to env_password in case invoking script changed the working directory
env_password: Print instructions for storing password for the session
Updated SALVIAS plots mappings and corresponding VegX-VegBank mappings to parse date_start and date_finish
xml_func.py: Print XML of XML functions with SyntaxExceptions
xml_func.py: Added support for parsing dates
ex.py: repl_msg(): take replacements as keyword args
fix_permissions: Also change user to bien
Makefile: Added python-dateutil dependency
input.Makefile: Renamed from_db-<map_file> target to import-<type> so it can be more easily run as a command-line target rather than just a prerequisite
Added inputs/SALVIAS organisms map
map: Print xml_func.SyntaxExceptions without stack traces by using SystemExit
xml_func.py: Add function name to SyntaxException message