Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/pythonpackage.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ jobs:
- name: Format check with black
run: |
black --check .
- name: Format check with flake8
- name: Format ruff check
run: |
flake8
ruff check .

test:
runs-on: ubuntu-latest
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ coverage.xml
*.py,cover
.hypothesis/
.pytest_cache/
.ruff_cache/

# Translations
*.mo
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed

- Fix bad release header links in CHANGELOG.md. ([PR #105](https://github.com/ClimateImpactLab/dscim/pull/105), [@brews](https://github.com/brews))
- Fixed broken code quality checks in CI. Now using `ruff` instead of `flake8`. ([PR #107](https://github.com/ClimateImpactLab/dscim/pull/107), [@brews](https://github.com/brews))

## [0.4.0] - 2023-07-06

Expand Down
21 changes: 21 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,24 @@ build-backend = "setuptools.build_meta"

[tool.setuptools_scm]
fallback_version = "999"

[tool.ruff]
exclude = [
".eggs",
"docs",
]
# E402: module level import not at top of file
# E501: line too long - let black worry about that
ignore = [
"E402",
"E501",
]
select = [
# Pyflakes
"F",
# Pycodestyle
"E",
"W",
# Pyupgrade
"UP",
]
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ dask-jobqueue==0.8.2
seaborn==0.12.2
geopandas==0.13.2
black==23.7.0
flake8==6.0.0
ruff==0.0.278
netcdf4==1.6.4
h5netcdf==1.2.0
impactlab-tools==0.4.0
Expand Down
6 changes: 0 additions & 6 deletions setup.cfg

This file was deleted.

1 change: 0 additions & 1 deletion src/dscim/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import logging
import sys
import os
import imp
import yaml
import xarray
import pathlib
Expand Down
2 changes: 1 addition & 1 deletion src/dscim/descriptors.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# from https://github.com/dssg/dickens/blob/master/src/descriptors.py


class cachedproperty(object):
class cachedproperty:
"""Non-data descriptor decorator implementing a read-only property
which overrides itself on the instance with an entry in the
instance's data dictionary, caching the result of the decorated
Expand Down
3 changes: 0 additions & 3 deletions src/dscim/menu/baseline.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
import pandas as pd
import numpy as np
import xarray as xr
from dscim.menu.main_recipe import MainRecipe


Expand Down
13 changes: 4 additions & 9 deletions src/dscim/menu/main_recipe.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import os
import dask
import logging
import subprocess
from subprocess import CalledProcessError
Expand All @@ -10,7 +9,7 @@
from dscim.descriptors import cachedproperty
from itertools import product
from dscim.menu.decorators import save
from dscim.menu.simple_storage import StackedDamages, EconVars
from dscim.menu.simple_storage import StackedDamages
from dscim.utils.utils import (
model_outputs,
compute_damages,
Expand Down Expand Up @@ -400,8 +399,6 @@ def output_attrs(self):
A dict Class metadata
"""

import dscim

# find machine name
machine_name = os.getenv("HOSTNAME")
if machine_name is None:
Expand Down Expand Up @@ -894,7 +891,7 @@ def weitzman_min(self, no_cc_consumption, cc_consumption, parameter):
if self.eta == 1:
w_utility = np.log(parameter)
bottom_utility = np.power(parameter, -1) * (parameter - cc_consumption)
bottom_coded_cons = np.exp((w_utility - bottom_utility))
bottom_coded_cons = np.exp(w_utility - bottom_utility)

clipped_cons = xr.where(
cc_consumption > parameter, cc_consumption, bottom_coded_cons
Expand Down Expand Up @@ -1048,10 +1045,8 @@ def marginal_damages(self):
md = self.median_params_marginal_damages
else:
raise NotImplementedError(
(
f"{agg} is not available. Enter list including"
'["ce", "fair", "median", "median_params"]'
)
f"{agg} is not available. Enter list including"
'["ce", "fair", "median", "median_params"]'
)

md = md.assign_coords({"fair_aggregation": agg}).expand_dims(
Expand Down
1 change: 0 additions & 1 deletion src/dscim/menu/risk_aversion.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import numpy as np
import pandas as pd
import xarray as xr
from dscim.menu.main_recipe import MainRecipe
Expand Down
1 change: 0 additions & 1 deletion src/dscim/menu/simple_storage.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import logging
import os
import sys
import xarray as xr
import numpy as np
import pandas as pd
Expand Down
3 changes: 0 additions & 3 deletions src/dscim/preprocessing/climate/all_masks_rff.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import xarray as xr
import pandas as pd
import numpy as np
from dscim.menu.simple_storage import Climate
import os
import sys
import yaml
from p_tqdm import p_map

Expand Down
2 changes: 0 additions & 2 deletions src/dscim/preprocessing/climate/ssp_clipped_rff.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import xarray as xr
import numpy as np
import pandas as pd
from p_tqdm import p_map
from itertools import product

Expand Down
3 changes: 0 additions & 3 deletions src/dscim/preprocessing/climate/stack_iterations.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
import xarray as xr
import pandas as pd
import numpy as np
import os
import sys

USER = os.getenv("USER")
from p_tqdm import p_map
Expand Down
5 changes: 0 additions & 5 deletions src/dscim/preprocessing/climate/stack_masks.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
import xarray as xr
import pandas as pd
import numpy as np
import os
import sys
import yaml
from p_tqdm import p_map
from itertools import product

USER = os.getenv("USER")

Expand Down
1 change: 0 additions & 1 deletion src/dscim/preprocessing/input_damages.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import os
import re
import logging
import warnings
import multiprocessing
import numpy as np
import pandas as pd
Expand Down
1 change: 0 additions & 1 deletion src/dscim/preprocessing/midprocessing.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import os
import sys
import shutil

USER = os.getenv("USER")
Expand Down
3 changes: 0 additions & 3 deletions src/dscim/preprocessing/misc/check_nans.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
# Pass a directory, output log files detailing number of nans each file has

import os
import numpy as np
import pandas as pd
import xarray as xr
import glob
import shutil
import csv
from p_tqdm import p_uimap

Expand Down
1 change: 0 additions & 1 deletion src/dscim/preprocessing/misc/convert_float32.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import os
import numpy as np
import pandas as pd
import xarray as xr
import glob
import shutil
Expand Down
13 changes: 3 additions & 10 deletions src/dscim/preprocessing/preprocessing.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
from math import ceil
from pathlib import Path
import os
import sys

USER = os.getenv("USER")
import dask
import dask.array as da
import dask.config
import numpy as np
import xarray as xr
from dask.distributed import Client, progress
from dscim.utils.functions import ce_func, mean_func
import yaml
import time
import argparse


def ce_from_chunk(
Expand Down Expand Up @@ -87,7 +80,7 @@ def reduce_damages(
), "Adding up does not take an eta argument. Please set to None."
# client = Client(n_workers=35, memory_limit="9G", threads_per_worker=1)

with open(config, "r") as stream:
with open(config) as stream:
c = yaml.safe_load(stream)
params = c["sectors"][sector]

Expand Down Expand Up @@ -209,7 +202,7 @@ def sum_AMEL(
AMEL,
):
# load config
with open(config, "r") as stream:
with open(config) as stream:
loaded_config = yaml.safe_load(stream)
params = loaded_config["sectors"]

Expand Down Expand Up @@ -385,7 +378,7 @@ def clip_damages(
"""

# load config
with open(config, "r") as stream:
with open(config) as stream:
loaded_config = yaml.safe_load(stream)
params = loaded_config["sectors"][sector]

Expand Down
1 change: 0 additions & 1 deletion src/dscim/utils/generate_yaml.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import os
import sys
import yaml
import dscim
from dscim import Waiter
Expand Down
10 changes: 2 additions & 8 deletions src/dscim/utils/menu_runs.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,12 @@
from pathlib import Path

import os
import gc
import time
import yaml

USER = os.getenv("USER")
import numpy as np
import pandas as pd
import xarray as xr
import dask

dask.config.set(**{"array.slicing.split_large_chunks": False})
from dscim import ProWaiter
from itertools import product

MENU_OPTIONS = {
Expand Down Expand Up @@ -44,7 +38,7 @@ def run_ssps(
if fair_dims_list is None:
fair_dims_list = [["simulation"]]

with open(config, "r") as stream:
with open(config) as stream:
conf = yaml.safe_load(stream)

for sector, pulse_year, menu_disc, eta_rho, mask, fair_dims in product(
Expand Down Expand Up @@ -132,7 +126,7 @@ def run_rff(
order="scc",
regenerate_sccs=True,
):
with open(config, "r") as stream:
with open(config) as stream:
conf = yaml.safe_load(stream)

for sector, pulse_year, menu_disc, eta_rho in product(
Expand Down
2 changes: 1 addition & 1 deletion src/dscim/utils/plotting_utils.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from matplotlib.ticker import SymmetricalLogLocator, FuncFormatter
from matplotlib.ticker import SymmetricalLogLocator
import numpy as np


Expand Down
3 changes: 0 additions & 3 deletions src/dscim/utils/rff.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,10 @@
from itertools import product
from functools import partial
import os
import sys
from numpy.testing import assert_allclose
from datetime import datetime
import fsspec
import pyarrow
import gurobipy as gp
import time
from scipy.sparse import coo_matrix
from gurobipy import GRB

Expand Down
4 changes: 0 additions & 4 deletions src/dscim/utils/utils.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
import os
import warnings
import dask
import logging
import xarray as xr
import pandas as pd
import numpy as np
from pathlib import Path
import statsmodels.formula.api as smf
import impactlab_tools.utils.weighting
import dask.dataframe as dd
from itertools import product

logger = logging.getLogger(__name__)
Expand Down
1 change: 0 additions & 1 deletion tests/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import os
import dask
import zipfile
import pytest
import pandas as pd
import xarray as xr

Expand Down
5 changes: 0 additions & 5 deletions tests/test_preprocessing.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,13 @@
import xarray as xr
import numpy as np
import math
import pytest
import copy
import dscim.utils.utils as estimations
from dscim.menu.risk_aversion import RiskAversionRecipe
from dscim.preprocessing.preprocessing import (
subset_USA_ssp_econ,
subset_USA_reduced_damages,
sum_AMEL,
reduce_damages,
ce_from_chunk,
)
from pathlib import Path
import yaml


Expand Down