1. Chris Mutel
  2. brightway2-data


brightway2-data / CHANGES.txt


1.0 RC1 (2014-06-23)

- FEATURE: Pluggable LCI backends. Two backends are provided - SingleFileDatabase and and JSONDatabase, and others can be easily added.
- FEATURE: `bw2-uptodate` should now work without PATH hassles on windows. Name changed from `bw2-uptodate.py`.
- CHANGE: LCI database format is now more flexible, and almost all required elements are removed. For example, `{}` is now a valid LCI dataset.
- BUGFIX: Allow unicode in `utils.safe_filename`.

0.17.1 (2014-06-11)

- CHANGE: Improve resiliency of SimaPro import.

0.17 (2014-04-29)

- BREAKING CHANGE: Database 'depends' is now calculated automatically when calling Database.process().

0.16 (2014-04-28)

**bw2-uptodate.py is required for this update**

- FEATURE: Added ``Database.filepath_intermediate`` and ``Database.filepath_processed`` for easier access to raw data files.
- BREAKING CHANGE: All importers now produce unicode strings. Before, the SimaPro importer produced Latin-1 strings, while the XML importers produced UTF-8.
- CHANGE: ``Database.process()`` now uses ``obj.filename``, not ``obj.name``, as this is not always safe for filenames.

0.15.1 (2014-04-17)

- FEATURE: Utility functions to view process datasets in web browser 
- FEATURE: utils.web_ui_accessible tests if web UI is running and accessible
- CHANGE: SimaPro importer can now add unlinked exchanges as new process datasets
- CHANGE: New preference key: "web_ui_address"

0.15 (2014-04-11)

- BREAKING CHANGE: ``Database.process`` skips exchanges if ``type`` is not ``process``.
- FEATURE: ``Database.list_dependents`` traverses datasets to get linked databases.
- CHANGE: Query.__repr__ always returns unicode strings.
- CHANGE: SimaPro importer can now import input and output comments, including multiline comments

0.14.1 (2014-03-07)

No changes, just messed up packaging...

0.14 (2014-03-07)

**bw2-uptodate.py is required for this update**

- CHANGE: ``BW2Package.export_obj`` now uses ``obj.filename`` instead of ``obj.name`` for filepath of backup file (needed for LCIA methods).
- CHANGE: ``categories`` is no longer required by ``utils.activity_hash``.
- CHANGE: ``Database.copy()`` no longer emits a not registered warning.
- CHANGE: ``Database.copy()`` makes a deep copy of data before modification.
- CHANGE: ``bw2data.__init__`` no longer imports the ``io`` and ``proxies`` directories, to avoid namespace conflicts with io standard library package.

0.13 (2014-02-13)

- BREAKING CHANGE: ``Database.process()`` now only includes datasets with type ``process`` in constructing geomapping array.

0.12.2 (2014-02-04)

- CHANGE: BW2Package import file ignores warnings

0.12.1 (2014-02-04)

New BW2Package format

The new BW2Package is not specific to databases or methods, but should work for any data store that implements the DataStore API. This allows for normalization, weighting, regionalization, and others, and makes it easy to backup and restore.

0.12 (2014-02-04)

**bw2-uptodate.py is required for this update**

Safe filenames

The algorithm to create filenames was changed to prevent illegal characters being used. See `utils.safe_filename`.

0.11 (2014-01-28)

**bw2-uptodate.py is required for this update**

Upgrades to updates

The update code filename was changed to ``updates.py``, and dramatically simplified. Code was organized and moved to an Updates class. All functionality was removed from utility scripts and ``bw2-uptodate.py``. Fresh installs should not have erroneous "updates needed" warnings.

Generic DataStore makes new matrices easy

``data_store.DataStore`` defines a template for all data stores which could be processed into matrix data, and provides a lot of functionality for free. New objects subclass ``DataStore`` or ``ImpactAssessmentDataStore``, and need only define their unique data fields, metadata store, and validator. Abstracting common functionality into a simple class hierarchy should also produce fewer bugs.

Smaller changes

- BREAKING CHANGE: The filenames for LCIA methods are now derived from the MD5 of the name. This breaks all method abbreviations.
- BREAKING CHANGE: The filename and filepath attributes in SerializedDict and subclasses moved from ``_filename`` and ``filepath`` to ``filename`` and ``filepath``
- BREAKING CHANGE: Register for all data store now takes any keyword arguments. There are no required or positional arguments.
- BREAKING CHANGE: Database.process() doesn't raise an AssertionError for empty databases
- FEATURE: Database.process() writes a geomapping processed array (linking activity IDs to locations), in addition to normal matrix arrays.
- FEATURE: Tests now cover more functionality, and should allow for more worry-free development in the future.
- CHANGE: Database datasets are not required to specify a unit.
- CHANGE: The default biosphere database is no longer hard coded, and can be set in config.p['biosphere_database']. The default is still "biosphere".
- CHANGE: The default global location is no longer hard coded, and can be set in config.p['global_location']. The default is still "GLO".
- CHANGE: Ecospold 1 & 2 data extractors now only have classmethods, and these classes don't need to be instantiated. A more functional style was used to try to avoid unpleasant side effects.