Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor/control specs #2276

Merged
merged 17 commits into from
Jan 5, 2022
Merged

Refactor/control specs #2276

merged 17 commits into from
Jan 5, 2022

Conversation

jdcpni
Copy link
Collaborator

@jdcpni jdcpni commented Jan 5, 2022

• controlmechanism.py:

  • add controlType attribute
  • Parameters._parse_output_ports:
    • fix bug in support for controlType spec
    • remove dual-spec error message (handled by ControlSignal)

• controlsignal.py:

  • _parse_port_specific_specs: assign controlType entries to PROJECTIONS

• gatingmechanism.py:

  • remove Parameters.output_port._parse_output_ports (handled by ControlMechanism)

• gatingsignal.py:

  • remove _parse_port_specific_specs (handled by ControlSignal)

jdcpni and others added 17 commits November 15, 2021 14:44
…Link into devel

� Conflicts:
�	psyneulink/core/components/mechanisms/modulatory/control/optimizationcontrolmechanism.py
  - add controlType attribute

• gatingmechanism.py:
  - remove Parameters.output_port._parse_output_ports (handled by ControlMechanism)
  - add controlType attribute

• gatingmechanism.py:
  - remove Parameters.output_port._parse_output_ports (handled by ControlMechanism)

• gatingsignal.py:
  - remove _parse_port_specific_specs (handled by ControlSignal)
  - add controlType attribute

• gatingmechanism.py:
  - remove Parameters.output_port._parse_output_ports (handled by ControlMechanism)

• gatingsignal.py:
  - remove _parse_port_specific_specs (handled by ControlSignal)
  - Parameters._parse_output_port(): remove error for dual spec (handled by ControlSignal)
@github-actions
Copy link

github-actions bot commented Jan 5, 2022

This PR causes the following changes to the html docs (ubuntu-latest-3.7-x64):

diff -r docs-base/ControlSignal.html docs-head/ControlSignal.html
784a785,790
> <dt class="sig sig-object py" id="psyneulink.core.components.ports.modulatorysignals.controlsignal.ControlSignal.errorType">
> <span class="sig-name descname"><span class="pre">errorType</span></span><a class="headerlink" href="#psyneulink.core.components.ports.modulatorysignals.controlsignal.ControlSignal.errorType" title="Permalink to this definition">¶</a></dt>
> <dd><p>alias of <a class="reference internal" href="#psyneulink.core.components.ports.modulatorysignals.controlsignal.ControlSignalError" title="psyneulink.core.components.ports.modulatorysignals.controlsignal.ControlSignalError"><code class="xref py py-class docutils literal notranslate"><span class="pre">psyneulink.core.components.ports.modulatorysignals.controlsignal.ControlSignalError</span></code></a></p>
> </dd></dl>
> 
> <dl class="py attribute">
diff -r docs-base/GatingSignal.html docs-head/GatingSignal.html
529a530,535
> <dt class="sig sig-object py" id="psyneulink.core.components.ports.modulatorysignals.gatingsignal.GatingSignal.errorType">
> <span class="sig-name descname"><span class="pre">errorType</span></span><a class="headerlink" href="#psyneulink.core.components.ports.modulatorysignals.gatingsignal.GatingSignal.errorType" title="Permalink to this definition">¶</a></dt>
> <dd><p>alias of <a class="reference internal" href="#psyneulink.core.components.ports.modulatorysignals.gatingsignal.GatingSignalError" title="psyneulink.core.components.ports.modulatorysignals.gatingsignal.GatingSignalError"><code class="xref py py-class docutils literal notranslate"><span class="pre">psyneulink.core.components.ports.modulatorysignals.gatingsignal.GatingSignalError</span></code></a></p>
> </dd></dl>
> 
> <dl class="py attribute">
533,544d538
< </dd></dl>
< 
< <dl class="py method">
< <dt class="sig sig-object py" id="psyneulink.core.components.ports.modulatorysignals.gatingsignal.GatingSignal._parse_port_specific_specs">
< <span class="sig-name descname"><span class="pre">_parse_port_specific_specs</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">owner</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_dict</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_specific_spec</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#psyneulink.core.components.ports.modulatorysignals.gatingsignal.GatingSignal._parse_port_specific_specs" title="Permalink to this definition">¶</a></dt>
< <dd><p>Get connections specified in a ParameterPort specification tuple</p>
< <dl class="simple">
< <dt>Tuple specification can be:</dt><dd><p>(Port name, Mechanism)</p>
< </dd>
< </dl>
< <p>[TBI:] (Mechanism, Port name, weight, exponent, projection_specs)</p>
< <p>Returns params dict with CONNECTIONS entries if any of these was specified.</p>
diff -r docs-base/genindex.html docs-head/genindex.html
810,811d809
<         <li><a href="GatingSignal.html#psyneulink.core.components.ports.modulatorysignals.gatingsignal.GatingSignal._parse_port_specific_specs">(psyneulink.core.components.ports.modulatorysignals.gatingsignal.GatingSignal method)</a>
< </li>
1956a1955,1960
>       <li><a href="ControlSignal.html#psyneulink.core.components.ports.modulatorysignals.controlsignal.ControlSignal.errorType">errorType (psyneulink.core.components.ports.modulatorysignals.controlsignal.ControlSignal attribute)</a>
> 
>       <ul>
>         <li><a href="GatingSignal.html#psyneulink.core.components.ports.modulatorysignals.gatingsignal.GatingSignal.errorType">(psyneulink.core.components.ports.modulatorysignals.gatingsignal.GatingSignal attribute)</a>
> </li>
>       </ul></li>
1958a1963,1964
>   </ul></td>
>   <td style="width: 33%; vertical-align: top;"><ul>
1967,1968d1972
<   </ul></td>
<   <td style="width: 33%; vertical-align: top;"><ul>
Binary files docs-base/objects.inv and docs-head/objects.inv differ
diff -r docs-base/searchindex.js docs-head/searchindex.js
1c1
< Search.setIndex({docnames:["AGT","AGTControlMechanism","AutoAssociativeLearningMechanism","AutoAssociativeProjection","AutodiffComposition","BasicsAndPrimer","BotvinickConflictMonitoringModel","BustamanteStroopXORLVOCModel","Cohen_HustonModel","CombinationFunctions","ComparatorMechanism","Compilation","Component","Components","Composition","CompositionFunctionApproximator","CompositionInterfaceMechanism","Compositions","Condition","Context","ContrastiveHebbianMechanism","ContributorsGuide","ControlMechanism","ControlMechanisms","ControlProjection","ControlProjections","ControlSignal","ConventionsAndDefinitions","Core","DDM","DefaultControlMechanism","Defaults","DistributionFunctions","EVC","EVCAuxiliary","EVCControlMechanism","EpisodicMemoryMechanism","Function","Functions","GatingMechanism","GatingMechanisms","GatingProjection","GatingProjections","GatingSignal","GilzenratModel","InputPort","IntegratorFunctions","IntegratorMechanism","IntegratorMechanisms","KWTAMechanism","Keywords","KohonenMechanism","LCAMechanism","LCControlMechanism","LCMechanism","LeabraMechanism","LearningFunctions","LearningMechanism","LearningMechanisms","LearningProjection","LearningProjections","LearningSignal","Library","Log","MappingProjection","MaskedMappingProjection","Mechanism","Mechanisms","MemoryFunctions","Models","ModulatoryMechanism","ModulatoryMechanisms","ModulatoryProjection","ModulatoryProjections","ModulatorySignal","MontagueModel","NieuwenhuisModel","NonStatefulFunctions","ObjectiveFunctions","ObjectiveMechanism","ObjectiveMechanisms","OptimizationControlMechanism","OptimizationFunctions","OutputPort","PCTC_model","ParameterEstimationComposition","ParameterPort","Parameters","Pathway","PathwayProjection","PathwayProjections","Port","PredictionErrorMechanism","Preferences","ProcessingMechanism","ProcessingMechanisms","Projection","Projections","QuickReference","RecurrentTransferMechanism","RefactoredLearningGuide","Registry","RegressionCFA","Report","Scheduler","Scheduling","SelectionFunctions","Services","StatefulFunction","StatefulFunctions","Subystems","Time","TransferFunctions","TransferMechanism","TransferMechanisms","UserDefinedFunction","UserGuide","UserGuide_TBD","Visualization","globals","index","index_logo_with_text","json"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["AGT.rst","AGTControlMechanism.rst","AutoAssociativeLearningMechanism.rst","AutoAssociativeProjection.rst","AutodiffComposition.rst","BasicsAndPrimer.rst","BotvinickConflictMonitoringModel.rst","BustamanteStroopXORLVOCModel.rst","Cohen_HustonModel.rst","CombinationFunctions.rst","ComparatorMechanism.rst","Compilation.rst","Component.rst","Components.rst","Composition.rst","CompositionFunctionApproximator.rst","CompositionInterfaceMechanism.rst","Compositions.rst","Condition.rst","Context.rst","ContrastiveHebbianMechanism.rst","ContributorsGuide.rst","ControlMechanism.rst","ControlMechanisms.rst","ControlProjection.rst","ControlProjections.rst","ControlSignal.rst","ConventionsAndDefinitions.rst","Core.rst","DDM.rst","DefaultControlMechanism.rst","Defaults.rst","DistributionFunctions.rst","EVC.rst","EVCAuxiliary.rst","EVCControlMechanism.rst","EpisodicMemoryMechanism.rst","Function.rst","Functions.rst","GatingMechanism.rst","GatingMechanisms.rst","GatingProjection.rst","GatingProjections.rst","GatingSignal.rst","GilzenratModel.rst","InputPort.rst","IntegratorFunctions.rst","IntegratorMechanism.rst","IntegratorMechanisms.rst","KWTAMechanism.rst","Keywords.rst","KohonenMechanism.rst","LCAMechanism.rst","LCControlMechanism.rst","LCMechanism.rst","LeabraMechanism.rst","LearningFunctions.rst","LearningMechanism.rst","LearningMechanisms.rst","LearningProjection.rst","LearningProjections.rst","LearningSignal.rst","Library.rst","Log.rst","MappingProjection.rst","MaskedMappingProjection.rst","Mechanism.rst","Mechanisms.rst","MemoryFunctions.rst","Models.rst","ModulatoryMechanism.rst","ModulatoryMechanisms.rst","ModulatoryProjection.rst","ModulatoryProjections.rst","ModulatorySignal.rst","MontagueModel.rst","NieuwenhuisModel.rst","NonStatefulFunctions.rst","ObjectiveFunctions.rst","ObjectiveMechanism.rst","ObjectiveMechanisms.rst","OptimizationControlMechanism.rst","OptimizationFunctions.rst","OutputPort.rst","PCTC_model.rst","ParameterEstimationComposition.rst","ParameterPort.rst","Parameters.rst","Pathway.rst","PathwayProjection.rst","PathwayProjections.rst","Port.rst","PredictionErrorMechanism.rst","Preferences.rst","ProcessingMechanism.rst","ProcessingMechanisms.rst","Projection.rst","Projections.rst","QuickReference.rst","RecurrentTransferMechanism.rst","RefactoredLearningGuide.rst","Registry.rst","RegressionCFA.rst","Report.rst","Scheduler.rst","Scheduling.rst","SelectionFunctions.rst","Services.rst","StatefulFunction.rst","StatefulFunctions.rst","Subystems.rst","Time.rst","TransferFunctions.rst","TransferMechanism.rst","TransferMechanisms.rst","UserDefinedFunction.rst","UserGuide.rst","UserGuide_TBD.rst","Visualization.rst","globals.rst","index.rst","index_logo_with_text.rst","json.rst"],objects:{"psyneulink.core.components":{component:[12,0,0,"-"]},"psyneulink.core.components.component":{Component:[12,1,1,""]},"psyneulink.core.components.component.Component":{"function":[12,4,1,""],_check_args:[12,2,1,""],_check_for_composition:[12,2,1,""],_deferred_init:[12,2,1,""],_dependent_components:[12,3,1,""],_get_param_value_from_tuple:[12,2,1,""],_handle_default_variable:[12,2,1,""],_handle_size:[12,2,1,""],_instantiate_defaults:[12,2,1,""],_instantiate_function:[12,2,1,""],_instantiate_parameter_classes:[12,2,1,""],_model_spec_class_name_is_generic:[12,4,1,""],_model_spec_generic_type_name:[12,4,1,""],_model_spec_parameter_blacklist:[12,3,1,""],_parameter_components:[12,3,1,""],_parse_arg_generic:[12,2,1,""],_parse_arg_variable:[12,2,1,""],_parse_function_variable:[12,2,1,""],_set_multiple_parameter_values:[12,2,1,""],_specified_variable_shape_flexibility:[12,4,1,""],_validate:[12,2,1,""],_validate_and_assign_runtime_params:[12,2,1,""],_validate_function:[12,2,1,""],_validate_params:[12,2,1,""],_validate_variable:[12,2,1,""],all_dependent_parameters:[12,2,1,""],current_execution_time:[12,4,1,""],defaults:[12,4,1,""],execute:[12,2,1,""],execute_until_finished:[12,4,1,""],execution_count:[12,4,1,""],function_parameters:[12,3,1,""],initialization_status:[12,4,1,""],is_finished:[12,2,1,""],log:[12,4,1,""],log_values:[12,2,1,""],loggable_items:[12,3,1,""],logged_items:[12,3,1,""],max_executions_before_finished:[12,4,1,""],most_recent_context:[12,3,1,""],name:[12,4,1,""],num_executions:[12,4,1,""],num_executions_before_finished:[12,4,1,""],parameters:[12,4,1,""],prefs:[12,4,1,""],reset:[12,2,1,""],reset_params:[12,2,1,""],reset_stateful_function_when:[12,4,1,""],set_delivery_conditions:[12,2,1,""],set_log_conditions:[12,2,1,""],size:[12,4,1,""],stateful_parameters:[12,3,1,"id0"],value:[12,4,1,""],variable:[12,4,1,""]},"psyneulink.core.components.functions":{"function":[38,0,0,"-"],combinationfunctions:[9,0,0,"-"],distributionfunctions:[32,0,0,"-"],learningfunctions:[56,0,0,"-"],objectivefunctions:[78,0,0,"-"],optimizationfunctions:[82,0,0,"-"],selectionfunctions:[106,0,0,"-"],transferfunctions:[112,0,0,"-"],userdefinedfunction:[115,0,0,"-"]},"psyneulink.core.components.functions.combinationfunctions":{CombineMeans:[9,1,1,""],Concatenate:[9,1,1,""],LinearCombination:[9,1,1,""],PredictionErrorDeltaFunction:[9,1,1,""],Rearrange:[9,1,1,""],Reduce:[9,1,1,""]},"psyneulink.core.components.functions.combinationfunctions.CombineMeans":{_function:[9,2,1,""],_validate_params:[9,2,1,""],_validate_variable:[9,2,1,""],exponents:[9,4,1,""],name:[9,4,1,""],offset:[9,4,1,""],operation:[9,4,1,""],owner:[9,4,1,""],prefs:[9,4,1,""],scale:[9,4,1,""],variable:[9,4,1,""],weights:[9,4,1,""]},"psyneulink.core.components.functions.combinationfunctions.Concatenate":{_function:[9,2,1,""],_validate_params:[9,2,1,""],_validate_variable:[9,2,1,""],default_variable:[9,4,1,""],name:[9,4,1,""],offset:[9,4,1,""],owner:[9,4,1,""],prefs:[9,4,1,""],scale:[9,4,1,""]},"psyneulink.core.components.functions.combinationfunctions.LinearCombination":{_function:[9,2,1,""],_validate_params:[9,2,1,""],_validate_variable:[9,2,1,""],exponents:[9,4,1,""],name:[9,4,1,""],offset:[9,4,1,""],operation:[9,4,1,""],owner:[9,4,1,""],prefs:[9,4,1,""],scale:[9,4,1,""],variable:[9,4,1,""],weights:[9,4,1,""]},"psyneulink.core.components.functions.combinationfunctions.PredictionErrorDeltaFunction":{_function:[9,2,1,""],_validate_params:[9,2,1,""],_validate_variable:[9,2,1,""]},"psyneulink.core.components.functions.combinationfunctions.Rearrange":{_function:[9,2,1,""],_instantiate_attributes_before_function:[9,2,1,""],_validate_params:[9,2,1,""],_validate_variable:[9,2,1,""],arrangement:[9,4,1,""],default_variable:[9,4,1,""],name:[9,4,1,""],offset:[9,4,1,""],owner:[9,4,1,""],prefs:[9,4,1,""],scale:[9,4,1,""]},"psyneulink.core.components.functions.combinationfunctions.Reduce":{_function:[9,2,1,""],_validate_params:[9,2,1,""],_validate_variable:[9,2,1,""],default_variable:[9,4,1,""],name:[9,4,1,""],offset:[9,4,1,""],operation:[9,4,1,""],owner:[9,4,1,""],prefs:[9,4,1,""],scale:[9,4,1,""]},"psyneulink.core.components.functions.distributionfunctions":{DistributionFunction:[32,1,1,""],DriftDiffusionAnalytical:[32,1,1,""],ExponentialDist:[32,1,1,""],GammaDist:[32,1,1,""],NormalDist:[32,1,1,""],UniformDist:[32,1,1,""],UniformToNormalDist:[32,1,1,""],WaldDist:[32,1,1,""]},"psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical":{_compute_conditional_rt_moments:[32,2,1,""],_function:[32,2,1,""],bias:[32,4,1,""],derivative:[32,2,1,""],drift_rate:[32,4,1,""],name:[32,4,1,""],noise:[32,4,1,""],owner:[32,4,1,""],prefs:[32,4,1,""],shenhav_et_al_compat_mode:[32,3,1,""],starting_point:[32,4,1,""],t0:[32,4,1,""],threshold:[32,4,1,""],variable:[32,4,1,""]},"psyneulink.core.components.functions.distributionfunctions.ExponentialDist":{beta:[32,4,1,""],name:[32,4,1,""],owner:[32,4,1,""],params:[32,4,1,""],prefs:[32,4,1,""],random_state:[32,4,1,""]},"psyneulink.core.components.functions.distributionfunctions.GammaDist":{dist_shape:[32,4,1,""],name:[32,4,1,""],owner:[32,4,1,""],params:[32,4,1,""],prefs:[32,4,1,""],random_state:[32,4,1,""],scale:[32,4,1,""]},"psyneulink.core.components.functions.distributionfunctions.NormalDist":{_validate_params:[32,2,1,""],mean:[32,4,1,""],name:[32,4,1,""],owner:[32,4,1,""],params:[32,4,1,""],prefs:[32,4,1,""],random_state:[32,4,1,""],standard_deviation:[32,4,1,""]},"psyneulink.core.components.functions.distributionfunctions.UniformDist":{high:[32,4,1,""],low:[32,4,1,""],name:[32,4,1,""],owner:[32,4,1,""],params:[32,4,1,""],prefs:[32,4,1,""],random_state:[32,4,1,""]},"psyneulink.core.components.functions.distributionfunctions.UniformToNormalDist":{mean:[32,4,1,""],name:[32,4,1,""],owner:[32,4,1,""],params:[32,4,1,""],prefs:[32,4,1,""],random_state:[32,4,1,""],standard_deviation:[32,4,1,""]},"psyneulink.core.components.functions.function":{ArgumentTherapy:[38,1,1,""],Function_Base:[38,1,1,""]},"psyneulink.core.components.functions.function.ArgumentTherapy":{Manner:[38,1,1,""],_function:[38,2,1,""],_validate_params:[38,2,1,""],_validate_variable:[38,2,1,""],name:[38,4,1,""],owner:[38,4,1,""],pertinacity:[38,4,1,""],prefs:[38,4,1,""],propensity:[38,4,1,""],variable:[38,4,1,""]},"psyneulink.core.components.functions.function.Function_Base":{"function":[38,4,1,""],_model_spec_parameter_blacklist:[38,3,1,""],_parse_arg_generic:[38,2,1,""],_validate_parameter_spec:[38,2,1,""],name:[38,4,1,""],owner:[38,4,1,""],prefs:[38,4,1,""],variable:[38,4,1,""]},"psyneulink.core.components.functions.learningfunctions":{BackPropagation:[56,1,1,""],BayesGLM:[56,1,1,""],ContrastiveHebbian:[56,1,1,""],Hebbian:[56,1,1,""],Kohonen:[56,1,1,""],LearningFunction:[56,1,1,""],Reinforcement:[56,1,1,""],TDLearning:[56,1,1,""]},"psyneulink.core.components.functions.learningfunctions.BackPropagation":{_function:[56,2,1,""],_validate_params:[56,2,1,""],_validate_variable:[56,2,1,""],activation_derivative_fct:[56,4,1,""],activation_input:[56,4,1,""
...

See CI logs for the full diff.

@coveralls
Copy link

Coverage Status

Coverage decreased (-0.0004%) to 84.349% when pulling 538d24c on refactor/control_specs into 491fede on devel.

@jdcpni jdcpni merged commit ab0e3c7 into devel Jan 5, 2022
@jdcpni jdcpni deleted the refactor/control_specs branch January 5, 2022 12:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants