Skip to content
Closed
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
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ documentation:
python docs/add_plotly_to_book.py docs/_build

format:
ruff check . --fix
ruff format .

install:
Expand Down
1 change: 1 addition & 0 deletions changelog.d/add-ruff-linting.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added ruff linting (ruff check) to Makefile format target with E, F, and I rule sets.
25 changes: 9 additions & 16 deletions docs/usage/country.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@
"outputs": [],
"source": [
"from policyengine_core.country_template import (\n",
" CountryTaxBenefitSystem, # Holds all policy-related data.\n",
" Simulation, # General purpose: enables users to simulate policy on new data.\n",
" Microsimulation, # Specific purpose: enables users to simulate policy on large datasets.\n",
" COUNTRY_DIR, # Path to the country directory.\n",
" DATASETS, # List of datasets available for this country (to use with `Microsimulation`).\n",
" CountryTaxBenefitSystem, # Holds all policy-related data.\n",
" Microsimulation, # Specific purpose: enables users to simulate policy on large datasets.\n",
" Simulation, # General purpose: enables users to simulate policy on new data.\n",
")"
]
},
Expand Down Expand Up @@ -52,23 +52,16 @@
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"from typing import Dict, Type\n",
"from policyengine_core.data.dataset import Dataset\n",
"from policyengine_core.populations.population import Population\n",
"from policyengine_core.taxbenefitsystems import TaxBenefitSystem\n",
"from policyengine_core.country_template import entities\n",
"from policyengine_core.country_template.situation_examples import couple\n",
"from policyengine_core.simulations import Simulation as CoreSimulation\n",
"from policyengine_core.simulations import (\n",
" Microsimulation as CoreMicrosimulation,\n",
")\n",
"from policyengine_core.country_template.constants import COUNTRY_DIR\n",
"from policyengine_core.country_template.data.datasets.country_template_dataset import (\n",
" CountryTemplateDataset,\n",
")\n",
"from pathlib import Path\n",
"import logging\n",
"from policyengine_core.country_template.constants import COUNTRY_DIR\n",
"from policyengine_core.simulations import (\n",
" Microsimulation as CoreMicrosimulation,\n",
")\n",
"from policyengine_core.simulations import Simulation as CoreSimulation\n",
"from policyengine_core.taxbenefitsystems import TaxBenefitSystem\n",
"\n",
"DATASETS = [CountryTemplateDataset] # Important: must be instantiated\n",
"\n",
Expand Down
2 changes: 1 addition & 1 deletion docs/usage/datasets.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
"source": [
"from policyengine_core.country_template.constants import COUNTRY_DIR\n",
"from policyengine_core.data import Dataset\n",
"from policyengine_core.periods import ETERNITY, MONTH, period\n",
"from policyengine_core.periods import ETERNITY, period\n",
"\n",
"\n",
"class CountryTemplateDataset(Dataset):\n",
Expand Down
3 changes: 2 additions & 1 deletion docs/usage/simulation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -1044,7 +1044,8 @@
],
"source": [
"import plotly.express as px\n",
"from policyengine_core.charts import format_fig, display_fig, BLUE\n",
"\n",
"from policyengine_core.charts import BLUE, format_fig\n",
"\n",
"fig = (\n",
" px.line(\n",
Expand Down
11 changes: 5 additions & 6 deletions policyengine_core/charts/__init__.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
from .api import *
from .bar import *
from .formatting import (
BLUE,
BLUE_COLOUR_SCALE,
DARK_GREEN,
LIGHT_GREEN,
DARK_GRAY,
DARK_GREEN,
GRAY,
LIGHT_GRAY,
LIGHT_GREEN,
WHITE,
format_fig,
display_fig,
format_fig,
)

from .bar import *
from .api import *
8 changes: 5 additions & 3 deletions policyengine_core/charts/api.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import requests
import time

import plotly.graph_objects as go
import requests

from .formatting import (
BLUE_LIGHT,
BLUE_PRIMARY,
DARK_GRAY,
MEDIUM_DARK_GRAY,
WHITE,
BLUE_LIGHT,
BLUE_PRIMARY,
format_fig,
)

Expand Down
8 changes: 5 additions & 3 deletions policyengine_core/charts/bar.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
from typing import Callable

import numpy as np
import pandas as pd
from .formatting import *
import plotly.express as px
from microdf import MicroSeries
from typing import Callable
import numpy as np

from .formatting import *


def bar_chart(
Expand Down
11 changes: 3 additions & 8 deletions policyengine_core/commons/formulas.py
Original file line number Diff line number Diff line change
@@ -1,25 +1,20 @@
import logging
from typing import Any, Callable, Dict, List, Sequence, Type, TypeVar, Union
from warnings import warn

import numpy
import numpy as np
import pandas as pd
from numpy import logical_not as not_
from numpy import maximum as max_
from numpy import minimum as min_
from numpy import round as round_
from numpy import select, where

from warnings import warn
from numpy import select

from policyengine_core.parameters.parameter_node import ParameterNode
from policyengine_core.periods.period_ import Period
from policyengine_core.populations.population import Population
from policyengine_core.types import ArrayLike, ArrayType
from policyengine_core.variables.variable import Variable

import json

T = TypeVar("T")


Expand Down Expand Up @@ -426,7 +421,7 @@ def sum_of_variables(variables: Union[List[str], str]) -> Callable:
"""

warn(
f"Sum-of-variables formulas are deprecated- please use `adds` or `subtracts` instead."
"Sum-of-variables formulas are deprecated- please use `adds` or `subtracts` instead."
)

def sum_of_variables(entity, period, parameters):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from policyengine_core.country_template.constants import COUNTRY_DIR
from policyengine_core.data import Dataset
from policyengine_core.periods import ETERNITY, MONTH, period
from policyengine_core.periods import ETERNITY, period


class CountryTemplateDataset(Dataset):
Expand Down
16 changes: 9 additions & 7 deletions policyengine_core/data/dataset.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
import os
import shutil
import sys
import tempfile
from pathlib import Path
from typing import Dict, Union, List
from typing import Dict, List, Union

import h5py
import numpy as np
import pandas as pd
import shutil
import requests
import os
import tempfile
from policyengine_core.tools.hugging_face import *

from policyengine_core.tools.google_cloud import (
parse_gs_url,
download_gcs_file,
parse_gs_url,
upload_gcs_file,
)
import sys
from policyengine_core.tools.hugging_face import *
from policyengine_core.tools.win_file_manager import WindowsAtomicFileManager


Expand Down
2 changes: 1 addition & 1 deletion policyengine_core/data_storage/in_memory_storage.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import Dict, Union
from typing import Dict

import numpy
from numpy.typing import ArrayLike
Expand Down
2 changes: 1 addition & 1 deletion policyengine_core/entities/helpers.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import List, Union
from typing import List

from policyengine_core import entities
from policyengine_core.entities.entity import Entity
Expand Down
3 changes: 3 additions & 0 deletions policyengine_core/enums/enum.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
from __future__ import annotations

import enum
import logging
from functools import lru_cache
from typing import Tuple, Union

import numpy as np

from .config import ENUM_ARRAY_DTYPE
from .enum_array import EnumArray

Expand Down
28 changes: 0 additions & 28 deletions policyengine_core/model_api.py
Original file line number Diff line number Diff line change
@@ -1,33 +1,5 @@
from datetime import date

from numpy import logical_not as not_
from numpy import maximum as max_
from numpy import minimum as min_
from numpy import round as round_
from numpy import select, where

from policyengine_core.enums import Enum
from policyengine_core.holders import (
set_input_dispatch_by_period,
set_input_divide_by_period,
)
from policyengine_core.parameters import (
Parameter,
ParameterNode,
ParameterScale,
ParameterScaleBracket,
load_parameter_file,
)
from policyengine_core.periods import DAY, ETERNITY, MONTH, YEAR, period
from policyengine_core.populations import ADD, DIVIDE
from policyengine_core.reforms import Reform
from policyengine_core.simulations import (
calculate_output_add,
calculate_output_divide,
)
from policyengine_core.variables import (
QuantityType,
Variable,
VariableCategory,
)

Expand Down
2 changes: 1 addition & 1 deletion policyengine_core/parameters/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@
)
from .helpers import contains_nan, load_parameter_file
from .operations import (
get_parameter,
homogenize_parameter_structures,
interpolate_parameters,
propagate_parameter_metadata,
uprate_parameters,
get_parameter,
)
from .parameter import Parameter
from .parameter_at_instant import ParameterAtInstant
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import logging
from typing import Any, Dict, List, Type
from typing import Any, Dict, List

from policyengine_core.enums import Enum
from policyengine_core.parameters.parameter import Parameter
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from policyengine_core.parameters.parameter import Parameter
from policyengine_core.parameters.parameter_node import ParameterNode


Expand Down
8 changes: 4 additions & 4 deletions policyengine_core/parameters/operations/uprate_parameters.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from numpy import ceil, floor
from datetime import datetime

# rrule is purposely imported this way to allow for programmatic
# calling of rrule.YEARLY, rrule.MONTHLY, and rrule.DAILY
from dateutil import rrule
from dateutil.relativedelta import relativedelta
from dateutil.parser import parse
from datetime import datetime
from dateutil.relativedelta import relativedelta
from numpy import ceil, floor

from policyengine_core.parameters.operations.get_parameter import get_parameter
from policyengine_core.parameters.parameter import Parameter
Expand All @@ -14,7 +14,7 @@
)
from policyengine_core.parameters.parameter_node import ParameterNode
from policyengine_core.parameters.parameter_scale import ParameterScale
from policyengine_core.periods import instant, Instant
from policyengine_core.periods import instant


def uprate_parameters(root: ParameterNode) -> ParameterNode:
Expand Down
11 changes: 6 additions & 5 deletions policyengine_core/parameters/parameter.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@
import os
from typing import Dict, List, Optional

from policyengine_core.commons.misc import empty_clone
from policyengine_core.errors import ParameterParsingError
from .at_instant_like import AtInstantLike
from .parameter_at_instant import ParameterAtInstant
from policyengine_core.periods import INSTANT_PATTERN
from policyengine_core.periods import period as get_period

from .helpers import _validate_parameter, _compose_name
from .at_instant_like import AtInstantLike
from .config import COMMON_KEYS
from policyengine_core.commons.misc import empty_clone
from policyengine_core.periods import INSTANT_PATTERN, period as get_period
from .helpers import _compose_name, _validate_parameter
from .parameter_at_instant import ParameterAtInstant


class Parameter(AtInstantLike):
Expand Down
13 changes: 6 additions & 7 deletions policyengine_core/parameters/parameter_node.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,23 @@
import copy
import os
import typing
from typing import Iterable, List, Type, Union
from typing import Iterable, Union

from policyengine_core import commons, parameters, tools
from policyengine_core.data_structures import Reference
from policyengine_core.periods.instant_ import Instant
from policyengine_core.tracers import TracingParameterNodeAtInstant

from .at_instant_like import AtInstantLike
from .parameter import Parameter
from .parameter_node_at_instant import ParameterNodeAtInstant
from .config import COMMON_KEYS, FILE_EXTENSIONS
from .helpers import (
load_parameter_file,
_compose_name,
_validate_parameter,
_parse_child,
_load_yaml_file,
_parse_child,
_validate_parameter,
load_parameter_file,
)
from .parameter import Parameter
from .parameter_node_at_instant import ParameterNodeAtInstant

EXCLUDED_PARAMETER_CHILD_NAMES = ["reference", "__pycache__"]

Expand Down
1 change: 0 additions & 1 deletion policyengine_core/parameters/parameter_node_at_instant.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import os
import sys
from typing import TYPE_CHECKING, Iterable, Union

import numpy
Expand Down
1 change: 1 addition & 0 deletions policyengine_core/parameters/parameter_scale_bracket.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from typing import Iterable

from policyengine_core.parameters import Parameter, ParameterNode


Expand Down
2 changes: 1 addition & 1 deletion policyengine_core/periods/period_.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from __future__ import annotations

import calendar
from datetime import datetime, date, timedelta
from datetime import date, datetime, timedelta
from typing import List

from policyengine_core import periods
Expand Down
5 changes: 2 additions & 3 deletions policyengine_core/populations/group_population.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
from typing import TYPE_CHECKING, Any, Callable
from typing import TYPE_CHECKING, Any, Callable, Container, Optional

import numpy
from numpy.typing import ArrayLike

from policyengine_core import projectors
from policyengine_core.entities import Entity, Role
from policyengine_core.enums import EnumArray
from policyengine_core.populations.population import Population
from policyengine_core.periods.period_ import Period
from typing import Optional, Container
from policyengine_core.populations.population import Population

if TYPE_CHECKING:
from policyengine_core.simulations import Simulation
Expand Down
Loading
Loading