Utilities Functions
Contents
Utilities Functions¶
utils.py classes, methods, and modules
ogcore.utils¶
- class ogcore.utils.Inequality(dist, pop_weights, ability_weights, S, J)[source]¶
A class with methods to compute different measures of inequality.
- gini(type='overall')[source]¶
Compute the Gini coefficient
- Parameters
None –
- Returns
Gini coefficient
- Return type
gini_coeff (scalar)
- pct(pct)[source]¶
Returns value at given percentile
- Parameters
pct1 (scalar) – percentile to compute the value at, in (0, 1).
- Returns
value of variable at pct
- Return type
value (scalar)
- ratio_pct1_pct2(pct1, pct2)[source]¶
Compute the pct1/pct2 percentile ratio
- Parameters
pct1 (scalar) – percentile to compute the top pctile% for, in (0, 1).
pct2 (scalar) – percentile to compute the top pctile% for, in (0, 1)
- Returns
ratio of pct1 to pct2
- Return type
pct_ratio (scalar)
Notes
usually pct1 > pct 2
- ogcore.utils.comp_array(name, a, b, tol, unequal, exceptions={}, relative=False)[source]¶
Compare two arrays in the L inifinity norm Return True if | a - b | < tol, False otherwise If not equal, add items to the unequal list name: the name of the value being compared
- Parameters
name (str) – name of variable being compared
a (array_like) – first array to compare
b (array_like) – second array to compare
tol (scalar) – tolerance used for comparison
unequal (dict) – dict of variables that are not equal
exceptions (dict) – exceptions
relative (bool) – whether comparison compares relative values
- Returns
whether two arrays are the same or not
- Return type
(bool)
- ogcore.utils.comp_scalar(name, a, b, tol, unequal, exceptions={}, relative=False)[source]¶
Compare two scalars in the L inifinity norm Return True if abs(a - b) < tol, False otherwise If not equal, add items to the unequal list
- Parameters
name (str) – name of variable being compared
a (scalar) – first scalar to compare
b (scalra) – second scalar to compare
tol (scalar) – tolerance used for comparison
unequal (list) – list of variables that are not equal
exceptions (dict) – exceptions
relative (bool) – whether comparison compares relative values
- Returns
whether two arrays are the same or not
- Return type
(bool)
- ogcore.utils.convex_combo(var1, var2, nu)[source]¶
Takes the convex combination of two variables, where nu is in [0,1].
- Parameters
var1 (array_like) – any shape, variable 1
var2 (array_like) – same shape as var1, variable 2
nu (scalar) – weight on var1 in convex combination, in [0, 1]
- Returns
same shape as var1, convex combination of var1 and var2
- Return type
combo (array_like)
- ogcore.utils.dict_compare(name1, dict1, name2, dict2, tol, verbose=False, exceptions={}, relative=False)[source]¶
Compare two dictionaries. The values of each dict are either numpy arrays or else types that are comparable with the == operator. For arrays, they are considered the same if |x - y| < tol in the L_inf norm. For scalars, they are considered the same if x - y < tol.
- Parameters
name1 (str) – name of dictionary 1
dict1 (dict) – first dictionary to compare
name2 (str) – name of dictionary 2
dict2 (dict) – second dictionary to compare
tol (scalar) – tolerance used for comparison
verbose (bool) – whether print messages
exceptions (dict) – exceptions
relative (bool) – whether comparison compares relative values
- Returns
whether two dictionaries are the same or not
- Return type
(bool)
- ogcore.utils.fetch_files_from_web(file_urls)[source]¶
Fetches zip files from respective web addresses and saves them as temporary files. Prints progress bar as it downloads the files.
- Parameters
file_urls (list of strings) – list of URLs of respective data zip files
- Functions called:
print_progress()
- Objects created within function:
local_paths = list, local paths for teporary files iteration = int, the number of files that have been downloaded total = total, the total number of files to download f = temporary file of monthly CPS survey path = string, local path for temporary file zipped_file = ZipFile object, opened zipfile
- Files created by this function:
.dta file for each year of SCF data
- Returns
- local paths of temporary data
files
- Return type
local_paths (list of strings)
- ogcore.utils.get_initial_path(x1, xT, p, shape)[source]¶
This function generates a path from point x1 to point xT such that that the path x is a linear or quadratic function of time t.
linear: x = d*t + e
quadratic: x = a*t^2 + b*t + c
- Parameters
x1 (scalar) – initial value of the function x(t) at t=0
xT (scalar) – value of the function x(t) at t=T-1
T (int) – number of periods of the path, must be >= 3
shape (str) – shape of guess for time path, “linear”, “ratio”, or “quadratic”
- Returns
guess of variable over the time path
- Return type
xpath (Numpy array)
Notes
- The identifying assumptions for quadratic are the following:
x1 is the value at time `t=0: x1 = c
xT is the value at time t=T-1: xT = a*(T-1)^2 + b*(T-1) + c
the slope of the path at t=T-1 is 0: 0 = 2*a*(T-1) + b`
- ogcore.utils.mkdirs(path)[source]¶
Makes directories to save output.
- Parameters
path (str) – path name for new directory
- Returns
None
- ogcore.utils.not_connected(url='http://www.google.com/', timeout=5)[source]¶
Checks for internet connection status of machine.
- Parameters
url (string) – url used to check connectivity
timeout (float>0) – time to wait for timeout
Functions called: None
- Returns
=True if connection was made within timeout
- Return type
Boolean singleton
- Raises
ConnectionError – If no response from url withing timeout
- ogcore.utils.pct_diff_func(simul, data)[source]¶
Used to calculate the absolute percent difference between data moments and model moments.
- Parameters
simul (array_like) – any shape, model moments
data (array_like) – same shape as simul, data moments
Functions called: None
- Returns
- percentage differences between model and
data moments
- Return type
output (array_like)
- ogcore.utils.pickle_file_compare(fname1, fname2, tol=0.001, exceptions={}, relative=False)[source]¶
Read two pickle files and unpickle each. We assume that each resulting object is a dictionary. The values of each dict are either numpy arrays or else types that are comparable with the == operator.
- Parameters
fname1 (str) – file name of file 1
fname2 (str) – file name of file 2
tol (scalar) – tolerance
exceptions (dict) – exceptions
relative (bool) – whether comparison compares relative values
- Returns
whether therea two dictionaries are the same
- Return type
comparison (bool)
- ogcore.utils.print_progress(iteration, total, source_name='', prefix='Progress:', suffix='Complete', decimals=1, bar_length=50)[source]¶
Prints a progress bar to the terminal when completing small tasks of a larger job.
- Parameters
iteration (int>=1) – which task the job is currently doing
total (int>=1) – how many tasks are in the job
source_name (string) – name of source data
prefix (string) – what to print before the progress bar
suffix (string) – what to print after the progress bar
decimals (int>=0) – how many decimals in the percentage
bar_length (int>=3) – how many boxes in the progress bar
Functions called: None
- Objects created within function:
status (string): status of download str_format (string): string containing percentage completed percents (string): percentage completed filled_length (int): number of boxes in the progress bar to fill bar (string): progress bar
Returns: status
- ogcore.utils.rate_conversion(annual_rate, start_age, end_age, S)[source]¶
This function converts annual rates to model period ratesself.
- Parameters
annual_rate (array_like) – annualized rates
start_age (int) – age at which agents become economically active
end_age (int) – maximum age of agents
S (int) – number of model periods in agents life
- Returns
model period rates
- Return type
rate (array_like)
- ogcore.utils.read_file(path, fname)[source]¶
Read the contents of ‘path’. If it does not exist, assume the file is installed in a .egg file, and adjust accordingly.
- Parameters
path (str) – path name for new directory
fname (str) – filename
- Returns
file contents (str)
- ogcore.utils.safe_read_pickle(file_path)[source]¶
This function reads a pickle from Python 2 into Python 2 or Python 3
- Parameters
file_path (str) – path to pickle file
- Returns
object saved in pickle file
- Return type
obj (object)
- ogcore.utils.save_return_table(table_df, output_type, path, precision=2)[source]¶
Function to save or return a table of data.
- Parameters
table_df (Pandas DataFrame) – table
output_type (string) – specifies the type of file to save table to: ‘csv’, ‘tex’, ‘excel’, ‘json’
path (string) – specifies path to save file with table to
precision (integer) – number of significant digits to print. Defaults to 0.
- Returns
table
- Return type
table_df (Pandas DataFrame)