diff --git a/bw2data/__init__.py b/bw2data/__init__.py index 1b78fb43..cf22d27e 100644 --- a/bw2data/__init__.py +++ b/bw2data/__init__.py @@ -35,10 +35,10 @@ __version__ = (4, 0, "dev52") -from .configuration import config, labels -from .project import projects -from .utils import set_data_dir -from .meta import ( +from bw2data.configuration import config, labels +from bw2data.project import projects +from bw2data.utils import set_data_dir +from bw2data.meta import ( dynamic_calculation_setups, calculation_setups, databases, @@ -66,21 +66,21 @@ # Backwards compatibility - preferable to access ``preferences`` directly config.p = preferences -from .serialization import JsonWrapper -from .database import DatabaseChooser as Database -from .utils import get_activity, get_node -from .data_store import DataStore, ProcessedDataStore -from .method import Method -from .search import Searcher, IndexManager -from .weighting_normalization import Weighting, Normalization -from .backends import convert_backend, get_id, Node, Edge -from .compat import prepare_lca_inputs, Mapping, get_multilca_data_objs -from .backends.wurst_extraction import extract_brightway_databases +from bw2data.serialization import JsonWrapper +from bw2data.database import DatabaseChooser as Database +from bw2data.utils import get_activity, get_node +from bw2data.data_store import DataStore, ProcessedDataStore +from bw2data.method import Method +from bw2data.search import Searcher, IndexManager +from bw2data.weighting_normalization import Weighting, Normalization +from bw2data.backends import convert_backend, get_id, Node, Edge +from bw2data.compat import prepare_lca_inputs, Mapping, get_multilca_data_objs +from bw2data.backends.wurst_extraction import extract_brightway_databases mapping = Mapping() -from .updates import Updates -from .parameters import parameters +from bw2data.updates import Updates +from bw2data.parameters import parameters Updates.check_status() diff --git a/bw2data/backends/__init__.py b/bw2data/backends/__init__.py index d580e67f..1051008e 100644 --- a/bw2data/backends/__init__.py +++ b/bw2data/backends/__init__.py @@ -1,18 +1,18 @@ import os -from .. import config -from ..project import projects -from ..sqlite import SubstitutableDatabase -from .schema import ActivityDataset, ExchangeDataset, get_id +from bw2data import config +from bw2data.project import projects +from bw2data.sqlite import SubstitutableDatabase +from bw2data.backends.schema import ActivityDataset, ExchangeDataset, get_id sqlite3_lci_db = SubstitutableDatabase( projects.dir / "lci" / "databases.db", [ActivityDataset, ExchangeDataset], ) -from .base import SQLiteBackend -from .proxies import Activity, Exchange -from .utils import convert_backend +from bw2data.backends.base import SQLiteBackend +from bw2data.backends.proxies import Activity, Exchange +from bw2data.backends.utils import convert_backend config.sqlite3_databases.append( ( diff --git a/bw2data/backends/base.py b/bw2data/backends/base.py index df42056a..2d2fd33e 100644 --- a/bw2data/backends/base.py +++ b/bw2data/backends/base.py @@ -15,29 +15,29 @@ from peewee import JOIN, DoesNotExist, fn from tqdm import tqdm -from .. import config, databases, geomapping -from ..configuration import labels -from ..data_store import ProcessedDataStore -from ..errors import ( +from bw2data import config, databases, geomapping +from bw2data.configuration import labels +from bw2data.data_store import ProcessedDataStore +from bw2data.errors import ( DuplicateNode, InvalidExchange, UnknownObject, UntypedExchange, WrongDatabase, ) -from ..query import Query -from ..search import IndexManager, Searcher -from ..utils import as_uncertainty_dict, get_geocollection, get_node -from . import sqlite3_lci_db -from .proxies import Activity -from .schema import ActivityDataset, ExchangeDataset, get_id -from .typos import ( +from bw2data.query import Query +from bw2data.search import IndexManager, Searcher +from bw2data.utils import as_uncertainty_dict, get_geocollection, get_node +from bw2data.backends import sqlite3_lci_db +from bw2data.backends.proxies import Activity +from bw2data.backends.schema import ActivityDataset, ExchangeDataset, get_id +from bw2data.backends.typos import ( check_activity_keys, check_activity_type, check_exchange_keys, check_exchange_type, ) -from .utils import ( +from bw2data.backends.utils import ( check_exchange, dict_as_activitydataset, dict_as_exchangedataset, @@ -757,7 +757,7 @@ def delete(self, keep_params=False, warn=True, vacuum=True): IndexManager(self.filename).delete_database() if not keep_params: - from ..parameters import ( + from bw2data.parameters import ( ActivityParameter, DatabaseParameter, ParameterizedExchange, @@ -1096,7 +1096,7 @@ def edges_to_dataframe( Returns a pandas ``DataFrame``. """ - from .wurst_extraction import extract_brightway_databases + from bw2data.backends.wurst_extraction import extract_brightway_databases result = [] diff --git a/bw2data/backends/iotable/__init__.py b/bw2data/backends/iotable/__init__.py index 9de0adc5..c1649000 100644 --- a/bw2data/backends/iotable/__init__.py +++ b/bw2data/backends/iotable/__init__.py @@ -1 +1 @@ -from .backend import IOTableBackend +from bw2data.backends.iotable.backend import IOTableBackend diff --git a/bw2data/backends/iotable/backend.py b/bw2data/backends/iotable/backend.py index cce73462..e688a23c 100644 --- a/bw2data/backends/iotable/backend.py +++ b/bw2data/backends/iotable/backend.py @@ -1,17 +1,15 @@ import datetime import functools -import itertools import numpy as np import pandas as pd from bw_processing import clean_datapackage_name, create_datapackage from fsspec.implementations.zip import ZipFileSystem -from tqdm import tqdm -from ... import config, databases, geomapping -from ...configuration import labels -from .. import SQLiteBackend -from .proxies import IOTableActivity, IOTableExchanges +from bw2data import config, databases, geomapping +from bw2data.configuration import labels +from bw2data.backends import SQLiteBackend +from bw2data.backends.iotable.proxies import IOTableActivity, IOTableExchanges class IOTableBackend(SQLiteBackend): @@ -146,11 +144,11 @@ def edges_to_dataframe(self) -> pd.DataFrame: Returns a pandas ``DataFrame``. """ - from ... import get_activity + from bw2data import get_node @functools.lru_cache(10000) def cached_lookup(id_): - return get_activity(id=id_) + return get_node(id=id_) print("Retrieving metadata") activities = {o.id: o for o in self} diff --git a/bw2data/backends/iotable/proxies.py b/bw2data/backends/iotable/proxies.py index d83fd0e0..174f7587 100644 --- a/bw2data/backends/iotable/proxies.py +++ b/bw2data/backends/iotable/proxies.py @@ -6,10 +6,10 @@ import numpy as np from bw_processing import Datapackage -from ...configuration import labels -from ...errors import InvalidDatapackage -from ...utils import get_node -from ..proxies import Activity, Exchange, Exchanges +from bw2data.configuration import labels +from bw2data.errors import InvalidDatapackage +from bw2data.utils import get_node +from bw2data.backends.proxies import Activity, Exchange, Exchanges class ReadOnlyExchange(Mapping): @@ -259,7 +259,7 @@ def rp_exchange(self): raise ValueError("Not defined for IO Table activities") def _get_correct_db_backend(self): - from ...database import DatabaseChooser + from bw2data.database import DatabaseChooser db = DatabaseChooser(self["database"]) if db.backend != "iotable": diff --git a/bw2data/backends/proxies.py b/bw2data/backends/proxies.py index a166a7b4..4ff8d8d5 100644 --- a/bw2data/backends/proxies.py +++ b/bw2data/backends/proxies.py @@ -5,20 +5,20 @@ import pandas as pd -from .. import databases, geomapping -from ..configuration import labels -from ..errors import ValidityError -from ..proxies import ActivityProxyBase, ExchangeProxyBase -from ..search import IndexManager -from . import sqlite3_lci_db -from .schema import ActivityDataset, ExchangeDataset -from .typos import ( +from bw2data import databases, geomapping +from bw2data.configuration import labels +from bw2data.errors import ValidityError +from bw2data.proxies import ActivityProxyBase, ExchangeProxyBase +from bw2data.search import IndexManager +from bw2data.backends import sqlite3_lci_db +from bw2data.backends.schema import ActivityDataset, ExchangeDataset +from bw2data.backends.typos import ( check_activity_keys, check_activity_type, check_exchange_keys, check_exchange_type, ) -from .utils import dict_as_activitydataset, dict_as_exchangedataset +from bw2data.backends.utils import dict_as_activitydataset, dict_as_exchangedataset class Exchanges(Iterable): @@ -254,8 +254,8 @@ def key(self): return (self.get("database"), self.get("code")) def delete(self): - from .. import Database - from ..parameters import ActivityParameter, ParameterizedExchange + from bw2data import Database + from bw2data.parameters import ActivityParameter, ParameterizedExchange try: ap = ActivityParameter.get(database=self[0], code=self[1]) @@ -299,7 +299,7 @@ def save(self): >>> activity.save() Saves the activity if it's valid, otherwise raises ValidityError. """ - from .. import Database + from bw2data import Database if not self.valid(): raise ValidityError( @@ -355,7 +355,7 @@ def _change_code(self, new_code): ).execute() if databases[self["database"]].get("searchable"): - from .. import Database + from bw2data import Database IndexManager(Database(self["database"]).filename).delete_dataset(self) self._data["code"] = new_code @@ -385,7 +385,7 @@ def _change_database(self, new_database): ).execute() if databases[self["database"]].get("searchable"): - from .. import Database + from bw2data import Database IndexManager(Database(self["database"]).filename).delete_dataset(self) self._data["database"] = new_database @@ -533,7 +533,7 @@ def save(self): self._document.save() def delete(self): - from ..parameters import ParameterizedExchange + from bw2data.parameters import ParameterizedExchange ParameterizedExchange.delete().where( ParameterizedExchange.exchange == self._document.id diff --git a/bw2data/backends/schema.py b/bw2data/backends/schema.py index b8f964b0..daefc56f 100644 --- a/bw2data/backends/schema.py +++ b/bw2data/backends/schema.py @@ -1,7 +1,7 @@ from peewee import DoesNotExist, Model, TextField -from ..errors import UnknownObject -from ..sqlite import PickleField +from bw2data.errors import UnknownObject +from bw2data.sqlite import PickleField class ActivityDataset(Model): diff --git a/bw2data/backends/typos.py b/bw2data/backends/typos.py index 527ae0b8..9d5eb85b 100644 --- a/bw2data/backends/typos.py +++ b/bw2data/backends/typos.py @@ -2,7 +2,7 @@ from functools import partial from typing import Iterable -from ..configuration import typo_settings +from bw2data.configuration import typo_settings try: from rapidfuzz.distance import DamerauLevenshtein @@ -13,7 +13,7 @@ # https://github.com/rapidfuzz/RapidFuzz/tree/main?tab=readme-ov-file#with-pip # Rapidfuzz is not currently available on Emscripten # https://github.com/brightway-lca/brightway-live/issues/59 - from ..string_distance import damerau_levenshtein + from bw2data.string_distance import damerau_levenshtein def _check_type(type_value: str, kind: str, valid: Iterable[str]) -> None: diff --git a/bw2data/backends/utils.py b/bw2data/backends/utils.py index 1a4db62b..7fba5171 100644 --- a/bw2data/backends/utils.py +++ b/bw2data/backends/utils.py @@ -3,11 +3,11 @@ import numpy as np -from .. import config -from ..configuration import labels -from ..errors import InvalidExchange, UntypedExchange -from ..meta import databases, methods -from .schema import get_id +from bw2data import config +from bw2data.configuration import labels +from bw2data.errors import InvalidExchange, UntypedExchange +from bw2data.meta import databases, methods +from bw2data.backends.schema import get_id def get_csv_data_dict(ds): @@ -31,7 +31,7 @@ def convert_backend(database_name, backend): if database_name not in databases: print("Can't find database {}".format(database_name)) - from ..database import Database + from bw2data.database import Database db = Database(database_name) if db.backend == backend: @@ -88,7 +88,7 @@ def replace_cfs(old_key, new_key): """Replace ``old_key`` with ``new_key`` in characterization factors. Returns list of modified methods.""" - from ..method import Method + from bw2data.method import Method altered_methods = [] for name in methods: diff --git a/bw2data/backends/wurst_extraction.py b/bw2data/backends/wurst_extraction.py index bc716b24..fed78a6e 100644 --- a/bw2data/backends/wurst_extraction.py +++ b/bw2data/backends/wurst_extraction.py @@ -2,9 +2,9 @@ from tqdm import tqdm -from ..configuration import labels -from ..database import DatabaseChooser -from . import ActivityDataset, ExchangeDataset, SQLiteBackend +from bw2data.configuration import labels +from bw2data.database import DatabaseChooser +from bw2data.backends import ActivityDataset, ExchangeDataset, SQLiteBackend def _list_or_dict(obj): diff --git a/bw2data/compat.py b/bw2data/compat.py index ea955fdc..4dcc697f 100644 --- a/bw2data/compat.py +++ b/bw2data/compat.py @@ -2,7 +2,7 @@ from bw_processing.datapackage import DatapackageBase -from . import ( +from bw2data import ( Database, Method, Normalization, @@ -14,9 +14,9 @@ projects, weightings, ) -from .backends.schema import ActivityDataset as AD -from .backends.schema import get_id -from .errors import Brightway2Project, UnknownObject +from bw2data.backends.schema import ActivityDataset as AD +from bw2data.backends.schema import get_id +from bw2data.errors import Brightway2Project, UnknownObject class Mapping: diff --git a/bw2data/data_store.py b/bw2data/data_store.py index 153fb7bf..37e8d6db 100644 --- a/bw2data/data_store.py +++ b/bw2data/data_store.py @@ -8,9 +8,9 @@ ) from fsspec.implementations.zip import ZipFileSystem -from . import projects -from .errors import MissingIntermediateData, UnknownObject -from .fatomic import open as atomic_open +from bw2data import projects +from bw2data.errors import MissingIntermediateData, UnknownObject +from bw2data.fatomic import open as atomic_open class DataStore: diff --git a/bw2data/database.py b/bw2data/database.py index 5c850e0e..07a062e6 100644 --- a/bw2data/database.py +++ b/bw2data/database.py @@ -1,5 +1,5 @@ -from . import databases -from .data_store import ProcessedDataStore +from bw2data import databases +from bw2data.data_store import ProcessedDataStore def DatabaseChooser(name: str, backend: str = "sqlite") -> ProcessedDataStore: @@ -8,7 +8,7 @@ def DatabaseChooser(name: str, backend: str = "sqlite") -> ProcessedDataStore: Database types are specified in `databases[database_name]['backend']`. """ - from .subclass_mapping import DATABASE_BACKEND_MAPPING + from bw2data.subclass_mapping import DATABASE_BACKEND_MAPPING if name in databases: backend = databases[name].get("backend") or backend diff --git a/bw2data/ia_data_store.py b/bw2data/ia_data_store.py index 2f72b305..6c8f2718 100644 --- a/bw2data/ia_data_store.py +++ b/bw2data/ia_data_store.py @@ -3,7 +3,7 @@ from bw_processing import safe_filename -from .data_store import ProcessedDataStore +from bw2data.data_store import ProcessedDataStore def abbreviate(names, length=8): diff --git a/bw2data/logs.py b/bw2data/logs.py index 4a222380..51008e32 100644 --- a/bw2data/logs.py +++ b/bw2data/logs.py @@ -4,8 +4,8 @@ import uuid from logging.handlers import RotatingFileHandler -from . import config, projects -from .utils import create_in_memory_zipfile_from_directory, random_string +from bw2data import config, projects +from bw2data.utils import create_in_memory_zipfile_from_directory, random_string try: import anyjson diff --git a/bw2data/meta.py b/bw2data/meta.py index 3eb453d7..4f899bb3 100644 --- a/bw2data/meta.py +++ b/bw2data/meta.py @@ -1,6 +1,6 @@ import datetime -from .serialization import CompoundJSONDict, PickledDict, SerializedDict +from bw2data.serialization import CompoundJSONDict, PickledDict, SerializedDict class GeoMapping(PickledDict): @@ -83,7 +83,7 @@ def set_dirty(self, database): self.flush() def clean(self): - from . import Database + from bw2data import Database def _clean(): for x in self: @@ -98,7 +98,7 @@ def _clean(): return _clean() def __delitem__(self, name): - from . import Database + from bw2data import Database try: Database(name).delete(warn=False) diff --git a/bw2data/method.py b/bw2data/method.py index a66fdc63..786c7364 100644 --- a/bw2data/method.py +++ b/bw2data/method.py @@ -1,9 +1,9 @@ -from . import config, geomapping, methods -from .backends.schema import get_id -from .errors import UnknownObject -from .ia_data_store import ImpactAssessmentDataStore -from .utils import as_uncertainty_dict, get_geocollection -from .validate import ia_validator +from bw2data import config, geomapping, methods +from bw2data.backends.schema import get_id +from bw2data.errors import UnknownObject +from bw2data.ia_data_store import ImpactAssessmentDataStore +from bw2data.utils import as_uncertainty_dict, get_geocollection +from bw2data.validate import ia_validator class Method(ImpactAssessmentDataStore): diff --git a/bw2data/parameters.py b/bw2data/parameters.py index 9a82bfc2..dd618f28 100644 --- a/bw2data/parameters.py +++ b/bw2data/parameters.py @@ -17,9 +17,9 @@ TextField, ) -from . import config, databases, get_activity, projects -from .backends.schema import ExchangeDataset -from .sqlite import PickleField, SubstitutableDatabase +from bw2data import config, databases, get_activity, projects +from bw2data.backends.schema import ExchangeDataset +from bw2data.sqlite import PickleField, SubstitutableDatabase # https://stackoverflow.com/questions/34544784/arbitrary-string-to-valid-python-name clean = lambda x: re.sub(r"\W|^(?=\d)", "_", x) diff --git a/bw2data/project.py b/bw2data/project.py index ed951429..d3267370 100644 --- a/bw2data/project.py +++ b/bw2data/project.py @@ -1,6 +1,5 @@ import os import shutil -import tempfile import warnings from collections.abc import Iterable from pathlib import Path @@ -11,10 +10,10 @@ from peewee import SQL, BooleanField, DoesNotExist, Model, TextField from platformdirs import PlatformDirs -from . import config -from .filesystem import create_dir -from .sqlite import PickleField, SubstitutableDatabase -from .utils import maybe_path +from bw2data import config +from bw2data.filesystem import create_dir +from bw2data.sqlite import PickleField, SubstitutableDatabase +from bw2data.utils import maybe_path READ_ONLY_PROJECT = """ ***Read only project*** @@ -206,7 +205,7 @@ def set_current(self, name, writable=True, update=True): def _do_automatic_updates(self): """Run any available automatic updates""" - from .updates import Updates + from bw2data.updates import Updates for update_name in Updates.check_automatic_updates(): print("Applying automatic update: {}".format(update_name)) @@ -301,7 +300,7 @@ def migrate_project_25(self): Reprocesses all databases and LCIA objects.""" assert not self.twofive, "Project is already 2.5 compatible" - from .updates import Updates + from bw2data.updates import Updates Updates()._reprocess_all() @@ -360,7 +359,7 @@ def report(self): Returns tuples of ``(project name, number of databases, size of all databases (GB))``. """ - from . import databases + from bw2data import databases _current = self.current data = [] diff --git a/bw2data/proxies.py b/bw2data/proxies.py index 9e464a94..7be56a4e 100644 --- a/bw2data/proxies.py +++ b/bw2data/proxies.py @@ -3,9 +3,9 @@ from stats_arrays import uncertainty_choices -from . import databases -from .errors import InvalidExchange -from .utils import get_activity +from bw2data import databases +from bw2data.errors import InvalidExchange +from bw2data.utils import get_activity class ProxyBase(MutableMapping): diff --git a/bw2data/search/__init__.py b/bw2data/search/__init__.py index 7ac61b8a..9fb7a0b3 100644 --- a/bw2data/search/__init__.py +++ b/bw2data/search/__init__.py @@ -1,2 +1,2 @@ -from .indices import IndexManager -from .search import Searcher +from bw2data.search.indices import IndexManager +from bw2data.search.search import Searcher diff --git a/bw2data/search/indices.py b/bw2data/search/indices.py index 56447a5c..411a3d7d 100644 --- a/bw2data/search/indices.py +++ b/bw2data/search/indices.py @@ -3,8 +3,8 @@ from playhouse.sqlite_ext import SqliteExtDatabase -from .. import projects -from .schema import BW2Schema +from bw2data import projects +from bw2data.search.schema import BW2Schema MODELS = (BW2Schema,) diff --git a/bw2data/search/search.py b/bw2data/search/search.py index 36bf85a8..4510d2f4 100644 --- a/bw2data/search/search.py +++ b/bw2data/search/search.py @@ -2,7 +2,7 @@ import peewee -from .indices import IndexManager +from bw2data.search.indices import IndexManager def keysplit(strng): @@ -41,7 +41,7 @@ def search( mask=None, node_class=None, ): - from .. import get_activity + from bw2data import get_node lowercase = lambda x: x.lower() if hasattr(x, "lower") else x string = lowercase(string) @@ -74,8 +74,8 @@ def search( if proxy and facet is not None: return { key: [ - get_activity( - key=(obj["database"], obj["code"]), node_class=node_class + get_node( + database=obj["database"], code=obj["code"], node_class=node_class ) for obj in value ] @@ -83,7 +83,7 @@ def search( } elif proxy: return [ - get_activity(key=(obj["database"], obj["code"]), node_class=node_class) + get_node(database=obj["database"], code=obj["code"], node_class=node_class) for obj in results ] else: diff --git a/bw2data/serialization.py b/bw2data/serialization.py index 7ba2400f..b6c703db 100644 --- a/bw2data/serialization.py +++ b/bw2data/serialization.py @@ -5,10 +5,10 @@ from collections.abc import MutableMapping from time import time -from . import projects -from .errors import PickleError -from .fatomic import open as atomic_open -from .utils import maybe_path +from bw2data import projects +from bw2data.errors import PickleError +from bw2data.fatomic import open as atomic_open +from bw2data.utils import maybe_path try: import anyjson diff --git a/bw2data/subclass_mapping.py b/bw2data/subclass_mapping.py index 1eb49418..a88d0bc9 100644 --- a/bw2data/subclass_mapping.py +++ b/bw2data/subclass_mapping.py @@ -1,6 +1,6 @@ -from .backends import Activity, SQLiteBackend -from .backends.iotable import IOTableBackend -from .backends.iotable.proxies import IOTableActivity +from bw2data.backends import Activity, SQLiteBackend +from bw2data.backends.iotable import IOTableBackend +from bw2data.backends.iotable.proxies import IOTableActivity DATABASE_BACKEND_MAPPING = {"sqlite": SQLiteBackend, "iotable": IOTableBackend} diff --git a/bw2data/tests.py b/bw2data/tests.py index 822506bb..fbfc8306 100644 --- a/bw2data/tests.py +++ b/bw2data/tests.py @@ -8,9 +8,9 @@ import wrapt -from . import config, databases, geomapping, methods -from .parameters import parameters -from .project import projects +from bw2data import config, databases, geomapping, methods +from bw2data.parameters import parameters +from bw2data.project import projects class BW2DataTest(unittest.TestCase): diff --git a/bw2data/updates.py b/bw2data/updates.py index 16eeaed9..c6b6e5fc 100644 --- a/bw2data/updates.py +++ b/bw2data/updates.py @@ -10,7 +10,7 @@ from bw_processing import safe_filename from tqdm import tqdm -from . import ( +from bw2data import ( Database, Method, Normalization, @@ -22,7 +22,7 @@ projects, weightings, ) -from .backends import sqlite3_lci_db +from bw2data.backends import sqlite3_lci_db hash_re = re.compile("^[a-zA-Z0-9]{32}$") is_hash = lambda x: bool(hash_re.match(x)) diff --git a/bw2data/utils.py b/bw2data/utils.py index a4ffd625..15302b4d 100644 --- a/bw2data/utils.py +++ b/bw2data/utils.py @@ -13,9 +13,9 @@ import stats_arrays as sa -from .configuration import labels -from .errors import MultipleResults, NotFound, UnknownObject, ValidityError -from .fatomic import open +from bw2data.configuration import labels +from bw2data.errors import MultipleResults, NotFound, UnknownObject, ValidityError +from bw2data.fatomic import open DOWNLOAD_URL = "https://brightway.dev/data/" @@ -62,7 +62,7 @@ def combine_methods(name, *ms): The new Method instance. """ - from . import Method, methods + from bw2data import Method, methods data = {} units = set([methods[tuple(x)]["unit"] for x in ms]) @@ -223,14 +223,14 @@ def merge_databases(parent_db, other): ``parent_db`` and ``other`` should be the names of databases. Doesn't return anything.""" - from . import databases - from .backends import ( + from bw2data import databases + from bw2data.backends import ( ActivityDataset, ExchangeDataset, SQLiteBackend, sqlite3_lci_db, ) - from .database import Database + from bw2data.database import Database assert parent_db in databases assert other in databases @@ -283,7 +283,7 @@ def download_file(filename, directory="downloads", url=None): The path of the created file. """ - from . import projects + from bw2data import projects assert isinstance(directory, str), "`directory` must be a string" dirpath = projects.request_directory(directory) @@ -321,26 +321,10 @@ def set_data_dir(dirpath, permanent=True): def switch_data_directory(dirpath): - from .projects import ProjectDataset, SubstitutableDatabase - - if dirpath == bw.projects._base_data_dir: - print("dirpath already loaded") - return - try: - assert os.path.isdir(dirpath) - bw.projects._base_data_dir = dirpath - bw.projects._base_logs_dir = os.path.join(dirpath, "logs") - # create folder if it does not yet exist - if not os.path.isdir(bw.projects._base_logs_dir): - os.mkdir(bw.projects._base_logs_dir) - # load new brightway directory - bw.projects.db = SubstitutableDatabase( - os.path.join(bw.projects._base_data_dir, "projects.db"), [ProjectDataset] - ) - print("Loaded brightway2 data directory: {}".format(bw.projects._base_data_dir)) - - except AssertionError: - print('Could not access directory specified "dirpath"') + warnings.warn( + "`switch_data_directory` is deprecated; use `projects.change_base_directories`.", + DeprecationWarning, + ) def create_in_memory_zipfile_from_directory(path): @@ -360,9 +344,9 @@ def create_in_memory_zipfile_from_directory(path): def get_node(**kwargs): - from . import databases - from .backends import ActivityDataset as AD - from .subclass_mapping import NODE_PROCESS_CLASS_MAPPING + from bw2data import databases + from bw2data.backends import ActivityDataset as AD + from bw2data.subclass_mapping import NODE_PROCESS_CLASS_MAPPING def node_class(database_name): return NODE_PROCESS_CLASS_MAPPING[ @@ -416,7 +400,7 @@ def get_activity(key=None, **kwargs): """Support multiple ways to get exactly one activity node. ``key`` can be an integer or a key tuple.""" - from .backends import Activity + from bw2data.backends import Activity # Includes subclasses if isinstance(key, Activity): diff --git a/bw2data/weighting_normalization.py b/bw2data/weighting_normalization.py index e1ae6953..2a4d9bde 100644 --- a/bw2data/weighting_normalization.py +++ b/bw2data/weighting_normalization.py @@ -1,8 +1,8 @@ -from .backends.schema import get_id -from .ia_data_store import ImpactAssessmentDataStore -from .meta import normalizations, weightings -from .utils import as_uncertainty_dict -from .validate import normalization_validator, weighting_validator +from bw2data.backends.schema import get_id +from bw2data.ia_data_store import ImpactAssessmentDataStore +from bw2data.meta import normalizations, weightings +from bw2data.utils import as_uncertainty_dict +from bw2data.validate import normalization_validator, weighting_validator class Weighting(ImpactAssessmentDataStore):