Git Product home page Git Product logo

Comments (5)

rgemulla avatar rgemulla commented on August 14, 2024

See also the discussion at the end of #43. Paraphrasing:

1+2. The purpose of get_option is to look at the right place in the current job/model/etc. It should stay and be used everywhere. Perhaps one could use a better name.

3+4 is good, but resolve_type is misleading (use resolve or resolve_via_type or allow_parent_lookup or sth along those lines)

from kge.

samuelbroscheit avatar samuelbroscheit commented on August 14, 2024

So your intention seems to be that config.get/set should not be called directly by non-core/internal stuff.

Then I would propose that the Config-object should be wrapped into a ConfigWrapper-class, which is then the gateway to config but checks and augments the config namespace.

class ConfigWrapper:
  def __init__(self, configuree, config):
    self._config_key = configuree.config_key
    self._config = config
  
  def get(... same as config.get ... ):
     do KgeModel.get_option stuff here and call.self._config.get

  def set(... same as config.set ... ):
     do KgeModel.set_option stuff here and call.self._config.set

and in the init of a job or model

self.config = ConfigWrapper(self, config)

from kge.

samuelbroscheit avatar samuelbroscheit commented on August 14, 2024
  1. Merge get and get_default
  2. Rename default to backoff_via_type or allow_parent_lookup and make a boolean argument get(..., backoff_via_type=True, ...) as it is done for set(..., create=True, ...). Then we have one get and one set with either an option to have a backoff_via_type/create behaviour or not.
  3. Introduce a ConfigWrapper that exposes a get/set method that checks the config namespace of the current object and then calls the private config object.

from kge.

rgemulla avatar rgemulla commented on August 14, 2024

We had a quick discussion and the idea is to use a Configurable mixin. It has attributes config and configuration_key and provides methods get_option() and set_option().

This may also largely avoid the need for using self._init_configuration(config, configuration_key); instead, the Configurable constructor can be used.

from kge.

rgemulla avatar rgemulla commented on August 14, 2024

Addressed in 61e1243

from kge.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.