cap_struct
index
/Users/gcallah/TandonDevOps/IndraABM/capital/cap_struct.py

A model for capital structure.
Places two groups of agents in the enviornment randomly
and moves them around randomly.

 
Modules
       
copy

 
Classes
       
lib.model.Model(builtins.object)
CapStruct

 
class CapStruct(lib.model.Model)
    CapStruct(model_nm='BaseModel', props=None, grp_struct={'def_grp': {'mbr_creator': <function create_agent at 0x7fc87453e940>, 'grp_action': None, 'mbr_action': <function def_action at 0x7fc87450a820>, 'num_mbrs': 1, 'num_mbrs_prop': None, 'color': 'blue'}, 'red_grp': {'mbr_creator': <function create_agent at 0x7fc87453e940>, 'grp_action': None, 'mbr_action': <function def_action at 0x7fc87450a820>, 'num_mbrs': 1, 'num_mbrs_prop': None, 'color': 'red'}}, env_action=None, random_placing=True, serial_obj=None, exec_key=None, create_for_test=False)
 

 
 
Method resolution order:
CapStruct
lib.model.Model
builtins.object

Methods defined here:
create_groups(self)
Override this method in your model to create all of your groups.
In general, you shouldn't need to: fill in the grp_struct instead.
handle_props(self, props, model_dir=None)

Methods inherited from lib.model.Model:
__init__(self, model_nm='BaseModel', props=None, grp_struct={'def_grp': {'mbr_creator': <function create_agent at 0x7fc87453e940>, 'grp_action': None, 'mbr_action': <function def_action at 0x7fc87450a820>, 'num_mbrs': 1, 'num_mbrs_prop': None, 'color': 'blue'}, 'red_grp': {'mbr_creator': <function create_agent at 0x7fc87453e940>, 'grp_action': None, 'mbr_action': <function def_action at 0x7fc87450a820>, 'num_mbrs': 1, 'num_mbrs_prop': None, 'color': 'red'}}, env_action=None, random_placing=True, serial_obj=None, exec_key=None, create_for_test=False)
Initialize self.  See help(type(self)) for accurate signature.
__repr__(self)
This returns a JSON representation of the model.
__str__(self)
Return str(self).
add_child(self, group)
Put a child agent in the womb.
group: which group will add new agent
The womb should move up into model eventually.
add_switch(self, agent_nm, from_grp_nm, to_grp_nm)
Switch agent from 1 group to another.
The agent and groups should be passed by name.
bar_graph(self)
create_anew(self, model_nm, props, grp_struct, exec_key, env_action, random_placing, create_for_test=False)
Create the model for the first time.
create_env(self, env_action=None, random_placing=True)
Override this method to create a unique env...
but this one will already set the model name and add
the groups.
create_from_serial_obj(self, serial_obj)
Restore the model from its serialized version.
create_pop_hist(self)
There are several methods that still (like in V2) reside in
Env, but which we mean to move to Model. So we provide an interface to
them here so when we move them other code won't break.
`create_pop_hist()` is such a method.
create_user(self)
This will create a user of the correct type.
from_json(self, jrep)
This method restores a model from its JSON rep.
get_locations(self)
get_pop_hist(self)
get_user_msgs(self)
handle_switches(self)
This will actually process the pending switches.
handle_womb(self)
This method adds new agents from the womb.
The womb should move up into model eventually.
line_graph(self)
pending_switches(self)
How many switches are there to execute?
rpt_census(self, acts, moves)
This is the default census report.
Right now, `acts` is not used: do we need it?
Return: a string saying what happened in a period.
rpt_switches(self)
Generate a string to report our switches.
run(self, periods=None)
This method runs the model. If `periods` is not None,
it will run it for that many periods. Otherwise, on
a terminal, it will display the menu.
Return: 0 if run was fine.
runN(self, periods=10)
Run our model for N periods.
Return the total number of actions taken.
scatter_plot(self)
to_json(self)
This method generates the JSON representation for this model.
update_pop_hist(self)
This method records our populations each period.

Data descriptors inherited from lib.model.Model:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
Functions
       
create_entr(name, i, action=None, **kwargs)
Create an agent.
create_model(serial_obj=None, props=None)
create_rholder(name, i, action=None, **kwargs)
Create an agent.
dict_to_string(dict)
entr_action(agent, **kwargs)
main()
rholder_action(agent, **kwargs)

 
Data
        BLUE = 'blue'
COLOR = 'color'
DEF_CAP_WANTED = {'building': 200, 'land': 1000, 'truck': 500}
DEF_EACH_CAP_PRICE = {'building': 1, 'land': 1, 'truck': 1}
DEF_ENTR_CASH = 100000
DEF_K_PRICE = 1
DEF_NUM_ENTR = 10
DEF_NUM_RHOLDER = 10
DEF_RESOURCE_HOLD = {'building': 200, 'land': 1000, 'truck': 500}
DEF_RHOLDER_CASH = 0
DEF_TOTAL_RESOURCES_ENTR_WANT = 20000
DEF_TOTAL_RESOURCES_RHOLDER_HAVE = 30000
MBR_ACTION = 'mbr_action'
MBR_CREATOR = 'mbr_creator'
MODEL_NAME = 'capital'
NUM_MBRS = 'num_mbrs'
NUM_MBRS_PROP = 'num_mbrs_prop'
RED = 'red'
cap_grps = {'entrepreneurs': {'color': 'blue', 'mbr_action': <function entr_action>, 'mbr_creator': <function create_entr>, 'num_mbrs': 10, 'num_mbrs_prop': 'num_entr'}, 'resource_holders': {'color': 'red', 'mbr_action': <function rholder_action>, 'mbr_creator': <function create_rholder>, 'num_mbrs': 10, 'num_mbrs_prop': 'num_rholder'}}
entrepreneurs = None
resource_holders = None