Issue adding schedule with blank frequency

Before you submit a new bug report, please check that

[X] I have read frequently asked questions and limitations
[X] I'm running the newest version of Garbage Collection, or the next pre-release.
[X] I have enabled debug logging for my installation.

Describe the bug
When adding a collection schedule with frequency blank, I am prompted to input additional parameters, with no parameters to input.

Configuration
{
"home_assistant": {
"installation_type": "Home Assistant OS",
"version": "2022.2.5",
"dev": false,
"hassio": true,
"virtualenv": false,
"python_version": "3.9.7",
"docker": true,
"arch": "aarch64",
"timezone": "Europe/Copenhagen",
"os_name": "Linux",
"os_version": "5.10.98",
"supervisor": "2022.01.1",
"host_os": "Home Assistant OS 7.4",
"docker_version": "20.10.9",
"chassis": "embedded",
"run_as_root": true
},
"custom_components": {
"huesyncbox": {
"version": "1.17.0",
"requirements": [
"aiohuesyncbox==0.0.20"
]
},
"iphonedetect": {
"version": "1.4.0",
"requirements": []
},
"eloverblik": {
"version": "0.2.0",
"requirements": [
"pyeloverblik==0.1.0"
]
},
"zoom": {
"version": "v0.8.2",
"requirements": []
},
"ourgroceries": {
"version": "1.3.10",
"requirements": [
"ourgroceries==1.3.9"
]
},
"average": {
"version": "2.2.1",
"requirements": []
},
"hacs": {
"version": "1.22.0",
"requirements": [
"aiogithubapi>=21.11.0"
]
},
"slack_user": {
"version": "0.4.1",
"requirements": [
"slackclient==2.5.0"
]
},
"spotcast": {
"version": "v3.6.24",
"requirements": [
"spotify_token==1.0.0"
]
},
"garbage_collection": {
"version": "4.4.2",
"requirements": [
"python-dateutil>=2.8.1"
]
},
"fuelfinder": {
"version": "0.0.1",
"requirements": []
}
},
"integration_manifest": {
"domain": "garbage_collection",
"name": "Garbage Collection",
"version": "4.4.2",
"documentation": "https://github.com/bruxy70/Garbage-Collection/",
"issue_tracker": "https://github.com/bruxy70/Garbage-Collection/issues",
"iot_class": "calculated",
"dependencies": [],
"config_flow": true,
"codeowners": [
"@bruxy70"
],
"requirements": [
"python-dateutil>=2.8.1"
],
"is_built_in": false
},
"data": {
"entity_id": "sensor.mad_restaffald",
"state": 2,
"attributes": {
"next_date": "2022-02-17T00:00:00+01:00",
"days": 7,
"last_collection": "2022-02-03T10:27:58.388235+01:00",
"last_updated": "2022-02-10T14:52:30.918758+01:00",
"device_class": "garbage_collection__schedule"
},
"config_entry": {
"entry_id": "63cb9a14caa16dcecfbe691ec78e4abe",
"version": 4,
"domain": "garbage_collection",
"title": "Mad/Restaffald",
"data": {
"unique_id": "7e84baea-cd4a-4077-9563-7a6944285e05",
"frequency": "group",
"icon_normal": "mdi:trash-can",
"icon_today": "mdi:delete-restore",
"icon_tomorrow": "mdi:delete-circle",
"verbose_format": "on {date}, in {days} days",
"date_format": "%d-%b-%Y",
"entities": [
"sensor.mad_restaffald_hver_2_torsdag",
"sensor.mad_restaffald_ekstra_afhentning"
]
},
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "user",
"unique_id": null,
"disabled_by": null
}
}
}
Debug logs
2022-02-10 15:09:52 WARNING (SyncWorker_2) [homeassistant.loader] We found a custom integration iphonedetect which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-02-10 15:09:52 WARNING (SyncWorker_3) [homeassistant.loader] We found a custom integration eloverblik which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-02-10 15:09:52 WARNING (SyncWorker_4) [homeassistant.loader] We found a custom integration ourgroceries which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-02-10 15:09:52 WARNING (SyncWorker_1) [homeassistant.loader] We found a custom integration huesyncbox which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-02-10 15:09:52 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration zoom which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-02-10 15:09:52 WARNING (SyncWorker_3) [homeassistant.loader] We found a custom integration garbage_collection which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-02-10 15:09:52 WARNING (SyncWorker_8) [homeassistant.loader] We found a custom integration files which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-02-10 15:09:52 ERROR (SyncWorker_8) [homeassistant.loader] The custom integration 'files' does not have a version key in the manifest file and was blocked from loading. See https://developers.home-assistant.io/blog/2021/01/29/custom-integration-changes#versions for more details
2022-02-10 15:09:52 WARNING (SyncWorker_5) [homeassistant.loader] We found a custom integration average which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-02-10 15:09:52 WARNING (SyncWorker_7) [homeassistant.loader] We found a custom integration spotcast which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-02-10 15:09:52 WARNING (SyncWorker_6) [homeassistant.loader] We found a custom integration hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-02-10 15:09:52 WARNING (SyncWorker_1) [homeassistant.loader] We found a custom integration fuelfinder which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-02-10 15:09:52 WARNING (SyncWorker_2) [homeassistant.loader] We found a custom integration slack_user which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-02-10 15:10:12 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [281472998274864] Received invalid command: mobile_app/push_notification_channel
2022-02-10 15:10:14 WARNING (SyncWorker_5) [homeassistant.components.google] The 'max_results' option is deprecated, please remove it from your configuration
2022-02-10 15:10:14 WARNING (SyncWorker_5) [homeassistant.components.google] The 'max_results' option is deprecated, please remove it from your configuration
2022-02-10 15:10:14 DEBUG (MainThread) [custom_components.garbage_collection] Setting Mad/Restaffald - Hver 2. torsdag (odd-weeks) from ConfigFlow
2022-02-10 15:10:14 DEBUG (MainThread) [custom_components.garbage_collection] Setting Mad/Restaffald - Ekstra afhentning (even-weeks) from ConfigFlow
2022-02-10 15:10:14 DEBUG (MainThread) [custom_components.garbage_collection] Setting Metal/Glas (every-n-days) from ConfigFlow
2022-02-10 15:10:14 DEBUG (MainThread) [custom_components.garbage_collection] Setting Papir/Plastic og Fødevarekartoner (even-weeks) from ConfigFlow
2022-02-10 15:10:14 DEBUG (MainThread) [custom_components.garbage_collection] Setting Mad/Restaffald (group) from ConfigFlow
2022-02-10 15:10:14 DEBUG (MainThread) [custom_components.garbage_collection] Setting Pap (annual) from ConfigFlow
2022-02-10 15:10:15 WARNING (MainThread) [homeassistant.components.statistics.sensor] The configuration parameter 'state_characteristic' will become mandatory in a future release of the statistics integration. Please add 'state_characteristic: mean' to the configuration of sensor 'Eloverblik Monthly Statistics' to keep the current behavior. Read the documentation for further details: https://www.home-assistant.io/integrations/statistics/
2022-02-10 15:10:17 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'None' has no attribute 'name' when rendering '{{ states.switch.plug01.name}} Forbrug'
2022-02-10 15:10:17 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'None' has no attribute 'name' when rendering '{{ states.switch.plug01.name}} State'
2022-02-10 15:10:18 DEBUG (MainThread) [custom_components.garbage_collection.sensor] Creating garbage_collection calendar
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:19 WARNING (MainThread) [aiohue.util] Value {} of type <class 'dict'> is invalid for Device.identify, expected value of type typing.Optional[aiohue.v2.models.feature.IdentifyFeature]
2022-02-10 15:10:20 WARNING (MainThread) [homeassistant.components.climate] Platform netatmo not ready yet: None; Retrying in background in 30 seconds
2022-02-10 15:10:20 WARNING (MainThread) [homeassistant.components.light] Platform netatmo not ready yet: None; Retrying in background in 30 seconds
2022-02-10 15:10:20 WARNING (MainThread) [homeassistant.config_entries] Config entry 'My Smart Plug' for tplink integration not ready yet: Unable to connect to the device: None; Retrying in background
2022-02-10 15:10:20 WARNING (MainThread) [zigpy.zcl] Unknown cluster 61184
2022-02-10 15:10:20 WARNING (MainThread) [homeassistant.components.sensor] Platform netatmo not ready yet: None; Retrying in background in 30 seconds
2022-02-10 15:10:21 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.our_groceries (<class 'custom_components.ourgroceries.sensor.OurGroceriesSensor'>) implements device_state_attributes. Please report it to the custom component author.
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'int' got invalid input 'unknown' when rendering template '{% if ( states('sensor.time').replace(':','')|int >= states('sensor.time_quiet_start').replace(':','')|int or states('sensor.time').replace(':','')|int <= states('sensor.time_quiet_end').replace(':','')|int ) %}
  true
{% else %}
  false
{% endif %}' but no default was specified. Currently 'int' will return '0', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'int' got invalid input 'unknown' when rendering template '{% if ( states('sensor.time').replace(':','')|int >= states('sensor.time_quiet_start').replace(':','')|int or states('sensor.time').replace(':','')|int <= states('sensor.time_quiet_end').replace(':','')|int ) %}
  true
{% else %}
  false
{% endif %}' but no default was specified. Currently 'int' will return '0', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'timestamp_custom' got invalid input '15:05' when rendering template '{{ states.sensor.groen_stroem_greenest_period_1_24.attributes["best-period-start"] | timestamp_custom("%H:%M") }}' but no default was specified. Currently 'timestamp_custom' will return '15:05', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'timestamp_custom' got invalid input '15:05' when rendering template '{{ states.sensor.groen_stroem_greenest_period_1_24.attributes["best-period-start"] | timestamp_custom("%H:%M") }}' but no default was specified. Currently 'timestamp_custom' will return '15:05', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'timestamp_custom' got invalid input '15:05' when rendering template '{{ states.sensor.groen_stroem_greenest_period_2_24.attributes["best-period-start"] | timestamp_custom("%H:%M") }}' but no default was specified. Currently 'timestamp_custom' will return '15:05', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'timestamp_custom' got invalid input '15:05' when rendering template '{{ states.sensor.groen_stroem_greenest_period_2_24.attributes["best-period-start"] | timestamp_custom("%H:%M") }}' but no default was specified. Currently 'timestamp_custom' will return '15:05', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'timestamp_custom' got invalid input '10:45' when rendering template '{{ states.sensor.groen_stroem_greenest_period_4_24.attributes["best-period-start"] | timestamp_custom("%H:%M") }}' but no default was specified. Currently 'timestamp_custom' will return '10:45', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'timestamp_custom' got invalid input '10:45' when rendering template '{{ states.sensor.groen_stroem_greenest_period_4_24.attributes["best-period-start"] | timestamp_custom("%H:%M") }}' but no default was specified. Currently 'timestamp_custom' will return '10:45', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'timestamp_custom' got invalid input '15:05' when rendering template '{{ states.sensor.groen_stroem_greenest_period_2_12.attributes["best-period-start"] | timestamp_custom("%H:%M") }}' but no default was specified. Currently 'timestamp_custom' will return '15:05', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'timestamp_custom' got invalid input '15:05' when rendering template '{{ states.sensor.groen_stroem_greenest_period_2_12.attributes["best-period-start"] | timestamp_custom("%H:%M") }}' but no default was specified. Currently 'timestamp_custom' will return '15:05', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'timestamp_custom' got invalid input '15:05' when rendering template '{{ states.sensor.groen_stroem_greenest_period_4_12.attributes["best-period-start"] | timestamp_custom("%H:%M") }}' but no default was specified. Currently 'timestamp_custom' will return '15:05', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'timestamp_custom' got invalid input '15:05' when rendering template '{{ states.sensor.groen_stroem_greenest_period_4_12.attributes["best-period-start"] | timestamp_custom("%H:%M") }}' but no default was specified. Currently 'timestamp_custom' will return '15:05', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 ERROR (MainThread) [homeassistant.helpers.event] Error while processing template: Template("{{ states.climate.netatmo_sovevaerelse.attributes["current_temperature"] | float }}")
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 407, in async_render
    render_result = _render_with_context(self.template, compiled, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1814, in _render_with_context
    return template.render(**kwargs)
  File "/usr/local/lib/python3.9/site-packages/jinja2/environment.py", line 1291, in render
    self.environment.handle_exception()
  File "/usr/local/lib/python3.9/site-packages/jinja2/environment.py", line 925, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "<template>", line 1, in top-level template code
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1584, in forgiving_float_filter
    return float(value)
jinja2.exceptions.UndefinedError: 'mappingproxy object' has no attribute 'current_temperature'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 523, in async_render_to_info
    render_info._result = self.async_render(variables, strict=strict, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 409, in async_render
    raise TemplateError(err) from err
homeassistant.exceptions.TemplateError: UndefinedError: 'mappingproxy object' has no attribute 'current_temperature'
2022-02-10 15:10:35 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('UndefinedError: 'mappingproxy object' has no attribute 'current_temperature'') while processing template 'Template("{{ states.climate.netatmo_sovevaerelse.attributes["current_temperature"] | float }}")' for attribute '_attr_native_value' in entity 'sensor.netatmo_thermostat_temperature_sovevaerelse'
2022-02-10 15:10:35 ERROR (MainThread) [homeassistant.helpers.event] Error while processing template: Template("{{ states.climate.netatmo_stue.attributes["current_temperature"] | float }}")
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 407, in async_render
    render_result = _render_with_context(self.template, compiled, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1814, in _render_with_context
    return template.render(**kwargs)
  File "/usr/local/lib/python3.9/site-packages/jinja2/environment.py", line 1291, in render
    self.environment.handle_exception()
  File "/usr/local/lib/python3.9/site-packages/jinja2/environment.py", line 925, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "<template>", line 1, in top-level template code
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1584, in forgiving_float_filter
    return float(value)
jinja2.exceptions.UndefinedError: 'mappingproxy object' has no attribute 'current_temperature'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 523, in async_render_to_info
    render_info._result = self.async_render(variables, strict=strict, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 409, in async_render
    raise TemplateError(err) from err
homeassistant.exceptions.TemplateError: UndefinedError: 'mappingproxy object' has no attribute 'current_temperature'
2022-02-10 15:10:35 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('UndefinedError: 'mappingproxy object' has no attribute 'current_temperature'') while processing template 'Template("{{ states.climate.netatmo_stue.attributes["current_temperature"] | float }}")' for attribute '_attr_native_value' in entity 'sensor.netatmo_thermostat_temperature_stue'
2022-02-10 15:10:35 ERROR (MainThread) [homeassistant.helpers.event] Error while processing template: Template("{{ states.climate.netatmo_daniels_vaerelse.attributes["current_temperature"] | float }}")
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 407, in async_render
    render_result = _render_with_context(self.template, compiled, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1814, in _render_with_context
    return template.render(**kwargs)
  File "/usr/local/lib/python3.9/site-packages/jinja2/environment.py", line 1291, in render
    self.environment.handle_exception()
  File "/usr/local/lib/python3.9/site-packages/jinja2/environment.py", line 925, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "<template>", line 1, in top-level template code
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1584, in forgiving_float_filter
    return float(value)
jinja2.exceptions.UndefinedError: 'mappingproxy object' has no attribute 'current_temperature'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 523, in async_render_to_info
    render_info._result = self.async_render(variables, strict=strict, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 409, in async_render
    raise TemplateError(err) from err
homeassistant.exceptions.TemplateError: UndefinedError: 'mappingproxy object' has no attribute 'current_temperature'
2022-02-10 15:10:35 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('UndefinedError: 'mappingproxy object' has no attribute 'current_temperature'') while processing template 'Template("{{ states.climate.netatmo_daniels_vaerelse.attributes["current_temperature"] | float }}")' for attribute '_attr_native_value' in entity 'sensor.netatmo_thermostat_temperature_daniels_vaerelse'
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'float' got invalid input 'unavailable' when rendering template '{{ ( states.sensor.philips_motion_kontor_temperature.state | float * 2 ) | round(0) / 2  }}' but no default was specified. Currently 'float' will return '0', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'float' got invalid input 'unavailable' when rendering template '{{ ( states.sensor.philips_motion_kontor_temperature.state | float * 2 ) | round(0) / 2  }}' but no default was specified. Currently 'float' will return '0', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 ERROR (MainThread) [homeassistant.helpers.event] Error while processing template: Template("{{ states('sensor.weather_humidity') + ( states('sensor.humidity_static_threshold') / 10 ) | float }}")
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 407, in async_render
    render_result = _render_with_context(self.template, compiled, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1814, in _render_with_context
    return template.render(**kwargs)
  File "/usr/local/lib/python3.9/site-packages/jinja2/environment.py", line 1291, in render
    self.environment.handle_exception()
  File "/usr/local/lib/python3.9/site-packages/jinja2/environment.py", line 925, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "<template>", line 1, in top-level template code
TypeError: unsupported operand type(s) for /: 'str' and 'int'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 523, in async_render_to_info
    render_info._result = self.async_render(variables, strict=strict, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 409, in async_render
    raise TemplateError(err) from err
homeassistant.exceptions.TemplateError: TypeError: unsupported operand type(s) for /: 'str' and 'int'
2022-02-10 15:10:35 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('TypeError: unsupported operand type(s) for /: 'str' and 'int'') while processing template 'Template("{{ states('sensor.weather_humidity') + ( states('sensor.humidity_static_threshold') / 10 ) | float }}")' for attribute '_attr_native_value' in entity 'sensor.moisture_threshold'
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'float' got invalid input 'unavailable' when rendering template '{{ states('sensor.moisture_threshold_avg') | float * 0.975 }}' but no default was specified. Currently 'float' will return '0', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'float' got invalid input 'unavailable' when rendering template '{{ states('sensor.moisture_threshold_avg') | float * 0.975 }}' but no default was specified. Currently 'float' will return '0', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'float' got invalid input 'unavailable' when rendering template '{{ states('sensor.moisture_threshold_avg') | float * 1.025 }}' but no default was specified. Currently 'float' will return '0', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'float' got invalid input 'unavailable' when rendering template '{{ states('sensor.moisture_threshold_avg') | float * 1.025 }}' but no default was specified. Currently 'float' will return '0', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 ERROR (MainThread) [homeassistant.helpers.event] Error while processing template: Template("{{ states.switch.plug01.attributes["current_power_w"] | float }}")
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 407, in async_render
    render_result = _render_with_context(self.template, compiled, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1814, in _render_with_context
    return template.render(**kwargs)
  File "/usr/local/lib/python3.9/site-packages/jinja2/environment.py", line 1291, in render
    self.environment.handle_exception()
  File "/usr/local/lib/python3.9/site-packages/jinja2/environment.py", line 925, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "<template>", line 1, in top-level template code
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1584, in forgiving_float_filter
    return float(value)
jinja2.exceptions.UndefinedError: 'mappingproxy object' has no attribute 'current_power_w'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 523, in async_render_to_info
    render_info._result = self.async_render(variables, strict=strict, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 409, in async_render
    raise TemplateError(err) from err
homeassistant.exceptions.TemplateError: UndefinedError: 'mappingproxy object' has no attribute 'current_power_w'
2022-02-10 15:10:35 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('UndefinedError: 'mappingproxy object' has no attribute 'current_power_w'') while processing template 'Template("{{ states.switch.plug01.attributes["current_power_w"] | float }}")' for attribute '_attr_native_value' in entity 'sensor.plug01_watts'
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'float' got invalid input 'unavailable' when rendering template '{% if states('sensor.plug01_watts')|float > 100 %}
  tændt - lader
{% elif states('sensor.plug01_watts')|float > 1 %}
  tændt - lader ikke
{% else %}
  slukket
{% endif %}' but no default was specified. Currently 'float' will return '0', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'float' got invalid input 'unavailable' when rendering template '{% if states('sensor.plug01_watts')|float > 100 %}
  tændt - lader
{% elif states('sensor.plug01_watts')|float > 1 %}
  tændt - lader ikke
{% else %}
  slukket
{% endif %}' but no default was specified. Currently 'float' will return '0', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'float' got invalid input 'unavailable' when rendering template '{% if states('sensor.plug01_watts')|float > 100 %}
  tændt - lader
{% elif states('sensor.plug01_watts')|float > 1 %}
  tændt - lader ikke
{% else %}
  slukket
{% endif %}' but no default was specified. Currently 'float' will return '0', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template warning: 'float' got invalid input 'unavailable' when rendering template '{% if states('sensor.plug01_watts')|float > 100 %}
  tændt - lader
{% elif states('sensor.plug01_watts')|float > 1 %}
  tændt - lader ikke
{% else %}
  slukket
{% endif %}' but no default was specified. Currently 'float' will return '0', however this template will fail to render in Home Assistant core 2022.1
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'mappingproxy object' has no attribute 'temperature' when rendering '{{ states.climate.netatmo_stue.attributes["temperature"] }}'
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'mappingproxy object' has no attribute 'temperature' when rendering '{{ states.climate.netatmo_stue.attributes["temperature"] }}'
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'mappingproxy object' has no attribute 'battery_level' when rendering '{{ states.climate.netatmo_stue.attributes["battery_level"] }}'
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'mappingproxy object' has no attribute 'battery_level' when rendering '{{ states.climate.netatmo_stue.attributes["battery_level"] }}'
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'mappingproxy object' has no attribute 'temperature' when rendering '{{ states.climate.netatmo_sovevaerelse.attributes["temperature"] }}'
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'mappingproxy object' has no attribute 'temperature' when rendering '{{ states.climate.netatmo_sovevaerelse.attributes["temperature"] }}'
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'mappingproxy object' has no attribute 'temperature' when rendering '{{ states.climate.netatmo_daniels_vaerelse.attributes["temperature"] }}'
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'mappingproxy object' has no attribute 'temperature' when rendering '{{ states.climate.netatmo_daniels_vaerelse.attributes["temperature"] }}'
2022-02-10 15:10:35 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'mappingproxy object' has no attribute 'battery_level' when rendering '{{ states.climate.netatmo_stue.attributes["battery_level"] }}'
2022-02-10 15:10:35 ERROR (MainThread) [pyemby.server] Error fetching Emby data: 401
2022-02-10 15:10:35 ERROR (MainThread) [pyemby.server] Unable to register emby client.
2022-02-10 15:10:35 ERROR (MainThread) [homeassistant.components.sensor] Platform netatmo does not generate unique IDs. ID<PHONE_NUMBER>-09:00:00:01:e2:82-battery_percent already exists - ignoring sensor.radiator_1_battery_percent
2022-02-10 15:10:35 ERROR (MainThread) [homeassistant.components.sensor] Platform netatmo does not generate unique IDs. ID<PHONE_NUMBER>-09:00:00:01:e6:00-battery_percent already exists - ignoring sensor.radiator_2_battery_percent
2022-02-10 15:10:35 ERROR (MainThread) [homeassistant.components.sensor] Platform netatmo does not generate unique IDs. ID<PHONE_NUMBER>-09:00:00:04:5e:a8-battery_percent already exists - ignoring sensor.radiator_3_battery_percent
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald - Hver 2. torsdag) Calling update
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald - Hver 2. torsdag) Dates loaded, firing a garbage_collection_loaded event
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald - Hver 2. torsdag) Looking for next collection
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald - Hver 2. torsdag) next_date (2022-02-17), today (2022-02-10)
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald - Hver 2. torsdag) Found next collection date: 17-Feb-2022, that is in 7 days
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald - Ekstra afhentning) Calling update
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald - Ekstra afhentning) 2021-01-01 outside the range, searching from may
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald - Ekstra afhentning) 2021-09-09 outside the range, lookig from may next year
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald - Ekstra afhentning) 2022-09-08 outside the range, lookig from may next year
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald - Ekstra afhentning) 2023-09-07 outside the range, lookig from may next year
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald - Ekstra afhentning) Dates loaded, firing a garbage_collection_loaded event
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald - Ekstra afhentning) Looking for next collection
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald - Ekstra afhentning) next_date (2022-05-05), today (2022-02-10)
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald - Ekstra afhentning) Found next collection date: 05-May-2022, that is in 84 days
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Metal/Glas) Calling update
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Metal/Glas) Dates loaded, firing a garbage_collection_loaded event
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Metal/Glas) Looking for next collection
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Metal/Glas) next_date (2022-02-23), today (2022-02-10)
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Metal/Glas) Found next collection date: 23-Feb-2022, that is in 13 days
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Papir/Plastic og Fødevarekartoner) Calling update
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Papir/Plastic og Fødevarekartoner) Dates loaded, firing a garbage_collection_loaded event
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Papir/Plastic og Fødevarekartoner) Looking for next collection
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Papir/Plastic og Fødevarekartoner) next_date (2022-02-23), today (2022-02-10)
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Papir/Plastic og Fødevarekartoner) Found next collection date: 23-Feb-2022, that is in 13 days
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Pap) Calling update
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Pap) Dates loaded, firing a garbage_collection_loaded event
2022-02-10 15:10:39 DEBUG (MainThread) [custom_components.garbage_collection] called add_date 2022-02-16 from sensor.pap
2022-02-10 15:10:40 DEBUG (MainThread) [custom_components.garbage_collection] called add_date 2022-03-16 from sensor.pap
2022-02-10 15:10:40 DEBUG (MainThread) [custom_components.garbage_collection] called add_date 2022-04-19 from sensor.pap
2022-02-10 15:10:40 DEBUG (MainThread) [custom_components.garbage_collection] called add_date 2022-05-18 from sensor.pap
2022-02-10 15:10:40 DEBUG (MainThread) [custom_components.garbage_collection] called add_date 2022-06-17 from sensor.pap
2022-02-10 15:10:40 DEBUG (MainThread) [custom_components.garbage_collection] called add_date 2022-07-19 from sensor.pap
2022-02-10 15:10:40 DEBUG (MainThread) [custom_components.garbage_collection] called add_date 2022-08-16 from sensor.pap
2022-02-10 15:10:40 DEBUG (MainThread) [custom_components.garbage_collection] called add_date 2022-09-16 from sensor.pap
2022-02-10 15:10:40 DEBUG (MainThread) [custom_components.garbage_collection] called add_date 2022-10-18 from sensor.pap
2022-02-10 15:10:40 DEBUG (MainThread) [custom_components.garbage_collection] called add_date 2022-11-15 from sensor.pap
2022-02-10 15:10:40 DEBUG (MainThread) [custom_components.garbage_collection] called add_date 2022-12-19 from sensor.pap
2022-02-10 15:10:40 DEBUG (MainThread) [custom_components.garbage_collection] called update_state for sensor.pap
2022-02-10 15:10:40 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Pap) Looking for next collection
2022-02-10 15:10:40 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Pap) next_date (2022-02-16), today (2022-02-10)
2022-02-10 15:10:40 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Pap) Found next collection date: 16-Feb-2022, that is in 6 days
2022-02-10 15:10:48 ERROR (MainThread) [zigpy.device] Failed to parse message (b'81840200') on cluster 32799, because Data is too short to contain 1 bytes
2022-02-10 15:10:49 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald) Calling update
2022-02-10 15:10:49 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald) Dates loaded, firing a garbage_collection_loaded event
2022-02-10 15:10:49 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald) Looking for next collection
2022-02-10 15:10:49 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald) next_date (2022-02-17), today (2022-02-10)
2022-02-10 15:10:49 DEBUG (MainThread) [custom_components.garbage_collection.sensor] (Mad/Restaffald) Found next collection date: 17-Feb-2022, that is in 7 days
2022-02-10 15:10:53 WARNING (SyncWorker_0) [custom_components.eloverblik] Exception: <class 'requests.exceptions.ReadTimeout'>
2022-02-10 15:11:06 ERROR (MainThread) [zigpy.device] Failed to parse message (b'8284011b') on cluster 32799, because Data is too short to contain 1 bytes
2022-02-10 15:11:20 ERROR (MainThread) [zigpy.device] Failed to parse message (b'8384011b') on cluster 32799, because Data is too short to contain 1 bytes

If this is not complicated for you, can you grab this from the repo https://github.com/bruxy70/Garbage-Collection/blob/master/custom_components/garbage_collection/config_flow.py
Put in in your custom_components/garbage_collection, restart and let me know if everything else works? Thanks for help!

Awesome, that works, thank you :-)


Blockquote and List don't support nesting

Blockquote and list have two problems working with nested elements.
If there are two line breaks, elements gets duplicated outside the blockquote;
List

1. Item

2. Item

The same occurs if other elements are nested, but the inner version returns as undefined;
> # Title
> Some text
>
> More Text

Yeah, know about this bug, but have not found any time looking into it :(

I am having the same issue, when can we expect a fix to arrive?

@richardgorman When you create a PR for it :)


feat: moon true position

Checks #10 moon

Codecov Report

Merging #12 (1a9fc72) into master (eafc90c) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master       #12   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           10        10
  Lines          159       182   +23
=========================================
+ Hits           159       182   +23

Impacted Files
Coverage Δ

kanon_api/core/ephemerides/tables.py
100.00% <100.00%> (ø)

kanon_api/core/ephemerides/true_position.py
100.00% <100.00%> (ø)

kanon_api/core/ephemerides/utils.py
100.00% <100.00%> (ø)

kanon_api/routes/calendars.py
100.00% <100.00%> (ø)

kanon_api/routes/ephemerides.py
100.00% <100.00%> (ø)

kanon_api/routes/radices.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update eafc90c...1a9fc72. Read the comment docs.


Event Manager postEvent script callback error

Context
This occurs when an eventManager posts an event (via its postEvent ConsoleMethod) to its subscribers.
The code loops through all Simobject listeners (subscribers) and executes a script callback on each one.
/source/messaging/eventManager.cc
function EventManagerListener::onMessageReceived(...
const char* conResult = Con::executef( iter->listener, 2, iter->callback, data );
      if( dStrcmp( conResult, "" ) != 0 && dAtob( conResult ) == false )
         return false;

If the callback function returns a value and this value is evaluated to "false", the loop stops and all remaining subscribers are completely ignored.
In my code, the callback function contained one line of code
function GameManager::onPlayBall_EVT(%this, %data)
{
%this.CurrentState = "Restart";
}

This code assigns a string to a dynamically created variable (CurrentState) on a ScriptObject.
The ScriptObject named GameManager is a subscriber to the Event Manager.
Here is the problem :
The C++ code takes the string "Restart" as the return value of the callback function.
Why would this value be returned from Con::executef?
Using functions like echo(...) or complex physics manipulation never cause this problem, the only way I've managed to reproduce this is with simple dynamic variable assignations as illustrated here.
Hack city
Adding "return true;" at the end of the script function solves the issue.
I still think this points to a problem with the scripting engine.

I can't find it at the moment, but seems awfully similar to an issue Torque 3D ran into couple years back.

So you're saying that if you set %this.currentState to false or 0 that it would prevent other callbacks from firing?  Sounds like trouble...

@greenfire27 No, the code above prevents further callbacks as it is (with "Restart" as a value), setting it to false or 0 has the same effect. i.e. T2D evaluates the last statement in these callback methods as the return value of the method, even when no return value is specified. Sounds like a nested issue in Con::executef.
For the record, in my test project, I had to modify every callback function so that it ended with the statement :
return true;
and no further problems were had.
- Testbed -
I know the Event Manager sees very little use so here's a quick blurb to get started if that's the case.
new EventManager(EVTMGR){
queue = "My Event Manager"; //If queue is not specfied, engine crashes when posting events
}
EVTMGR.registerEvent("MyEvent");
EVTMGR.subscribe(Myobject, "MyEvent");
EVTMGR.subscribe(Myotherobject, "MyEvent");

EVTMGR.postEvent("MyEvent");

Now just make sure Myobject and Myotherobject have the following methods :
function Myobject::onMyEvent(%this, %data)
{
%this.somevar = "somestring";
}

In theory, Myotherobject shouldn't be triggered.
Change the function to
function Myobject::onMyEvent(%this, %data)
{
%this.somevar = "somestring";
return true;
}

And everything should work.

Ran into another instance of this.
An event is posted by an Event Manager to a single subscriber, let`s call it PlayerObject.
This subscriber(PlayerObject) has a behavior which handles the event (the object itself has no handler defined within its bare namespace).
The behavior handling the event then calls a method on its owner (PlayerObject) and the method is actually defined in another behavior installed on the same PlayerObject.
 Let's call these the children behaviors.
If I add an echo("Something random"); command in each of the children behaviors` methods, everything works fine.
If I don't, all children behaviors will execute their method properly, one after the other, as expected. However, when the last of the children behaviors exits the function, all children methods except that last one are called again but without passing any parameters.
Probably something no one ever encounters but....well, I did so it probably points to something deep-rooted in the namespace/behavior/component code.
I`m writing this down to also help visualize the issue.

For those following at home (lol) Behavior Connections are THE way to circumvent this self-referential namespace mess.

I'm actually hanging on every word.  Can you describe for the class Behavior Connections?

Sure. I`ve made the modifications to my soon-to-be-shared-on-github project and it works perfectly.
The start is still the same

An event is posted by an Event Manager to a single subscriber, let`s call it PlayerObject.
This subscriber(PlayerObject) has a behavior which handles the event (the object itself has no handler defined within its bare namespace).

This behavior now has an empty method called dispatch
During PlayerObject`s creation, I create instance an instance of this Behavior, followed by all other behaviors I will need on this object.
Each behavior which needs to be notified has its template created as such :
if(!isObject(PlayerWalk_BEH))
{
    new BehaviorTemplate(PlayerWalk_BEH);
    PlayerWalk_BEH.addBehaviorInput(Action, "Input Action", "Input Action");
}

An Action method, where all the magic takes place, is defined on these behaviors.
Then I connect the initial behavior's output to all the behaviors' inputs as such :
%this.connect(%sourcebehavior, %targetbehavior, dispatch, Action);
Then, whenever my InputMatrix dispatches an event to %sourcebehavior, the method handling the event calls
%this.Owner.raise(%this, dispatch);
And all behaviors connected to that output have their Action method executed.
The wiki explains it very well [https://github.com/GarageGames/Torque2D/wiki/Behavior-Connections] (url) but I had never used them before.
Only drawback is that you cannot (as far as I know) pass arguments to/from the connected functions.

Returning to the original problem, if you look at the notes for the function onMessageReceived in eventManager.cc, the code actually take the return values of the callbacks and uses them to decide if it should keep making the callbacks.  Basically, a return value of true means that it will stop doing the callbacks (not sure if this is a useful feature or not).  Most of the callbacks that the engine does, like onAdd() when you create an object, do not expect a return value.  However, these particular callbacks expect a bool returned and are basically trying to make your last line in the callback into something it can use.  In the event that it get's a string that doesn't equal "false" it uses it as true stops passing the callback to more listeners.
To be honest, unless we decide to make it work differently, the best thing to do is simply always return false in your callbacks.
Now, to keep things interesting, I found a better EventManager bug!  It seems if you remove a listener from an event during that listener's callback the engine crashes.
PlayerObject::onJump(%this, %data)
{
   %myEventManager.remove(%this, "Jump"); //crash!
}
My guess is that we're changing the length of the iterator in the middle of using it.

Good find!
I am not suggesting we change it, I simply tried to provide as much info as I could.
Now that we know what's going on I'm thinking it should at least be documented in the wiki.
Maybe add some safeguards, I dunno.
The event manager will also crash if you do not specify a queue name upon creation as shown below.
new EventManager(){
   queue = "InputManagerQueue";
};

Yes, the EventManager obviously has rough edges that need to be cleaned up or at the very least documented.  Unfortunately, as far as I know, we don't have an Event Manager page yet in the wiki, which might explain why nobody really uses it and reports these issues with it.
Is it possible to create multiple queues within the same EventManager?  Is there really a point to naming a queue?  It doesn't really seem like the name is used anywhere after creation.
I would also love to see more useful script functions like a removeAll, or removeAllForSubscriber.  Joining could be similar: subscribeToAll(%subscriber) or subscribeToQueue(%subscriber) if we had multiple queues which could be used to group events.

Pull Request #376 is my attempt to fix all the problems around the event manager.  I wrote a wiki page to describe how it works.  Basically it allows any object to listen to any other object.  Any object can now post events that will go out to all of its listeners.  No need to set up a special object, no messaging queue, no registering events, and no returning false just to keep things running.  I'll give the community time to play with this new event system, but at some point I hope to remove the old EventManager entirely.  Its services are no longer required.


Propagate db delete event to changes callback

Not propagating the delete event to the changes callback causes
db to stay open when it is deleted in the presence of continuous
requests to _changes feed. This in its turn causes couch_file to stay
open until the connection is closed by the client.

Ahhh, took me two readings of your commit message before I put the whole thing together. I kept trying to figure out how we introduced the bug during the merge and got confused by the work on view changes. Rereading your commit message it appears to not be a new bug, just one we hadn't noticed yet.
+1

I looked at that test failure and it appears unrelated, but we might also want to verify that as well.

+1


Change Werkzeug pinning

What about setuptools in the testing module since it's been reverted too?

Setuptools was changed by changing the base image in a previous PR.


[CORE]Sort Based shuffle writer

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
(This section helps developers understand the context and why for this feature, in addition to  the what)
Spark supports both hash based and sort based shuffle writer, and currently only hash based writer implemented.
Also, sort based shuffle writer is not mentioned in [Gluten-Velox] To do list in 2023.
I am interested in how you guys think about this feature in Gluten.
Describe the solution you'd like
Implement a sort based shuffle writer
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

The root cause is sort operation isn't columnar friendly. serializing or materializing the columnar batch is much more expensive than row format. Row format data is one gather operation (random read, sequential write), but columnar format has one gather operations for each column.
Compared to Vanilla Spark, we still have the small file issue, currently we spill each record batch for every reducer, then we merge the spilled files into a large file. But since Gluten occupied muc less memory than Vanilla Spark, so the small files are actually cached into page cache and doesn't cause the small file issue.
This PR is going to solve the small file issue: https://github.com/oap-project/gluten/pull/881. In the PR we are going to spill when memory is not enough, then spill all the reducer's recordbatch into the same large file order by reducer ID. Then we merge the ordered spill files into one large file when split stop. It's aligned with Vanilla Spark's behavior. But we don't sort reducer id every row, instead we split by hash then sort by reducer id. Because Gluten's more efficient memory usage, it can cache more data and spill less files than vanilla Spark. Compared to current solution, it actually move the cached data from page cache to user managed memory, and avoid the file operations.


Mixing c# code and html in a column

Hi,
is it possible to write a column like this:
columns.Add().Encoded(false)
.Titled("Roles")
.RenderValueAs(d =>
	@

		@foreach (var role in d.Roles.OrderBy(r => r.Description)) {
<EMAIL_ADDRESS>		}

);

If not, could you add this feature?
Thank you!
Sergio

Yes, it's possible, here's a few different ways you could do this:

an extension or a function which returns rendered values
concat descriptions, using linq's Aggregate function
write a razor helper.

Did you managed to render your column?

Yes, I wrote a razor helper.
But I don't like this solution because I can't cover easily every situation (mixing foreach, if and other statements).
Thanks

Well, it's a language constraints for writing lambdas, so not much we can do.


Dropdown component staying far away from keyboard when searching on ios

On iOS, when I try to search, the dropdown components do not sit on top of the keyboard, it stays far away.

But for Android, seems okay

Hello? how come this works for you? i have this problem wherein when i click the search input and my dropdown is below the screen. It gets covered by the keyboard, it does not even bother to adjust just like yours, i'm sorry this is not the answer to your question. Im just wondering if do you experience this?
my dropdown is inside scrollview and im working on the responsiveness of the dropdown whenever the keyboard is up.

@qaezrun Did you solve your problem? Could you share the solution please if so? I have a problem with dropdown behavior inside ScrollView at the bottom sheet.


[fix] full_url returns nil on some edge cases

this PR might fix up #3109.

Coverage decreased (-12.2%) to 56.734% when pulling 2c9a3dffa2ca748ba468beffce4a9c0d83338ee0 on sunny4381:fixes/rss-page-full-url into 4ab4e35cedd139b877a6031cd037374494c7c33d on shirasagi:master.


feat(frontend): Added React Router

This PR addresses #2055 by adding React Router while maintaining the existing UI as the main index screen.

Thanks for the PR! If you're interested to continue building upon this, take a look at this Slack thread.

Looks like you got a small linting error to resolve (import order). Push to fix and merge it

Thanks for the PR! If you're interested to continue building upon this, take a look at this Slack thread.

Can't see the thread. Could you send an invite link to the slack?

@ChrisMamatas You can find it at the bottom of the README: https://join.slack.com/t/opendevin/shared_invite/zt-2ggtwn3k5-PvAA2LUmqGHVZ~XzGq~ILw


Lorem Ipsum in Features

Description
When you visit the website's features section, half of the features have relevant text while the other half has just random lorem ipsum. It should be kept uniform and adding relevant text for all the features seems like a fair solution to it.
Screenshot

Steps To Reproduce

Go to https://tailnext.vercel.app/
Scroll Down to the features section

Hi @arey-pranay and thanks for this. Issue fixed by yourself: https://github.com/onwidget/tailnext/pull/38


deploy powervm-rmc daemonset during ocp-customization

Signed-off-by: Sebastien Chabrolles<EMAIL_ADDRESS>Fixes#26

This uses k8s ansible module in order to apply k8s yaml in an idempotent and efficient way (need openshift python module to be installed on the bastion.
namespace creation, serviceaccount creation and daemonset creation use yaml and k8s ansible module.
giving "privileged" right to powervm-rmc service account is done via oc command (I don't find how to use yaml for this)
Need to load rpadlpar_io module on coreOS node to enable DLPAR for IO card (like veth, NPIV or SRIOV, or even Real PCI card). This is done with another Machineconfig for master and worker roles.

Sorry, I just closed #35 by mistake ... most of the changes have been implemented here.
Thanks @cs-zhang for your review ... mounting /lib/modules into daemonset woks well as you suggest.


[Bug] [DAO] There's an redundant field named 'project_id' in the table of 't_ds_task_group'.

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
In the table of 't_ds_task_group' there's two fields of 'project_code' and 'project_id'. Each of them can identify the project, and the class of 'TaskGroup' doesn't use this field. So need to remove it from the table and improve a few wrong annotations.

What you expected to happen
I expect to remove the redundant field 'project_id' in the table 't_ds_task_group'.
How to reproduce
See it in the project.
Anything else
No response
Version
dev
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

I will fix this issue.


Add test pipeline for IJ UE

UE integration test breakage will be fixed by https://github.com/bazelbuild/intellij/pull/1293

Closing since intellij-ue has a separate CI tests file now https://github.com/bazelbuild/intellij/commits/master/.bazelci/intellij-ue.yml


New Bounty

Only shouw if "isConnected=true". For now use dummy variable
Open form:

Some description like: "You are applying to the {issue_name} bug bounty, etc...
{
    "title":"string",
    "prize":"integer", // amount
    "token_code": "string", // For now this will be fixed. We will force everybody to use the same token
    "description": "string",
    "longDescription": "string",
},
``

Button "Create Bounty". Triggers function
- verify no empty fields
- prize >0
- TODO: verify if user has balance>prize
- TODO: makes user sign the message
- Closes the form with some "Succesfull message"
For now create a dummy async function for 5 seconds and block the Create Bounty button while the async function is running.

New bounty form has been added and it's linked with hasura API


dependencies: Upgrade Source Code Pro font from Git

This works around a bug where code text appears dark on dark in night mode with Firefox on macOS:
https://bugzilla.mozilla.org/show_bug.cgi?id=1520157
Testing plan: Confirmed the fix in Firefox on macOS using https://andersk.zulipdev.org.

Lgtm

Merged, thanks @andersk!


ERROR: 87 on Windows for first README example

Just tried to use Gallium on Windows (x64) with the first example from the README, this is what I get:
C:\Users\david> juliadev
               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.5.0-dev+4923 (2016-06-23 21:09 UTC)
 _/ |\__'_|_|_|\__'_|  |  Commit 26fec34* (0 days old master)
|__/                   |  x86_64-w64-mingw32

julia> using Gallium

julia> include(Pkg.dir("Gallium/examples/testprograms/misc.jl"))
optional (generic function with 2 methods)

julia> Gallium.breakpoint(sinthesin, Tuple{Int64})
ERROR: 87
 in VirtualProtect(::Gallium.Hooking.MemoryRegion, ::UInt8) at C:\Users\david\.julia\v0.5\Gallium\src\Hooking\Hooking.jl:33
 in allow_writing(::Gallium.Hooking.##4#5{Array{UInt8,1},Array{UInt8,1}}, ::Gallium.Hooking.MemoryRegion) at C:\Users\david\.julia\v0.5\Gallium\src\Hooking\Hooking.jl:362
 in hook(::Function, ::Ptr{Void}) at C:\Users\david\.julia\v0.5\Gallium\src\Hooking\Hooking.jl:415
 in enable(::Gallium.LocalSession, ::Gallium.Location) at C:\Users\david\.julia\v0.5\Gallium\src\Gallium.jl:690
 in enable(::Gallium.Breakpoint, ::Gallium.Location) at C:\Users\david\.julia\v0.5\Gallium\src\Gallium.jl:694
 in add_location(::Gallium.Breakpoint, ::Gallium.Location) at C:\Users\david\.julia\v0.5\Gallium\src\Gallium.jl:797
 in breakpoint(::Function, ::DataType) at C:\Users\david\.julia\v0.5\Gallium\src\Gallium.jl:811
 in eval(::Module, ::Any) at .\boot.jl:231
 in macro expansion at .\REPL.jl:92 [inlined]
 in (::Base.REPL.##1#2{Base.REPL.REPLBackend})() at .\event.jl:46

julia> Pkg.status()
1 required packages:
 - Gallium                       0.0.3
21 additional packages:
 - ASTInterpreter                0.0.3
 - AbstractTrees                 0.0.3
 - ArgParse                      0.3.0
 - COFF                          0.0.1
 - CRC                           1.1.1
 - ColorTypes                    0.2.3
 - Colors                        0.6.4
 - Compat                        0.8.1
 - DWARF                         0.0.3
 - ELF                           0.0.3
 - FileIO                        0.1.0
 - FixedPointNumbers             0.1.3
 - JuliaParser                   0.7.3
 - MachO                         0.0.3
 - ObjFileBase                   0.0.3
 - Reactive                      0.3.3
 - Reexport                      0.0.3
 - StructIO                      0.0.2
 - TerminalUI                    0.0.1
 - TextWrap                      0.1.5
 - VT100                         0.0.1

julia>

Bump, this is still the same if one tries this with the RC1 of julia 0.5. Any chance this could get fixed? The debugger is one of the major new features for julia 0.5, and it would just give a terrible impression if the first example in the README doesn't work when julia 0.5 is released... If this is difficult to fix, maybe just put something into the README that actually works?

Gallium is expected to work on Windows, and did at some point. So, perhaps as soon as @keno can dive into this...

Last I looked into this, I was unable to reproduce this problem. I suspect I may have to try on an older windows version.

I'm on Win10 anniversary update, I don't think there is a newer Windows out there ;)

Well, maybe I have to try on a newer windows version then ;)

I 'm reporting the same problem on Win7-64, 0.5.0-RC2 - on master branch of all Gallium related packages. Same error message as @davidanthoff .

Me, same as @phlavenk .

Ok, I was finally able to reproduce this, see referenced julia issue, though there's still some segfault somewhere which will require some more work to track down.


Error on using normal create method with no slug

Hi @Omranic
Trying to create new category using normal eloquent Category::create method every time it redirect back to create page and no categories created .
The problem was that I don't send slug attribute with other category data and found that you made it as a required
       $this->setRules([             'slug' => 'required|alpha_dash|unique:'.config('rinvex.categorizable.tables.categories').',slug',         ]);
So wonder why required although make use of spatie/laravel-sluggable to handle  create slug from category name.

It should be auto created if not supplied, let me check this & get back to you 👍

got the same problem

Is there way to disable translation totally? It's unnecessary for my purpose and just make a mess

@NassarX The slug issue should be fixed in latest releases of this package. Please feel free to reopen this issue or a new one if you need further assistance 🙂
@Yario You can ignore translations and use the package like normal, translations are handled gracefully, automagically behind scenes. And if you still need to remove it totally, then you can override the model & modify the migrations, or even fork the whole package if required 🙌


Generating images based on hashtags

It would be awesome to let the Mastodon account follows specific hashtags and takes the additional hashtags from the posts to create the image.
In practical, you add several tags for IT security topics like #infosec #security whatever. You put the image on a webserver and you are always aware of the hot goss :grin:

Hi, thank you for taking the time to reach out.
I will take a look to see what more features (like grabbing hashtags).


build(typescript): upgrade to v4 compiler

Fixes #241
The OpenAPI generator also had to be upgraded
because the code it generated with the older
version was not TS 4 compatible (that's why
there's new files in the generated folders)
Signed-off-by: Peter Somogyvari<EMAIL_ADDRESS>

LGTM.
Can you explain the potential risk of migrating the V4 compiler as default?

Thank you @sfuji822
The risk is that one might have to update the syntax in some places with the new version because technically major releases can have breaking changes, but in my experience, with Typescript this is rarely the case (been through all the major releases they had since the beta and only 1 and 2 were bigger changes, 3 and 4 were pretty much seamless).
For example in this case 99% of the patch is just about upgrading the auto-generated source, nothing that I had to do manually (the whole PR took very little time to prepare compared to what one would normally expect)


Silent 400 error when headers exceed 8KiB

Several people on our team have been plagued by a heisenbug — some requests sometimes start failing with status 400, no explanation and nothing logged :confused:
Turns out we're hitting NodeJS limit of 8KiB headers (https://github.com/nodejs/node/commit/186035243fad247e3955fa0c202987cae99e82db), when you accumulate too many cookies. :bulb:  A different tab / incognito might help because different cookies.  Only some requests fail because they're longer...

[x] Workaround: clearing cookies helps!
[ ] Can we return a clearer error (status 431 exists for this) and/or log a clear error?  Looks like this can be caught in JS:
https://github.com/nodejs/node/blob/87805375645f7af36fce2e59289559f746a7131d/doc/api/http.md#event-clienterror
[ ] Can we set a higher limit!?  Maybe: https://github.com/nodejs/node/pull/24811

[x] Workaround specific to OCM (cloud.redhat.com/openshift): append ?env=staging to browser URL to make OCM UI talk directly to stage API, bypassing insights-proxy.

[x] Workaround specific to OCM (cloud.redhat.com/openshift): append ?env=staging to browser URL to make OCM UI talk directly to stage API, bypassing insights-proxy.


Add getOutputSchema to IOperator

IOperator is the interface of all operators. A new function, getOutputSchema() is added to it, and all operators are changed accordingly.

LGTM.


lack of quickstart

I wanted to try rom to access an existing sqlite database but so far I haven't done much execpt banging my head on walls which is not rally what I expected...
Can someone provide a simple and working example of how to connect ton sqlite database and query data ? For me so far it seems there are multiple ways (relation, repository), not all work with existing adapaters and each adapaters can have slight differences, in short I did not understand much :(
Here what I managed to write (and does not work):
require 'rom'

rom = ROM.container(:sql, 'sqlite:test.db')

class LibraryCollectionRepo < ROM::Relation[:sql]
  # schema(infer: true)
  # dataset 'LibraryCollection'

end

repo = LibraryCollectionRepo.new(rom)

p repo.to_a

(the commented lines is what I think I will need but my problem is not currently there)
I have other walls before that but I am stuck on this, apparently I am not instancing the relation object correctly and I am not even sure if I amsupposed to instantiante it, any help would be greatly appreciated, I have been watching this library for a while and it seems like it is now in a good state to try it.

Here's a quick start: http://rom-rb.org/learn/repositories/quick-start/

Here what I managed to write (and does not work):

What doesn't work exactly? Any backtrace?

The error I get from the code above is:
rom-2.0.2/lib/rom/relation.rb:90:in `each': undefined method `each' for #<ROM::Container:0x007ff7f2046e78> (NoMethodError)
	from rom-2.0.2/lib/rom/relation.rb:119:in `each'
	from rom-2.0.2/lib/rom/relation.rb:119:in `to_a'
	from rom-2.0.2/lib/rom/relation.rb:119:in `to_a'
	from app.rb:26:in `<main>'

I did not link it because I am pretty sure I am just doing something wrong.
I saw the quickstart and read the documentation but it is really fragemented, I don't yet understand how to piece things together to have a working base, from what I got I need to:

create a container which is the database connection
create one or more relations, create_table as used in the example does not work for I supposed since I don't want to alter the existing schema, just use it that's why I tried to create it myself
create the repository, maybe ?  I tried but also failed:

class LibraryCollection < ROM::Relation[:sql]
end

class LibraryCollectionRepo < ROM::Repository[???]
end

# for the question marks I tried :library_collection but it says it does not know the relation, also tried to put the class name itself "LibraryCollection" but did not work either
# => rom-support-2.0.0/lib/rom/support/registry.rb:33:in `block in fetch': :library_collection doesn't exist in ROM::RelationRegistry registry (ROM::Registry::ElementNotFoundError)

If you could provide a fully working starting point it would really help, and no the quickstart is not that for me, it shows one usecase but this is not mine and I can't manage to translate it which is really frustrating :(

If you just want to connect to an existing database and define an explicit relation class then you want this:
require 'rom'
require 'rom-repository'

rom = ROM.container(:sql, 'sqlite:test.db') do |config|
  # this assumes you have a table called :library_collections
  class LibraryCollections < ROM::Relation[:sql]
    schema(infer: true)
  end

  config.register_relation(LibraryCollections)
end

class LibraryCollectionRepo < ROM::Repository[:library_collections]
end

repo = LibraryCollectionRepo.new(rom)

p repo.library_collections.to_a

it shows one usecase but this is not mine and I can't manage to translate it which is really frustrating :(

We'll be working on new/more docs/guides. It's extremely difficult to document rom due to its broad functionality, and very little time, it's slowly progressing in a better direction. I'll add quick start section for connecting to an existing database too.
Thanks for feedback. Let me know if you need more help, I hope the example I showed will work for you.

Thanks this got me a step closer to a working start, I now have this:
require 'rom'
require 'rom-repository'

rom = ROM.container(:sql, 'sqlite:test.db') do |config|

  class LibraryCollections < ROM::Relation[:sql]
    schema('AgLibraryCollection', infer: true)
  end

  config.register_relation(LibraryCollections)
end

class LibraryCollectionRepo < ROM::Repository[:library_collections]
end

repo = LibraryCollectionRepo.new(rom)
p repo.library_collections.to_a

But it fails on line 8 with:
sequel-4.42.1/lib/sequel/database/query.rb:162:in `schema': schema parsing returned no columns, table "AgLibraryCollection" probably doesn't exist (Sequel::Error)
	from rom-sql-0.9.1/lib/rom/sql/schema/inferrer.rb:41:in `call'
	from rom-sql-0.9.1/lib/rom/sql/relation.rb:47:in `block (2 levels) in inherited'
	from rom-2.0.2/lib/rom/schema.rb:83:in `finalize!'
	from rom-sql-0.9.1/lib/rom/sql/schema.rb:24:in `finalize!'
	from rom-2.0.2/lib/rom/setup/finalize/finalize_relations.rb:53:in `build_relation'
	from rom-2.0.2/lib/rom/setup/finalize/finalize_relations.rb:25:in `block (2 levels) in run!'
	from rom-2.0.2/lib/rom/setup/finalize/finalize_relations.rb:24:in `each'
	from rom-2.0.2/lib/rom/setup/finalize/finalize_relations.rb:24:in `block in run!'
	from rom-2.0.2/lib/rom/relation_registry.rb:6:in `initialize'
	from rom-2.0.2/lib/rom/setup/finalize/finalize_relations.rb:23:in `new'
	from rom-2.0.2/lib/rom/setup/finalize/finalize_relations.rb:23:in `run!'
	from rom-2.0.2/lib/rom/setup/finalize.rb:93:in `load_relations'
	from rom-2.0.2/lib/rom/setup/finalize.rb:62:in `run!'
	from rom-2.0.2/lib/rom/create_container.rb:35:in `finalize'
	from rom-2.0.2/lib/rom/create_container.rb:13:in `initialize'
	from rom-2.0.2/lib/rom/create_container.rb:54:in `initialize'
	from rom-2.0.2/lib/rom/create_container.rb:59:in `new'
	from rom-2.0.2/lib/rom/create_container.rb:59:in `container'

I know the table does exists:
$ sqlite3 test.db "SELECT COUNT(*) FROM AgLibraryCollection"
4

I have been following rom for a while and I like the design, the current documentation is a great start but you are right, providing enough data without overloading the reader might prove difficult :)
I always prefer to have something working quickly even if I don't get all the principles behind it and then starting from that I can tweak things and see how it reacts and change my result, after that I can read more about how things work. I think maintaining a list of quickstarts instead of one is a good solution, you already have the read/write case, adding the read case might help others too.

If your table is called differently than the name you'd like to use, then you need to provide it as a symbol and you can alias it like that:
  class LibraryCollections < ROM::Relation[:sql]
    register_as :library_collections
    schema(:AgLibraryCollection, infer: true)
  end

if you switch to rom-sql 1.0.0.beta2 you can also do this:
  class LibraryCollections < ROM::Relation[:sql]
    schema(:AgLibraryCollection, infer: true, as: :library_collections)
  end

I always prefer to have something working quickly even if I don't get all the principles behind it and then starting from that I can tweak things and see how it reacts and change my result, after that I can read more about how things work.

Yep I'm the same, I'll definitely add short intros like that. It should probably go to a different section of the site, maybe "Guides" where this type of docs fit better. "Learn" section is meant to be a detailed documentation about all rom components with examples how to use various APIs.

I tried with a symbol and it still did not work (same error as before), I dug around a bit trying to pass Sequel a logger and found how with config.gateways[:default].use_logger(logger) and it shows that the code executed this:
PRAGMA foreign_keys = 1;
PRAGMA case_sensitive_like = 1;
SELECT sqlite_version();
SELECT * FROM `sqlite_master` WHERE ((`name` != 'sqlite_sequence') AND (`type` = 'table'));
PRAGMA table_info('AgLibraryCollection');

I tried to execute the last command, and... it works:
$ sqlite3 test.db "PRAGMA table_info('AgLibraryCollection')"
0|id_local|INTEGER|0||1
1|creationId||1|''|0
2|genealogy||1|''|0
3|imageCount||0||0
4|name||1|''|0
5|parent|INTEGER|0||0
6|systemOnly||1|''|0

This gets weirder and weirder :o

Oh, I didn't notice your connection URI is not right, it should be a valid uri with path to your db file so something like sqlite:///path/to/your/test.db

also, you can take a look here: https://github.com/rom-rb/rom-repository/blob/master/examples/sql.rb. One advice with rom-rb, it's always useful to check the tests

I find highly unsettling that you can pass an invalid url without issue and the rest of the queries will just happily raise meaningless errors, I suppose it comes directly from sequel and is not in rom but stil annoying.
I fixed the path and my container line now looks like this: rom = ROM.container(:sql, 'sqlite://./test.db') do |config|, I got a new error :p
rom-sql-0.9.1/lib/rom/sql/schema/inferrer.rb:69:in `block in map_type': Cannot find corresponding type for  (ROM::SQL::UnknownDBTypeError)
	from rom-sql-0.9.1/lib/rom/sql/schema/inferrer.rb:68:in `fetch'
	from rom-sql-0.9.1/lib/rom/sql/schema/inferrer.rb:68:in `map_type'
	from rom-sql-0.9.1/lib/rom/sql/schema/inferrer.rb:56:in `build_type'
	from rom-sql-0.9.1/lib/rom/sql/schema/inferrer.rb:45:in `block in call'
	from rom-sql-0.9.1/lib/rom/sql/schema/inferrer.rb:44:in `each'
	from rom-sql-0.9.1/lib/rom/sql/schema/inferrer.rb:44:in `each_with_object'
	from rom-sql-0.9.1/lib/rom/sql/schema/inferrer.rb:44:in `call'
	from rom-sql-0.9.1/lib/rom/sql/relation.rb:47:in `block (2 levels) in inherited'
	from rom-2.0.2/lib/rom/schema.rb:83:in `finalize!'
	from rom-sql-0.9.1/lib/rom/sql/schema.rb:24:in `finalize!'
	from rom-2.0.2/lib/rom/setup/finalize/finalize_relations.rb:53:in `build_relation'
	from rom-2.0.2/lib/rom/setup/finalize/finalize_relations.rb:25:in `block (2 levels) in run!'
	from rom-2.0.2/lib/rom/setup/finalize/finalize_relations.rb:24:in `each'
	from rom-2.0.2/lib/rom/setup/finalize/finalize_relations.rb:24:in `block in run!'
	from rom-2.0.2/lib/rom/relation_registry.rb:6:in `initialize'
	from rom-2.0.2/lib/rom/setup/finalize/finalize_relations.rb:23:in `new'
	from rom-2.0.2/lib/rom/setup/finalize/finalize_relations.rb:23:in `run!'
	from rom-2.0.2/lib/rom/setup/finalize.rb:93:in `load_relations'
	from rom-2.0.2/lib/rom/setup/finalize.rb:62:in `run!'
	from rom-2.0.2/lib/rom/create_container.rb:35:in `finalize'
	from rom-2.0.2/lib/rom/create_container.rb:13:in `initialize'
	from rom-2.0.2/lib/rom/create_container.rb:54:in `initialize'
	from rom-2.0.2/lib/rom/create_container.rb:59:in `new'
	from rom-2.0.2/lib/rom/create_container.rb:59:in `container'
	from app.rb:10:in `<main>'

@Kukunin I looked at the tests files but it really does not give much more information than what is in the quickstart in the documentation, my comments above also applies to it: it create a memory database, I am opening an existing one, it creates a new schema where I am using an existing one.

I find highly unsettling that you can pass an invalid url without issue and the rest of the queries will just happily raise meaningless errors

It's hard to tell but maybe it's a bug in sequel, I would expect to see an error about invalid URI. I just checked and it seems like it created an in-memory sqlite database, just because there's no path in that URI. Something worth reporting to Jeremy I think.

I got a new error :p

Can you try installing beta version of rom and rom-sql and try again? We improved inferrer a lot so it might work. If it doesn't please paste here what rom.gateways[:default].connection.schema(:AgLibraryCollection) returns.

I just tried with latest beta:
gem 'rom',              '~> 3.0.0.beta3'
gem 'rom-repository',   '~> 1.0.0.beta2'
gem 'rom-sql',          '~> 1.0.0.beta3'

my script got a little further it seems:
rom-3.0.0.beta3/lib/rom/schema.rb:271:in `finalize!': missing attributes in ROM::Relation::Name(AgLibraryCollection) schema: :creationId, :genealogy, :imageCount, :name, :systemOnly (ROM::Schema::MissingAttributesError)
	from rom-sql-1.0.0.beta3/lib/rom/sql/schema.rb:85:in `finalize!'
	from rom-3.0.0.beta3/lib/rom/setup/finalize/finalize_relations.rb:54:in `build_relation'
	from rom-3.0.0.beta3/lib/rom/setup/finalize/finalize_relations.rb:25:in `block (2 levels) in run!'
	from rom-3.0.0.beta3/lib/rom/setup/finalize/finalize_relations.rb:24:in `each'
	from rom-3.0.0.beta3/lib/rom/setup/finalize/finalize_relations.rb:24:in `block in run!'
	from rom-3.0.0.beta3/lib/rom/relation_registry.rb:6:in `initialize'
	from rom-3.0.0.beta3/lib/rom/setup/finalize/finalize_relations.rb:23:in `new'
	from rom-3.0.0.beta3/lib/rom/setup/finalize/finalize_relations.rb:23:in `run!'
	from rom-3.0.0.beta3/lib/rom/setup/finalize.rb:93:in `load_relations'
	from rom-3.0.0.beta3/lib/rom/setup/finalize.rb:62:in `run!'
	from rom-3.0.0.beta3/lib/rom/create_container.rb:33:in `finalize'
	from rom-3.0.0.beta3/lib/rom/create_container.rb:11:in `initialize'
	from rom-3.0.0.beta3/lib/rom/create_container.rb:52:in `initialize'
	from rom-3.0.0.beta3/lib/rom/create_container.rb:57:in `new'
	from rom-3.0.0.beta3/lib/rom/create_container.rb:57:in `container'
	from app.rb:11:in `<main>'

I don't understand the error, what does missing attributes means in that case ?
PS: As a sidenote if I do require "rom" an exception is raised complaining about uninitialized constant Forwardable, I had to add require 'forwardable' just before it to make it work.

my script got a little further it seems:

OK cool, please paste what this returns:
rom.gateways[:default].connection.schema(:AgLibraryCollection)

As a sidenote if I do require "rom" an exception is raised complaining about uninitialized constant Forwardable

Oh nice catch, I'll fix that right away

Here is the result:
[
  [:id_local, {
    :allow_null=>true,
    :default=>nil,
    :db_type=>"INTEGER",
    :primary_key=>true,
    :auto_increment=>true,
    :type=>:integer,
    :ruby_default=>nil
  }],
  [:creationId, {
    :allow_null=>false,
    :default=>"''",
    :db_type=>"",
    :primary_key=>false,
    :type=>nil,
    :ruby_default=>nil
  }],
  [:genealogy, {
    :allow_null=>false,
    :default=>"''",
    :db_type=>"",
    :primary_key=>false,
    :type=>nil,
    :ruby_default=>nil
  }],
  [:imageCount, {
    :allow_null=>true,
    :default=>nil,
    :db_type=>"",
    :primary_key=>false,
    :type=>nil,
    :ruby_default=>nil
  }],
  [:name, {
    :allow_null=>false,
    :default=>"''",
    :db_type=>"",
    :primary_key=>false,
    :type=>nil,
    :ruby_default=>nil
  }],
  [:parent, {
    :allow_null=>true,
    :default=>nil,
    :db_type=>"INTEGER",
    :primary_key=>false,
    :type=>:integer,
    :ruby_default=>nil
  }],
  [:systemOnly, {
    :allow_null=>false,
    :default=>"''",
    :db_type=>"",
    :primary_key=>false,
    :type=>nil,
    :ruby_default=>nil
  }]
]

I love SQLite
On Fri, 20 Jan 2017 at 21:57, Julien Ammous<EMAIL_ADDRESS>wrote:

Here is the result:
[
[:id_local, {
:allow_null=>true,
:default=>nil,
:db_type=>"INTEGER",
:primary_key=>true,
:auto_increment=>true,
:type=>:integer,
:ruby_default=>nil
}],
[:creationId, {
:allow_null=>false,
:default=>"''",
:db_type=>"",
:primary_key=>false,
:type=>nil,
:ruby_default=>nil
}],
[:genealogy, {
:allow_null=>false,
:default=>"''",
:db_type=>"",
:primary_key=>false,
:type=>nil,
:ruby_default=>nil
}],
[:imageCount, {
:allow_null=>true,
:default=>nil,
:db_type=>"",
:primary_key=>false,
:type=>nil,
:ruby_default=>nil
}],
[:name, {
:allow_null=>false,
:default=>"''",
:db_type=>"",
:primary_key=>false,
:type=>nil,
:ruby_default=>nil
}],
[:parent, {
:allow_null=>true,
:default=>nil,
:db_type=>"INTEGER",
:primary_key=>false,
:type=>:integer,
:ruby_default=>nil
}],
[:systemOnly, {
:allow_null=>false,
:default=>"''",
:db_type=>"",
:primary_key=>false,
:type=>nil,
:ruby_default=>nil
}]
]
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/rom-rb/rom-sql/issues/133#issuecomment-274091590, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAw-ttVWZUz1urs53w_YQL9FciP7fe4uks5rUMtCgaJpZM4Lm2AI
.

@flash-gordon ^^ any clue why db_type is set to an empty string?
@schmurfy there's no way to infer these attributes given that sequel returns empty strings for db_type property. Can you show me how this schema was created? For the time being you can define attributes yourself explicitly in the schema block:
schema(:AgLibraryCollection, infer: true) do
  attribute :creationId, Types::Int
  attribute :imageCount, Types::Int
  attribute :name, Types::String
  attribute :genealogy, Types::String # not sure if you want a string here
  attribute :systemOnly, Types::String # same here, not sure if that's supposed to be a string
end

@flash-gordon yeah me too, I mean if you look at this:
$ sqlite3 test.db "PRAGMA table_info('AgLibraryCollection')"
0|id_local|INTEGER|0||1
1|creationId||1|''|0
2|genealogy||1|''|0
3|imageCount||0||0
4|name||1|''|0
5|parent|INTEGER|0||0
6|systemOnly||1|''|0

then it's indeed empty, only id_local has INTEGER set the rest is just empty...should we default to String in such case? I've no idea what sqlite is doing under the hood.

@solnic I think it's because of empty type affinity, AFAIK SQLite allows
you to store anything you want within its five (or so) native datatypes.
You can cast it to anything you want according to your own policies, you
also can associate a field with a type, this is called type affinity, so
you can use it for casting. Apparently type affinity is optional, so I'm
not sure what we should to do in this case...
On Fri, 20 Jan 2017 at 22:07, Piotr Solnica<EMAIL_ADDRESS>wrote:

@flash-gordon https://github.com/flash-gordon yeah me too, I mean if
you look at this:
$ sqlite3 test.db "PRAGMA table_info('AgLibraryCollection')"
0|id_local|INTEGER|0||1
1|creationId||1|''|0
2|genealogy||1|''|0
3|imageCount||0||0
4|name||1|''|0
5|parent|INTEGER|0||0
6|systemOnly||1|''|0
then it's indeed empty, only id_local has INTEGER set the rest is just
empty...should we default to String in such case? I've no idea what sqlite
is doing under the hood.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/rom-rb/rom-sql/issues/133#issuecomment-274093962, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAw-tmHDs0oYHCdp7RS8ZSCyL9J7vrKZks5rUM2IgaJpZM4Lm2AI
.

here is the schema returned using the cli utility and the .schema command:
CREATE TABLE AgLibraryCollection (
    id_local INTEGER PRIMARY KEY,
    creationId NOT NULL DEFAULT '',
    genealogy NOT NULL DEFAULT '',
    imageCount,
    name NOT NULL DEFAULT '',
    parent INTEGER,
    systemOnly NOT NULL DEFAULT ''
);

if I read that well there is no type defined for most of the columns xD
An interesting point here is that my Sequel did manage to infer the schema, maybe you should use string as default if nothing else if defined.

@flash-gordon @schmurfy wdyt about adding Types::Object for "who knows what" types? Seems appropriate in this weird sqlite case

@solnic yes, that's one option. The other is to return strings, but I'd 👍 for Object type

What would the Object solution means, what would it returns ?

@schmurfy it would just set attribute primitive type to Object and that's it, since we don't know what it is exactly then it's the only solution we can come up with


Add files via upload

@pnyishar Please rename file/lib/domains/ng/edu/fideipoly.txt to lib/domains/ng/edu/fideipoly.txt

@pnyishar You might miss my previous comment. Please react.

@pnyishar I renamed the file for you and merged your pull request. You can start applying for educational subscription for JetBrains tools with your email address in about an hour. Thank you.


Add an icon for the GUI application

The new packaged app could benefit from an official application icon.  By default, it gets a generic Java icon when packaged, which is less than ideal.

Per discussion on #tech-contributors, I attempted to integrate the new icon (I worked with Validator_Icon_Reversed.svg).  I think there are some issues with image transparency that we might need to address.  Namely, fill for both the checkmark and the stroke of the grid in the background are both transparent. This looks fine when the app icon is on a white background:

But does not look great when the app is on a non-white background (e.g. desktop shortcut).

(My Windows background is particularly dark).
While we could use the icon as-is, it's not the best experience with some backgrounds.
@isabelle-dr thoughts?  Anything you can help with?

@bdferris-v2 agreed, the background should be white.
I'm sending you the update via e-mail

Here is the version with a white background to function on all different backgrounds.


404 on cri-containerd 1.2.10

1.2.10 was released but https://storage.googleapis.com/cri-containerd-release/cri-containerd-1.2.10.linux-amd64.tar.gz is not found. Could you please release one?

So fast...
I just pushed it. lol

Thanks. :)
Mostly cared about this one in particular as it had the bugfix for the PATH thingy we were experiencing. So was watching closer.


Upgrade to .NET MAUI

Tasks

[x] #310
[ ] Write migration roadmap

### Tasks
- [ ] https://github.com/SSWConsulting/SSW.Rewards.Mobile/issues/427

Android

[x] Animation is not visible when it's bound
[x] Layout of popup pages is off; should match prod
[x] Crown icon is missing for the top leader on the Leaderboard (existing bug in Xamarin.Forms)
[x] Star icons are missing for some items in the All Time list on the Leaderboard
[x] Poor scrolling on the Leaderboard page
[x] Search and filter issues on the Leaderboard page
[x] Splash screen is incorrect on Android 12+
[x] The picture is blurry on the Login page
[x] Carousel is jerky (.NET 8 prev.6). Re: in Debug I can see that GC is triggered when the user swipes; that causes the delays. Works fine in Release on a relatively old phone - Samsung Note 8. https://github.com/SSWConsulting/SSW.Rewards.Mobile/issues/431
[x] Carousel is changing height (.NET 8 prev.6)
[x]  Carousel: an image placeholder is not displayed when the image is downloading
[x] Input box underline (.NET 8 prev.6)
[x] Check if we can enable Animation. Re: still disabled for OnBoardingPage.
[x] Clipped or missing icons
[x] Skills do not have right margin
[x] Last achievement issue
[ ] ProfilePage: CarouselView with a CollectionView inside it is too sensitive https://github.com/dotnet/maui/issues/6412
[x]  App crashes when you scan a QR code; happens only in Release.
[x] App crashes on the People page; Release mode only. Solution can be found here https://github.com/dotnet/maui/issues/16514
[x] Gray scale transformation is not working as FFImageLoading does not support MAUI. Re: used the recently released FFImageLoading.Compat package.
[x] Achievements are not perfect circles. That's because we are using Frame, not Button. But buttons have problems with the BackgroundColor in the Release mode. Re: not relevant anymore as we changed the shape of buttons to rounded rectangular.

iOS

[x] Beta: tab icons are missing and have incorrect color
[x] Beta: missing right padding on the Skill Bars (PeoplePage)
[x] Changing tabs in leaderboard freezes while lists are updated
[ ]  Animation is not visible (https://github.com/mono/SkiaSharp.Extended/issues/142). Re: On the ScanResultPage we use the workaround mentioned in the issue. On the OnBoardingPage we display an image as the workaround doesn't work there (probably because it's inside a carousel).
[x] Corner radius is off; shapes should be circular
[x] Layout of profile stats is off; margins should be calculated against the center of the circle
[x] Flyout ellipsis is in the middle of the screen; should be on the left
[x] App icon is incorrect; should match prod
[x] Splash screen is incorrect; should match prod
[x] Scanner is not working; should be able to scan a QR code
[x] Icons are blurry
[x] Tab icons are blurry (https://github.com/dotnet/maui/issues/6043) Workaround - switched to SVG icons
[ ] Selected tab icon is not highlighted; should be highlighted red (https://github.com/dotnet/maui/issues/12250)
[x] FlyoutPage layout is off; should match prod
[x] Join Us item on the FlyoutPage is missing
[x] Cannot close popups, e.g. Edit Profile Picture, SSW Events, About SSW; should be able to close by tapping on the overlay
[x] Link icon size is off on SSW Events and About SSW popups; should match prod
[x] Rewards progress bar is missing on the Profile page
[x] Layout of Leaderboard list items is off; should match prod
[x] Leaderboard page is super slow, sometimes the app freezes; performance should be comparable to Android
[x] Some images on the PeoplePage have huge sizes; should match prod
[x] Skill bars are grey on the PeoplePage; should be red
[x] Search and filter issues on the Leaderboard page
[x] Layout of the Search input field is off
[x] Some icons are cropped (e.g. achievements or "scroll up" on the Leaderboard page) https://github.com/dotnet/maui/issues/15183
[x] Recent Activity items change heights when you scroll (fix: temporary fixed the height)
[x] App crashes when the user scans a legit qr code
[x] Scanner is not working if the ScanResult popup is dismissed by tapping on the overlay and not on the Ok button. Fix by making the popup modal or by properly handling all actions which close the popup.
[x] App crashes when you scan a QR code; happens only in Release.
[x] App crashes on start; Release mode only
[x] Achievements are not perfect circles. That's because we are using Frame, not Button. But buttons have problems with the BackgroundColor in the Release mode. Re: not relevant anymore as we changed the shape of buttons to rounded rectangular.
[x] LeaderboardPage: big gap on the right side. Reported by @bradystroud

Before merging:

[ ] Address TODOs
[ ] Remove not relevant comments
[ ] Remove not targeted platforms (Tizen, Windows, Mac)
[ ] Remove MauiPage.xaml
[ ] Update nuget packages
[ ] Test scanning/achievements functionality

Fixed #408

Fixed #437