feat: add blockchain subdomain facet

Link T-14959

@adshmh @blockjoe any feedback on this before we merge this?


Adding sample cases for byte[] and byte[][] triggers

Turns out task 3 of #44 doesn't require any additional work; we got it for free. Added samples demonstrating

It wasn't clear to me how to write tests to exercise this... had quite a time when I tried.

@ryancrawcour worked thru the test case adds w/ @fbeltrao & we're all good now. Added to e2es and passing. ⏲

@fbeltrao plz review & merge, thanks!


feat(CMS.Repo): support cms/schedules/:route_id endpoint

Summary of changes
Asana Ticket: ➕ Automate PDF schedule upload process | Elixir integration
Based on changes proposed in https://github.com/mbta/cms/pull/390
Fetches route PDFs from both the old and new endpoints, WIP as I might have to add more logic around the transition period and I might have more questions...

Replaced by #1372 and #1373


[CT-739] Reducing the row limit in Snowflake account breaks dbt run process

Describe the bug
I was working with Snowflake Support to reduce the row limit for the Snowsight UI for our account to improve user experience. A side effect of that is show schema command is also impacted. Currently the maximum limit for show terse schemas in database is hard coded to 10,000 here
Steps To Reproduce
You can easily reproduce this error by running show terse schemas in database analytics_prod limit 20000; in snowflake. Default limit is 10000 and this will raise an error. Similarly reducing the default to 200 will cause the dbt sql show terse schemas in database analytics_prod limit 10000 getting error out.
Expected behavior
This should be a configurable option I feel. Not sure if we can use some other sql to list schemas (i.e. information_schema)
Additional context
As a stop gap, I was able to workaround this by overriding the macro snowflake__list_schemas in our dbt project but definitely not an ideal solution.

@msardana94 Sorry for the delay getting back to you here.
Based on a quick search of the Snowflake docs, I'm guessing that the parameter you're describing here is ROWS_PER_RESULTSET (https://docs.snowflake.com/en/sql-reference/parameters.html#rows-per-resultset).
Is your goal to reduce the row limit for all queries in your Snowflake account? It's not unreasonable to want to limit BI-style queries (in Snowsight UI) to fewer than 10k rows, but dbt will need this metadata in order to populate its runtime cache, and in order to correctly generate documentation.
I'd recommend finding a way to set this limit for some users, but not for dbt. Otherwise, there is going to be a hard trade-off between:

the number of rows users can return from Snowsight queries
the number of sources/models/seeds/snapshots you can have in your dbt project

The reason to include the limit clause at all is:

If LIMIT rows is omitted, the command results in an error if the result set is larger than 10K rows.

That may be preferable, honestly, compared to returning missing / incorrect results...

@jtcohen6 sorry for delayed response. Your explanation makes sense to me. I didn't realise that not having limit will result in an error altogether.
I explored the user session parameters you mentioned and it temporarily solves our use case. We are good to close this for now.


Not consistent when table-names contain _ (underscore)

When running
zf2rapid crud-create-model Test tbl_pages,tbl_menu,tbl_menu_types
then all files is created as expected, being camelcased instead of underscored:
Except Strategy - there, the files are named
Tbl_menu_typesStrategy.php
Tbl_menuStrategy.php

with the classnames being also with underscores.
But the module (also created by zf2rapid) is using Zend\Loader\StandardAutoloader will replace these underscores when tryind to load the files, making the module fail.

And this error goes further - TableGatewayfactories created by crud-create-move also does only uppercase the tablename, which preserves underscores, which again will make the class try to use invalid class-names in use-statements and when trying to create entities and getting hydrators from the servicemanager.


Error Message when framework/frameworkversion does not exist needs to be more descriptive

Right now when we install an instance of a framework1 as part of another framework0 without having the framework/frameworkversion both properly installed, the presented error message helps little to point us in the right direction:
Error getting PlaneExecution /: PlanExecution.maestro.k8s.io "" not found

This can be easily reproduced by trying to install the flink-demo that has zookeeper as a dependency without having the framework/frameworkversion of zookeeper installed.
What would be more intuitive to the user is that there is an error message saying the framework or frameworkversion for that instance wasn't found.
The longer error message:
2019/01/22 12:04:20 Obj is NOT healthy: &{{ } {demo-zk  default /apis/maestro.k8s.io/v1alpha1/namespaces/default/instances/demo-zk e73c3016-1e80-11e9-b99e-08002788f190 2444 1 2019-01-22 12:04:19 -0800 PST <nil> <nil> map[heritage:maestro phase:dependencies instance:demo plan:deploy step:zookeeper version: framework:zookeeper app:flink-financial-demo controller-tools.k8s.io:1.0 planexecution:demo-deploy-109789000] map[] [{maestro.k8s.io/v1alpha1 Instance demo e6baa583-1e80-11e9-b99e-08002788f190 0xc000daa7ac 0xc000daa7ad}] nil [] } {{ default zookeeper-1.0    } [] map[ZOOKEEPER_CPUS:0.3]} {{      } }}
2019/01/22 12:04:20 Phase dependencies has strategy serial
2019/01/22 12:04:20 Phase dependencies marked as serial
2019/01/22 12:04:20 Step zookeeper isn't complete, skipping rest of steps in phase until it is
2019/01/22 12:04:20 Phase dependencies is not healthy b/c step zookeeper is not healthy
2019/01/22 12:04:20 Phase dependencies not healthy, and plan marked as serial, so breaking.
2019/01/22 12:04:20 Phase dependencies is not healthy b/c step zookeeper is not healthy

We actually have that error message at another part already. When we try to install just zookeeper via kubectl apply -f zookeeper-instance.yaml without having the framework/frameworkversion installed as a prerequisite, we end up with a more descriptive message:
2019/01/22 12:07:01 Error getting FrameworkVersion zookeeper-1.0 for instance zk: FrameworkVersion.maestro.k8s.io "zookeeper-1.0" not found

Long error message:
2019/01/22 12:06:50 Could not find planExecution demo-deploy-109789000: PlanExecution.maestro.k8s.io "demo-deploy-109789000" not found
2019/01/22 12:06:50 Error getting instance object: Instance.maestro.k8s.io "demo" not found
2019/01/22 12:07:01 Recieved create event for &{{ } {zk  default /apis/maestro.k8s.io/v1alpha1/namespaces/default/instances/zk 47b56197-1e81-11e9-b99e-08002788f190 2629 1 2019-01-22 12:07:01 -0800 PST <nil> <nil> map[framework:zookeeper controller-tools.k8s.io:1.0] map[kubectl.kubernetes.io/last-applied-configuration:{"apiVersion":"maestro.k8s.io/v1alpha1","kind":"Instance","metadata":{"annotations":{},"labels":{"controller-tools.k8s.io":"1.0","framework":"zookeeper"},"name":"zk","namespace":"default"},"spec":{"frameworkVersion":{"name":"zookeeper-1.0","namespace":"default","type":"FrameworkVersions"},"name":"zk","parameters":{"ZOOKEEPER_CPUS":"0.3"}}}
] [] nil [] } {{ default zookeeper-1.0    } [] map[ZOOKEEPER_CPUS:0.3]} {{      } }}
2019/01/22 12:07:01 Error getting FrameworkVersion zookeeper-1.0 for instance zk: FrameworkVersion.maestro.k8s.io "zookeeper-1.0" not found

We need to makes sure that the status of the Instance displays this correctly.

Obsolete, PlanExecution CRD was removed


[BUG] Icons won't download

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
I select an icon and click on "Edit and download icon", make the required updates, but when clicking on "export as...", nothing happens.
I also notice the website page is not fluidly being scrolled.
Expected Behavior
The file download should get started
Steps To Reproduce

in https://eos-icons.com/
select an icon
click on "Edit and download icon"
click on "export as svg"

Anything else?
No response
What browsers are you seeing the problem on?
Chrome, Microsoft Edge

@CyberFan  we've redeployed the site to https://eos-icons-frontend-1t6flcbwl-eos-icons.vercel.app/

Re-opening as this is not fully solving the issue with the search and export


AttributeError: module 'aiohttp.helpers' has no attribute 'FormData'

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/telepot/aio/__init__.py", line 434, in get_from_telegram_server
    result = await self.getUpdates(offset=offset, timeout=timeout)
  File "/usr/local/lib/python3.5/dist-packages/telepot/aio/__init__.py", line 298, in getUpdates
    return await self._api_request('getUpdates', _rectify(p))
  File "/usr/local/lib/python3.5/dist-packages/telepot/aio/__init__.py", line 65, in _api_request
    return await api.request((self._token, method, params, files), **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/telepot/aio/api.py", line 100, in request
    fn, args, kwargs, timeout = _transform(req, **user_kw)
  File "/usr/local/lib/python3.5/dist-packages/telepot/aio/api.py", line 62, in _transform
    data = _compose_data(req, **user_kw)
  File "/usr/local/lib/python3.5/dist-packages/telepot/aio/api.py", line 39, in _compose_data
    data = aiohttp.helpers.FormData()
AttributeError: module 'aiohttp.helpers' has no attribute 'FormData'

Is this my fault or just incompatible versions of aiohttp and telepot? I have aiohttp 2.2.5 and telepot 10.2

My bad. That was an old version of telepot :-) No clue why pip downloaded that one.


Fix data races in LoadBalancer and DHCPSwitchFlowSetter

Fix harmful data races in LoadBalancer and DHCPSwitchFlowSetter module. A concurrent switch removal can cause null pointer exception on getSwitch() service function and incur serious logic flaws in those modules, e.g., break service chain and leak physic IP address of server replica.

@xuraylei Thanks for the patch!


spdk: disallow disabling spdk if there are block-type disks on nodes

Longhorn/longhorn#5778

@mergify backport v1.5.x


Add Jenkinsfile

This change is

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

:shipit: lgtm :shipit:

Domo arigato mr roboto


Cellpose not finding large constructs

Cellpose  is unable to find large constructs in my images. Any idea on how to help this or how to train my own model?

you can read the last paragraph of gui.rst ,It is placed in the  docs folder.
This may be useful to you

you can read the last paragraph of gui.rst ,It is placed in the  docs folder.
This may be useful to you

there aren't any examples like this in the cellpose database, if you have some labelled images you can submit them to the cellpose server. alternatively you can train your own model: https://cellpose.readthedocs.io/en/latest/train.html

there aren't any examples like this in the cellpose database, if you have some labelled images you can submit them to the cellpose server. alternatively you can train your own model: https://cellpose.readthedocs.io/en/latest/train.html


refactor(masonry): Replace artwork autosuggest results with Masonry

This PR resolves []
Description
Refactors the autosuggest results on adding an artwork in my collection to use MasonryFlashList.
No changes are expected ui wise.

PR Checklist

[x] I have tested my changes on iOS and Android.
[x] I hid my changes behind a feature flag, or they don't need one.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[x] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

Replace artwork autosuggest results with Masonry - gkartalis

Need help with something? Have a look at our docs, or get in touch with us.

This PR contains the following changes:

Dev changes (Replace artwork autosuggest results with Masonry - gkartalis)

  Generated by :no_entry_sign: dangerJS against d47e22482d5aae370fed497852f33dde7f3aeb15

Good idea @MounirDhahri, will fix the broken tests from main in another pr will rebase and trigger one codepush build for this ~ will update below when ready

codepush canary versions were just uploaded codepush-canary-android-8.29.1-2<IP_ADDRESS> and  codepush-canary-ios-8.29.1-2<IP_ADDRESS>

Thanks!

seems safe to merge ~ will also add a QA scenario for this surface


undefined method `gsub!' when trying to convert

Hi. I am trying to use this tool to convert string resources from an existing android project. The very first try resulted in the error described below:
Command executed:
bash-3.2$ ruby ios-res-tool/ios-strings.rb --import-android="/Users/smoky/AndroidstudioProjects/NICEAdminBlue/app/src/main/res" --export-ios=./res
resulted in:
........ (lots of message id's here) string: app_name string: btn_OK string: btn_restting string: info_changeInhibited string: btn_SaveProhibited plurals: upgr_god xml: /Users/smoky/AndroidstudioProjects/NICEAdminBlue/app/src/main/res/values-v11/styles.xml xml: /Users/smoky/AndroidstudioProjects/NICEAdminBlue/app/src/main/res/values-v14/styles.xml xml: /Users/smoky/AndroidstudioProjects/NICEAdminBlue/app/src/main/res/values-v21/styles.xml xml: /Users/smoky/AndroidstudioProjects/NICEAdminBlue/app/src/main/res/values-w820dp/dimens.xml ios-res-tool/ios-strings.rb:408:inexport_ios_string': undefined method gsub!' for nil:NilClass (NoMethodError) 	from ios-res-tool/ios-strings.rb:425:in block (2 levels) in export_ios'
from ios-res-tool/ios-strings.rb:423:in each' 	from ios-res-tool/ios-strings.rb:423:in block in export_ios'
from ios-res-tool/ios-strings.rb:420:in open' 	from ios-res-tool/ios-strings.rb:420:in export_ios'
from ios-res-tool/ios-strings.rb:700:in block (2 levels) in <main>' 	from ios-res-tool/ios-strings.rb:699:in each'
from ios-res-tool/ios-strings.rb:699:in block in <main>' 	from ios-res-tool/ios-strings.rb:694:in each'
from ios-res-tool/ios-strings.rb:694:in <main>'
The tool looks very promising to me but I do not have knowledge of ruby yet to be able to fix it
Regards, Peter

Hopefully the commit would fix the problem.

Having checked with updated ios-strings.rb but similar result:
ios-res-tool/ios-strings.rb:410:in `export_ios_string': undefined method `gsub!' for nil:NilClass (NoMethodError)
	from ios-res-tool/ios-strings.rb:427:in `block (2 levels) in export_ios'
	from ios-res-tool/ios-strings.rb:425:in `each'
	from ios-res-tool/ios-strings.rb:425:in `block in export_ios'
	from ios-res-tool/ios-strings.rb:422:in `open'
	from ios-res-tool/ios-strings.rb:422:in `export_ios'
	from ios-res-tool/ios-strings.rb:702:in `block (2 levels) in <main>'
	from ios-res-tool/ios-strings.rb:701:in `each'
	from ios-res-tool/ios-strings.rb:701:in `block in <main>'
	from ios-res-tool/ios-strings.rb:696:in `each'
	from ios-res-tool/ios-strings.rb:696:in `<main>'

Hi,
Is it possible to send me a copy of the resource files for testing?
It would be a lot faster for me to identify the issues.
Thanks,
Steve

dilmash<EMAIL_ADDRESS>於 2017年4月7日 下午8:40 寫道：
Having checked with updated ios-strings.rb but similar result:
ios-res-tool/ios-strings.rb:410:in export_ios_string': undefined method gsub!' for nil:NilClass (NoMethodError)
from ios-res-tool/ios-strings.rb:427:in block (2 levels) in export_ios' 	from ios-res-tool/ios-strings.rb:425:in each'
from ios-res-tool/ios-strings.rb:425:in block in export_ios' 	from ios-res-tool/ios-strings.rb:422:in open'
from ios-res-tool/ios-strings.rb:422:in export_ios' 	from ios-res-tool/ios-strings.rb:702:in block (2 levels) in '
from ios-res-tool/ios-strings.rb:701:in each' 	from ios-res-tool/ios-strings.rb:701:in block in '
from ios-res-tool/ios-strings.rb:696:in each' 	from ios-res-tool/ios-strings.rb:696:in '
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Steve, I managed to find the possible cause of this issue. I doe have an empty string in my resources that causes the reported problem. One can circumvent it by ignoring empty strings but that does not help much.
In addition, any string marked with  translatable="false" is not converted as well, that hurts me a lot more.
Is there a chance that you update this genius little script to handle null strings and  translatable="false" ?
Regards, Peter


Pipes within item_id / item_sku in the items array lead to additional columns / column mismatch in product strings

Firstly thanks for building out this template it been really great to us and saved me a lot of time.
I have a issue with the product level tracking in the template due to the fact that our business include a pipe string of our component for a item_id  For example  P123|A123|D123.   The replace method of the code does not encode or replace | leading to additional column in the product level tracking.
I know this is an edge case issues, and I tried to fix this issue myself with the following changes to the code but it does not appear to be working
I also dont see any console logs from your template even when in debug mode.  Could not work out why.
Any help would be amazing.
const productRow =
        'AW:P|{{advertiserId}}|{{orderReference}}|{{productId}}|{{productName}}|{{productItemPrice}}|{{productQuantity}}|{{productSku}}|{{commissionGroupCode}}|{{productCategory}}';
      if (getType(items) === 'array') {
        items.forEach((item, index) => {
          let item_id = item.item_id || '';
          item_id.replace('|','/');

          let value = productRow.replace(
            '{{advertiserId}}',
            item.advertiser_id || data.advertiserId || ''
          );
          value = value.replace(
            '{{orderReference}}',
            item.order_reference || eventData.transaction_id || ''
          );
          value = value.replace('{{productId}}', item_id || '');
          value = value.replace('{{productName}}', item.item_name || '');
          value = value.replace(
            '{{productItemPrice}}',
            getPriceString(item.price)
          );
          value = value.replace('{{productQuantity}}', item.quantity || '');
          value = value.replace(
            '{{productSku}}',
            item.item_sku || item_id || ''
          );
          value = value.replace(
            '{{commissionGroupCode}}',
            item.commission_group_code || 'DEFAULT'
          );
          value = value.replace(
            '{{productCategory}}',
            item.item_category || ''
          );
          requestUrl = requestUrl + '&bd[' + index + ']=' + value;
        });
      }

Hi,
Thanks for reporting this issue.
We added this issue to our internal backlog.
Hope to fix it to the end of the next week.

Hi Fixed this myself in the end.  Realised Sandbox JS does not support ReplaceAll function so ended up using Regex Replace instead.
Our new code that works
awin stape-io.txt


Casting inconsistent between Key and KeyCode

Describe the bug
Key and KeyCode support equality e.g.
// Passes
Assert.Equal (KeyCode.A, Key.A);
Assert.Equal (KeyCode.F1, Key.F1);

However when casting is involved things behave inconsistently.  The most noticeable case is non character values e.g. F1
// Fails
Assert.Equal ((uint)KeyCode.F1, (uint)Key.F1);

The int cast on Key is going into the 'char' explicit operator which returns 0
Assert.Equal() Failure: Values differ
Expected: 1048587
Actual:   0

But there is also inconsistent behaviour when it comes to lower case letters
// Pass
Assert.Equal (KeyCode.A, Key.A);
Assert.NotEqual (KeyCode.A, Key.A.WithShift);

// Fail
Assert.Equal ((uint)KeyCode.A, (uint)Key.A);
Assert.NotEqual ((uint)KeyCode.A, (uint)Key.A.WithShift);

I think the code is going down the char route in order to get to uint and I note that the docs describes this as 'lossy'.
	/// <summary>
	/// Explicitly cast <see cref="Key"/> to a <see langword="char"/>. The conversion is lossy.
	/// </summary>
	/// <param name="kea"></param>
	public static explicit operator char (Key kea) => (char)kea.AsRune.Value;

Expected behavior
Casting to uint should either be impossible or should be consistent

Another strange behavior is the fact I can't debug this unit test in VS2022 with the expected parameter as Key. If I change it to KeyCode it will allow debugging. Although with the Key type I can't debug it seems to pass all. This also happens with you?
	[[Theory]
	[InlineData ("A-Ctrl", KeyCode.A | KeyCode.CtrlMask)]
	[InlineData ("Alt-A-Ctrl", KeyCode.A | KeyCode.CtrlMask | KeyCode.AltMask)]
	public void TryParse_ShouldReturnTrue_WhenValidKey (string keyString, Key expected)
	{
		Key key;
		Assert.True (Key.TryParse (keyString, out key));
		Assert.Equal (((Key)expected).ToString (), key.ToString ());
	}

The reason why this is happening is because the InlineData can't be used to pass a class to pa parameter. If we use [InlineData ("a", new Key (KeyCode.A))] will throw the "An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type UnitTests \gui-cs\Terminal.Gui\UnitTests\Input\KeyTests.cs".
To pass a class to a parameter we need to use a class test inheriting from a IEnumerable, IEnumerable<object [] and yield return new object [].

But in my opinion we don't need to pass the parameter as Key and only pass as KeyCode parameter, because KeyCode can be casted to Key. The following unit test also pass and it's possible to debug too.
	[InlineData ("A-Ctrl", KeyCode.A | KeyCode.CtrlMask)]
	[InlineData ("Alt-A-Ctrl", KeyCode.A | KeyCode.CtrlMask | KeyCode.AltMask)]
	public void TryParse_ShouldReturnTrue_WhenValidKey (string keyString, KeyCode expected)
	{
		Assert.True (Key.TryParse (keyString, out Key key));
		Key expectedKey = (Key)expected;
		Assert.Equal (expectedKey.ToString (), key.ToString ());
	}

	[InlineData (KeyCode.CharMask, '\0')]
	[InlineData (KeyCode.SpecialMask, '\0')]
	public void AsRune_ShouldReturnCorrectIntValue (KeyCode key, Rune expected)
	{
		var eventArgs = new Key (key);
		Assert.Equal (expected, eventArgs.AsRune);
	}

struct types cannot be passed as parameter if we want to debug, so it's better to pass the Rune parameter as uint and then cast it to Rune.
	[InlineData (KeyCode.CharMask, '\0')]
	[InlineData (KeyCode.SpecialMask, '\0')]
	public void AsRune_ShouldReturnCorrectIntValue (KeyCode key, uint expected)
	{
		var eventArgs = new Key (key);
		Rune expectedRune = (Rune)expected;
		Assert.Equal (expectedRune, eventArgs.AsRune);
	}

Not 100% sure the char cast operator is correct. We should dig in.
However the issue BDisp raises I did explore. In my 3rd attempt at this I decided not having to update as many unit tests as possible was important. So I tried to craft the operators (and constructors) to balance that.
I think having the unit tests depend on "ToString" and "TryParse" is an ideal long term solution as it makes the tests the most readable.

Not 100% sure the char cast operator is correct. We should dig in.

No it isn't because isn't considering code points grater than 0xFFFF which is the max value of the char type. I think we should consider uint or int.

However the issue BDisp raises I did explore. In my 3rd attempt at this I decided not having to update as many unit tests as possible was important. So I tried to craft the operators (and constructors) to balance that.

I already changed many tests with the KeyCode on the fix I'm working related to the VKPacketSimulator which there is improvements on this matter.

I think having the unit tests depend on "ToString" and "TryParse" is an ideal long term solution as it makes the tests the most readable.

You're absolute right.

Or, put another way: for test inlinedata params, use KeyCode or string, never Key.

You're also absolute right. 😃

No it isn't because isn't considering code points grater than 0xFFFF which is the max value of the char type. I think we should consider uint or int.

Solution may be as simple as having both char and uint cast operators? (assume that is allowed).

Solution may be as simple as having both char and uint cast operators? (assume that is allowed).

Not really. Well this is really ambiguous, because the KeyCode.F1 has no representation as Rune, like the KeyChar from a ConsoleKeyInfo, which is more or less this:
KeyChar='\0'
Key=ConsoleKey.F1

As it's returning the AsRune.Value the value will always be equal to 0. For the KeyCode.A it's returning 97 which is the representation of 'a' character. The solution maybe the following:
public static explicit operator uint (Key kea) => (uint)kea.KeyCode;
Do you both agree?

That makes sense to me.

Solution may be as simple as having both char and uint cast operators? (assume that is allowed).

Maybe we should avoid to cast to char although is allowed, because it could return a value which does not represent the real value of the Key, because KeyCode is a flagged enum handling high values to allow having ConsoleKeyInfo's KeyChar, ConsoleKey and modifiers in only one Key representation. Also it can be cast from uint to char easely.

Even better is using (Rune)(uint)Key because we are supporting Rune and not only char.

@tig what tis do? I also see this on other places. You are excluding the KeyCode.Space from the wch if lower than or equal to 'z' which is wrong and lands to unexpected results.
			else if (wch <= 'z') {
				k = (KeyCode)wch & ~KeyCode.Space;
			}

@tig what tis do? I also see this on other places. You are excluding the KeyCode.Space from the wch if lower than or equal to 'z' which is wrong and lands to unexpected results.

			else if (wch <= 'z') {

				k = (KeyCode)wch & ~KeyCode.Space;

			}

Without context it's hard to say. It may be a leftover I missed.

No it isn't because isn't considering code points grater than 0xFFFF which is the max value of the char type. I think we should consider uint or int.

Solution may be as simple as having both char and uint cast operators? (assume that is allowed).

This is the way. At least char, for sure.
TerminalGuiDesigner has 53 tests broken by the changes to Key no longer consistently working with casts from char, due to case changes.
Test code, for reference, since Terminal.Gui likely needs similar test cases, since this is largely a test of Terminal.Gui behavior:
    [Test]
    public void HandleKey_AddsExpectedCharactersToView_AsciiAlphanumeric<T>( [ValueSource( nameof( Get_HandleKey_AddsExpectedCharactersToView_AsciiAlphanumeric_TestViews ) )] T testView, [ValueSource( nameof( GetAsciiAlphanumerics ) )] char k )
        where T : View
    {

        KeyMap? keyMap = null;
        Assume.That( () => keyMap = new(), Throws.Nothing );
        Assume.That( keyMap, Is.Not.Null.And.TypeOf<KeyMap>() );

        KeyboardManager? mgr = null;
        Assert.That( () => mgr = new( keyMap! ), Throws.Nothing );
        Assert.That( mgr, Is.Not.Null.And.TypeOf<KeyboardManager>() );

        Assume.That( testView, Is.Not.Null.And.InstanceOf<T>() );

        Assume.That( mgr, Is.Not.Null.And.InstanceOf<KeyboardManager>() );

        Design d = Get10By10View();
        Assume.That( new AddViewOperation( testView, d, "testView" ).Do() );
        testView.SetFocus();

        Assert.That( () => mgr!.HandleKey( testView,  (Key)k), Throws.Nothing );

        Assert.That( testView.Text, Is.Not.Null );
        Assert.That( testView.Text[ ^1 ], Is.EqualTo( k ) );
    }

    private static IEnumerable<char> GetAsciiAlphanumerics( )
    {
        for ( char charValue = char.MinValue; charValue < char.MaxValue; charValue++ )
        {
            if ( char.IsAsciiLetterOrDigit( charValue ) )
            {
                yield return charValue;
            }
        }
    }

The last line of the test will fail on any character that would have required a .WithShift under the new design. Cast operators to handle the char conversions I think would fix that up.

@dodexahedron can you convert it to xunit please?. Thanks.

It's TGD specific because it is testing the KeyMap and KeybooardManager, and involves other TGD-specific classes.
It's just for reference of how it breaks.
The last line of the test method and the line two above that are the most interesting for you. After having handled a key event, cast from a char, (third line from bottom), it then checks the last character in the view (last line). For anything requiring a shift (however that is defined) it will be broken.

Basically, you probably want the helper method below it and then a proper test in Terminal.Gui would need to ensure the round trip from char to Key to char works without change.

Take a look on the https://github.com/gui-cs/Terminal.Gui/pull/3078/files#diff-b06483ffe0f3297a11416013982e6ceb777c6a35cbcfec41afe180eaa5b15132 where I have some unit tests that probe it's working better. Thanks.

I would strongly suggest using whatever equivalent xUnit has to the generation of all of the possible test cases, or else just testing them all inside a single test method, if that's not possible. The possibilities for problematic input handling are vast, when considering different keyboard layouts and cultures, which make the concept of a letter differing solely by the shift key non-portable. For the test in the context of Terminal.Gui to be valid, it needs to at least handle all printable 8-bit characters and whitespace, along with control characters and function keys.

It covers more than 124 cases and I think it would work with some cultures.

I think you might misunderstand my meaning, there.
I mean to say they are not exhaustive tests. Each one spot-checks a few inputs, and the inputs checked are not consistent. The sample I showed covers all 62 alphanumeric characters in US english, across two possible View types that have a Text property. (thus 124). JUST for the case of round-tripping the char value from char to Key to char. 52 of those fail (26 for each View, with those 26 being every capital letter). It is therefore a proof that all of those characters round-trip as expected, which they used to, but now do not.
A specific set of behaviors should be defined, and then a test theory should test that behavior and ensure that it is consistent across the entire input domain or at least a reasonable subset of it (such as 8-bit characters, as mentioned before).
Non-exhaustive tests result in a lot of things slipping through the cracks (for example, I've discovered plenty of subtle things to fix in TGD as I've been formalizing the tests).

I pointed out one example of a problematic test in #3078 , to provide an example and context for this discussion.

Just stepping back for a moment, I think this is an important question to ask:
Why are we using our own types for this? This is a solved problem in the base class library of dotnet with standard use and representation, is it not? Why create an alternative that bucks the convention and creates the burden of testing and maintenance for it?

Also, it is important to note that caps lock also makes the "WithShift" behavior potentially odd.
ConsoleKeyInfo already handles that.
Here's the output from the same code as above but with caps lock on:
Key: A | Modifiers: None | Unicode Value: 65(0x41) | Resulting Character: A
Key: A | Modifiers: Shift | Unicode Value: 97(0x61) | Resulting Character: a
Key: A | Modifiers: Alt | Unicode Value: 65(0x41) | Resulting Character: A
Key: A | Modifiers: Alt, Control | Unicode Value: 0(0x0) | Resulting Character:
Key: A | Modifiers: Alt, Shift, Control | Unicode Value: 0(0x0) | Resulting Character:
Key: A | Modifiers: Alt, Shift | Unicode Value: 97(0x61) | Resulting Character: a

Why are we using our own types for this?

ConsoleKeyInfo is cumbersome, it lacks many keys and has ambiguous entries
e.g. the Oem keys.
There are environmental issues too, for example some deployments will see
only 'virtual key' and the unicode char as input.
Terminal.Gui does a lot of standardisation at the console driver level.
I don't think changing to core types would improve the library user
experience.  Current issue just seems to be tied up with the use of
shift/capital letters.
On Sun, 24 Dec 2023, 03:22 dodexahedron, @.***> wrote:

Also, it is important to note that caps lock also makes the "WithShift"
behavior potentially odd.
ConsoleKeyInfo already handles that.
Here's the output from the same code as above but with caps lock on:
Key: A | Modifiers: None | Unicode Value: 65(0x41) | Resulting Character: A
Key: A | Modifiers: Shift | Unicode Value: 97(0x61) | Resulting Character: a
Key: A | Modifiers: Alt | Unicode Value: 65(0x41) | Resulting Character: A
Key: A | Modifiers: Alt, Control | Unicode Value: 0(0x0) | Resulting Character:
Key: A | Modifiers: Alt, Shift, Control | Unicode Value: 0(0x0) | Resulting Character:
Key: A | Modifiers: Alt, Shift | Unicode Value: 97(0x61) | Resulting Character: a
—
Reply to this email directly, view it on GitHub
https://github.com/gui-cs/Terminal.Gui/issues/3071#issuecomment-1868422919,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHO3C5HSCM42GH4CP3INU5LYK6NYVAVCNFSM6AAAAABBARZAJ6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRYGQZDEOJRHE
.
You are receiving this because you authored the thread.Message ID:
@.***>

@tig what tis do? I also see this on other places. You are excluding the KeyCode.Space from the wch if lower than or equal to 'z' which is wrong and lands to unexpected results.
			else if (wch <= 'z') {

				k = (KeyCode)wch & ~KeyCode.Space;

			}

Without context it's hard to say. It may be a leftover I missed.

Here the same. It's limiting the caps lock to only characters lower or equal to Z. If caps lock is pressed then the shift key must be added to all characters.
			if (((keyInfo.Modifiers == ConsoleModifiers.Shift) ^ (keyInfoEx.CapsLock))) {
				if (keyInfo.KeyChar <= (uint)KeyCode.Z) {
					return (KeyCode)((uint)KeyCode.A + delta) | KeyCode.ShiftMask;
				}
			}

If caps lock is pressed then the shift key must be added to all characters.

This is not correct.
CapsLock does NOT apply to D1-D9, <, etc...

If caps lock is pressed then the shift key must be added to all characters.

This is not correct.
CapsLock does NOT apply to D1-D9, <, etc...

You are right, my bad. But it's only handling characters from A to Z and there is no need to add the conditional if (keyInfo.KeyChar <= (uint)KeyCode.Z) because the KeyChar will never be 'a' if caps lock is enabled. Right?

If caps lock is pressed then the shift key must be added to all characters.

This is not correct.
CapsLock does NOT apply to D1-D9, <, etc...

You are right, my bad. But it's only handling characters from A to Z and there is no need to add the conditional if (keyInfo.KeyChar <= (uint)KeyCode.Z) because the KeyChar will never be 'a' if caps lock is enabled. Right?

Yeah, i think so.

This will get the same KeyChar e.g. Ç (199) will return Ç (199) or if it's Z (90) will return Z (90) anyway. I think you did want if (keyInfo.Modifiers == 0 && ((KeyCode)((uint)keyInfo.KeyChar) | KeyCode.Space) == 0) but that will change the real KeyChar and we don't want that.
			if (keyInfo.Modifiers == 0 && ((KeyCode)((uint)keyInfo.KeyChar) & KeyCode.Space) == 0) {
				return (KeyCode)((uint)keyInfo.KeyChar) & ~KeyCode.Space;
			}

It occurred (and still does) to me that for Key, the KeyCode property could be immutable. I can't think of any case where after a Key object is created that KeyCode needs to be changed.
Thus, in addition to changing the helper "constants" (Key.X) to be get-only, we can make KeyCode "get; init".
This further reduces the chance of a static issue and makes the intent even more clear.

Just stepping back for a moment, I think this is an important question to ask:
Why are we using our own types for this? This is a solved problem in the base class library of dotnet with standard use and representation, is it not? Why create an alternative that bucks the convention and creates the burden of testing and maintenance for it?

Well we really don't want and we aren't re-event the base class library. What we are doing is using only only Key to manage all the keys combinations at once. With ConsoleKeyInfo you have to check if KeyChar is what you want and if Modifiers is what you want and probably if the ConsoleKey is what you want. With the Key class we have all the information at once. e.g. To check if the A was pressed with the Ctrl key, using the  ConsoleKeyInfo you have to check if KeyChar == 'A' and if Modifiers == ConsoleModifiers.Control. Using the Key class you only need to check if key == KeyCode.A | KeyCode.Ctrl. We are trying to be consistent with the dotnet library.

A note on cast. I noticed in another pr from BDisp, he changed the api doc comment to say "the cast is never lossy".
This is not right.
Casting a Key to anything other than a Key is definitely lossy. For example whatever Key.Handled is set to is lost in the cast. This is why those operators are "explicit" and not "implicit".

A note on cast. I noticed in another pr from BDisp, he changed the api doc comment to say "the cast is never lossy".

I only was referring about cast from uint to Rune. If the character is a surrogate pair and you cast to char then the "cast is lossy" because a char is 16 bits length and a surrogate pair is a 32 bits.

I can't think of any case where after a Key object is created that KeyCode needs to be changed.

Sometimes in TGD I change the key e.g. when Enter is pressed in a menu I add another menu item and change the KeyCode to Down so that when it finishes resolving, the new menu item is highlighted.
But I'll grant you its a pretty obscure use case and I currently make do with reflection so would be fine with immutableness.  You can even call set on a property with no setter at all with this lovely hacky bit of reflection: https://stackoverflow.com/a/40917711/4824531
private void ChangeKeyTo(Key keystroke, Key newKey)
{
      Type t = typeof(Key);
      var p = t.GetProperty("KeyCode") ?? throw new Exception("Property somehow doesn't exist");
      p.SetValue(keystroke, newKey.KeyCode);
}

If caps lock is pressed then the shift key must be added to all characters.

This is not correct.
CapsLock does NOT apply to D1-D9, <, etc...

You are right, my bad. But it's only handling characters from A to Z and there is no need to add the conditional if (keyInfo.KeyChar <= (uint)KeyCode.Z) because the KeyChar will never be 'a' if caps lock is enabled. Right?

If caps lock is on and shift is also pressed, a yields a.

ConsoleKeyInfo is cumbersome, it lacks many keys and has ambiguous entries e.g. the Oem keys. There are environmental issues too, for example some deployments will see only 'virtual key' and the unicode char as input. Terminal.Gui does a lot of standardisation at the console driver level. I don't think changing to core types would improve the library user experience. Current issue just seems to be tied up with the use of shift/capital letters.

Coolio.
Then I think a good starting point to resolving this type of issue is to write a test that round-trips all possible raw keyboard inputs (at least that are representable by Key) to Key and back and ensures value equality of all fields/properties of the round-tripped input. Might smoke out other subtle things as well.

If caps lock is on and shift is also pressed, a yields a.

You are absolute right and all drivers are doing the right behavior if you try it.

Right.
The point is that caps lock and shift are an XOR on the characters they both apply to.
Is char.IsLetter a sufficient test for that particular condition?

Only the WindowsDriver handles caps lock and here where it's handled
https://github.com/BDisp/Terminal.Gui/blob/a938295eeb98950f7a65b4afb5377e1210c9d6a6/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs#L1009-L1013. The others drivers the terminal already provide the right character.

Even if that provides the right output character, I'm not so sure that's an appropriate thing to do.
Applying a shift mask because caps lock is on fundamentally changes the meaning of the input. Whether caps lock is on or off, Shift+A is still Shift+A, for example, and A is still A (ie no Shift key pressed). All that changes is the char represented by the operation - not the actual input.
Line 1011 changes that by always applying shift mask if the result is a capital, and that's not correct.
Where this would be a problem is in key binds. If something were bound to shift+A, having caps lock on would be interpreted as shift+A, because of line 1011.

If lower case letters existed when computer keyboard standards were established you'd be right about correctness.
But they didn't. ASCII 65 == VK_A which is upper case 'A'. On non-us keyboards the keys between VK_A and VK_Z are not always A..Z. But they always result in a lower case char unless shift is pressed or caps lock is on.
We could choose to make KeyCode.A be KeyCode.a, but we already went down that path and it led to having BOTH KeyCode.A and KeyCode.a which just moved the complexity and masked it with more.
So... terminal.gui's low level encoding of keys (KeyCode) special -cases the A..Z keys as is well documented in the current v2_develop branch. The high-level abstraction of Key carries this forward with the Key.A..Z helper properties.
Users are free to use neither of these and just do new Key('a') or new Key('A') if they want.

There are limitations placed by console protocol.  We don't have hardware
access, only what the console terminal emulator sends.
So for example there is no key down, key up sent by Linux terminals.  If
user pastes into terminal e.g. ctrl+shift+v - we don't see that either only
a sequence of characters that were pasted.
So Shift+A is the same as CapsLock A; is the same as pasting a capital A.
We just have to do the best we can as a library to standardise the input to
a common denominator across all the drivers and make it as easy to consume
as possible for API users.
On Sun, 24 Dec 2023, 21:29 BDisp, @.***> wrote:

Only the WindowsDriver handles caps lock and here where it's handled
https://github.com/BDisp/Terminal.Gui/blob/a938295eeb98950f7a65b4afb5377e1210c9d6a6/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs#L1009-L1013.
The others drivers the terminal already provide the right character.
—
Reply to this email directly, view it on GitHub
https://github.com/gui-cs/Terminal.Gui/issues/3071#issuecomment-1868596613,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHO3C5EQWYBUEWVSUKQG76TYLCNDLAVCNFSM6AAAAABBARZAJ6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRYGU4TMNRRGM
.
You are receiving this because you authored the thread.Message ID:
@.***>

We are mapping the correct ConsoleKeyInfo into KeyCode. Remember that's A and a belong both to the ConsoleKey.A which is the upper case. The difference is that A have the shift modifier and the a don't. I admitted that my PR may have some incorrect code but the main code satisfy the needs.

So Shift+A is the same as CapsLock A; is the same as pasting a capital A.

This is fundamentally not true, though. CapsLock + Shift+A is not capital A, but shift was, in fact, pressed. It alters fundamental and relatively consistent behavior that users expect, if all capital letters are unconditionally OR'd with ShiftMask.

If lower case letters existed when computer keyboard standards were established you'd be right about correctness.
But they didn't. ASCII 65 == VK_A which is upper case 'A'. On non-us keyboards the keys between VK_A and VK_Z are not always A..Z. But they always result in a lower case char unless shift is pressed or caps lock is on.
We could choose to make KeyCode.A be KeyCode.a, but we already went down that path and it led to having BOTH KeyCode.A and KeyCode.a which just moved the complexity and masked it with more.
So... terminal.gui's low level encoding of keys (KeyCode) special -cases the A..Z keys as is well documented in the Key docs in current v2_develop branch (I just noticed the KeyCode docs are incorrect as they say A..Z mean shifted). The high-level abstraction of Key carries this forward with the Key.A..Z helper properties.
Users are free to use neither of these and just do new Key('a') or new Key('A') if they want.

Here's the code in question:
if (((keyInfo.Modifiers == ConsoleModifiers.Shift) ^ (keyInfoEx.CapsLock))) {
	//if (keyInfo.KeyChar <= (uint)KeyCode.Z) {
	return (KeyCode)((uint)KeyCode.A + delta) | KeyCode.ShiftMask;
	//}
}

It is a lossy conversion and has side-effects.
Another example: If I have caps lock on and paste a string whose contents is "v" while holding down control, what happens?

It seems you think we are changing the original keys from terminal and we are not. It's better present the bugs by showing trough a unit test.

It's off-topic of the original issue, anyway, as it was only incidentally related.
I had a sample demonstrating what I was originally getting at, last night, but I'll have to re-create it. I don't think I'm on the right/same track as what I was dealing with at that point (or could have missed something then in the first place), so I think I'm creating unnecessary confusion at the moment. I'll hide the off-topic tangent here for now until I figure out WTH I was specifically hitting and file a separate issue, if it really is relevant. Apologies for the de-rail.

Users are free to use neither of these and just do new Key('a') or new Key('A') if they want.

That constructor doesn't currently exist, though it would be better than the cast path from char to Key, if you ask me, since calling a constructor is a pretty intentional act.

Still a WIP (Merry Christmas!) but I hope this helps!
https://github.com/gui-cs/Terminal.Gui/pull/3089


Update stable version in repo from 1.0.4 to 1.1.0

Think about update stable version to 1.1.0
Version: stable=1.0.4 (1189 days old) => latest=1.1.0 (29 days old)
Installs: stable=61 (83.56%), latest=4 (5.48%), total=73
Click to use developer portal
Click to edit
Do not close this issue manually as a new issue will be created if condition for update still exists.
Please drop a comment if any reason exists which blocks updating to version 1.1.0 at this time.
Note: This is an automatically generated message and not personally authored by bluefox!
@mcm1957 for evidence

This issue seems to be outdated.
This issue suggests to update the stable version of this adapter to 1.1.0 but the current stable version is already 1.1.0.
So this issue should be closed.
@mcm1957 for evidence


UENUM/EPNUM register stops working sometime after enable()

In the process of tracking down why I can't send/receive packets via other endpoints, I've discovered that writes to EPNUM don't stick sometimes. If you read the value of EPNUM immediately after writing to it and compare to the value you wrote, it might not be the same.
I've been tracing the code and it seems to work fine for a while and then stops working at some point. Some data points:

It works just fine while configuring endpoints near the start of the program, in enable() (which is called when the UsbDevice is constructed, finalizing endpoint allocations).

It stops working sometime before the USB reset signal (i.e. before the first EORSTI interrupt), e.g. you may notice it fail in poll when the endpoint interrupt flags are being checked for pending data.

Polling the endpoint interrupt flags does work at least once before failing

When it fails, if you read the value of EPNUM before and after the write, the before/after values are always equal, and they might always be zero (I may have encountered a situation where they were non zero but I don't quite remember)

So it turns out there are a couple situations where this might happen.
The one that I've identified is that when FRZCLK is set, e.g. when the device is in the suspend state.
There seem to be other transient cases where that fails, but ignoring those, it seems to work the rest of the time.


When I add Rabbitmqs' userName and password ,the rabbitmq container can't work in my application

version 8.5

how to set the rabbitmq ports to my aspires' container,like this


Header Referer

Hi, I got an issue with header referer using your library.. can you help me? cause I can't seem to use the referer, like the referer is not working.. oh btw I'm using the library that you modified for me, I'll send it to you if you need to..

Please provide the version of PLPlayerKit SDK and related usage code for referer.


feat(dynamic-plugins): add wrappers for frontend plugins

Description
Add a dynamic plugin wrapper for frontend plugins we consume from upstream.
Similar to the backend plugins, with the only change that we do not need to additional code/interface, we just reexport the original plugin with additional metadata in package.json.
None of these plugins are consumed by the instance by default. This just creates all the necessary wrappers.
Which issue(s) does this PR fix
N/A
PR acceptance criteria
Please make sure that the following steps are complete:

[x] GitHub Actions are completed and successful
[x] Unit Tests are updated and passing
[x] E2E Tests are updated and passing
[x] Documentation is updated if necessary (requirement for new features)
[x] Add a screenshot if the change is UX/UI related

How to test changes / Special notes to the reviewer

Please hold. Will require rebase on top of https://github.com/janus-idp/backstage-plugins/pull/901


Update pymc3_lin_reg_ex.ipynb

This is just the debug output from a notebook and if anything should be removed. I'm leaving it for now since it's not causing any problems.

Thanks david
On Dec 6, 2017 2:43 AM, "David Stück"<EMAIL_ADDRESS>wrote:

This is just the debug output from a notebook and if anything should be
removed. I'm leaving it for now since it's not causing any problems.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/evidation-health/ContinuousTimeMarkovModel/pull/29#issuecomment-349443284,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AfDCJZSzwV17Uc4bDhA5ZByoChSIgnuaks5s9bIPgaJpZM4Q28bU
.


Add hasRepresentation

Generalizes brick:timeseries to allow other kinds of digital representations of Points. So far I have done brick:timeseries and brick:BACnetRepresentation. The former is the existing data model; the latter is borrowed from the bacnet-shacl effort that @JoelBender is developing.
@prefix bldg: <urn:example#> .
@prefix brick: <https://brickschema.org/schema/Brick#> .
@prefix bacnet: <http://data.ashrae.org/bacnet/2020#> .
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

bldg:sample-device a bacnet:BACnetDevice ;
    # TODO: need rest of address from bacnet-shacl
    bacnet:hasPort [ a bacnet:Port ] .

bldg:ts1 a brick:Zone_Air_Temperature_Sensor ;
    brick:hasUnit unit:DEG_C ;
    brick:BACnetRepresentation [
        bacnet:object-identifier "analog-value,5" ;
        bacnet:object-name "BLDG-Z410-ZATS" ;
        bacnet:objectOf bldg:sample-device ;
    ] ;
    brick:timeseries [
        brick:hasTimeseriesId "756e1623-914f-4415-9000-b1b10ce8f5c9" ;
        brick:storedAt "postgres://<IP_ADDRESS>:5432/mydata" ;
    ] ;
.

Cool!  :+1: I have to remember to put in bacnet:objectOf in my other samples, I've been only using bacnet:hasObject.  As a complete aside, I've been storing timeseries data in Redis so the URL changes to redis://host:port/db.

I wonder if we need to think about how to differentiate between multiple "hasRepresentation"s for a point. There's good reason to have this - in the example, you might have present-value data in the BACnet representation, while the historic data is in the timeseriesDB. Should we stick a property into the blank nodes to say something about what range that representation covers (or make the blank nodes named nodes so we can put a property in the point entity to say what range/liveliness is handled by which representation?)
I think this will matter for BACnet, because the BACnet object could be trended, and the trendlog is a separate BACnet object, so maybe we have two hasRepresentation properties, one for the object and one for the trendlog of the object? I suppose that depends on how @JoelBender is handling trendlogs in the BACnet shcacl

You are correct, in BACnet-shacl the thing and an associated trend log object are distinct beasts, so they are separate objects.  The Log_DeviceObjectProperty property is a BACnetDeviceObjectPropertyReference so the two objects can be in separate devices.  With a snapshot of a building it's not too terrible to query the graph to see if a point is being trended someplace.
In 12.25.14 Log_Buffer it is written:

The log buffer is not network accessible except through the use of the ReadRange service, in order to avoid problems with
record sequencing when segmentation is required.

BACnet-shacl has a description of what a BACnetLogRecord would look like if it was serialized as RDF, so it can be included:
[] bacnet:timestamp [
            bacnet:date "2021-09-09"^^xsd:date ;
            bacnet:time "23:04:00.96"^^xsd:time
        ] ;
        bacnet:log-datum [ bacnet:real-value "75.3"^^xsd:float ]
    .

...but keeping very long lists of content like this is really not space/time friendly, so I have not included them in my "snapshots" of an object.  Lists and arrays in BACnet-shacl are rdf:first/rdf:rest/rdf:nil lists which are only slightly tolerable for device-address-binding lists, tag lists, and event schedules.
I remember hearing about a proprietary extension to SPARQL to query another SQL-like database/table that wasn't in the triple/quad store but I can't find the reference.  GraphQL is being presented as a way to collect both graph and relational database content together, essentially throwing the problem "over the wall."
I would continue with what you have, and leave the problem of getting data from BACnet into the timeseries archive (via polling, COV notification, or copying data from a Trend Log Object) an application layer problem.

How is a BACnetDeviceObjectPropertyReference represented in RDF?
If the Log_DeviceObjectProperty is on the Trend Log object, that means in order to find a trend log, you have to find the Brick sensor you want, find the BACnet representation object (which is a blank node in the example above but is of type BRICK.BACnetReference), and then find TrendLogs that have a Log_DeviceObjectProperty that points back to that BACnet object.
I'm worried join between the Log_DeviceObjectProperty in the TrendLog back to the BRICK.BACnetReference object.
Or, alternatively, we don't try to join back through the Log_DeviceObjectProperty and just have another Brick:hasRepresentation property in the bldg:ts1 entity that points at the bacnet:BACNetTrendLog entity (which we may need, because in Michael Newman's book it's mentioned that for a TrendLog, the Log_DeviceObjectProperty is optional, if the device is tracking something that doesn't correspond to another BACnet object?)
(And then there's TrendLogMultiple, too)
For reading data, I think we're all on the same page - the Brick model has the info to find a point's value for BACnet, but we expect the application to have a BACnet library linked into it (or whatever the equivalent of linking is in your favorite language) and then use that BACnet library to go and fetch data. (But we should talk about what it would look like if we're updating 'present values' in the Brick graph, even though that's usually probably a bad idea)

How is a BACnetDeviceObjectPropertyReference represented in RDF?

[] bacnet:device-identifier "device,123" ;
    bacnet:object-identifier "analog-value,1" ;
    bacnet:property-array-index "3"^^xsd:nonNegativeInteger ;
    bacnet:property-identifier "present-value" .

The property array index is only used when the property is an array, and if it is omitted then the entire array is being referenced.  The device identifier is also optional and used when the object being referenced is in a different device, for example, if an Event Enrollment Object references a Analog Value Object in the same device then the device-identifier would be omitted.
Note that the device identifier is an object identifier as a string literal, not an RDF link to the Device Object instance in a device or to the Device itself.  But that's fine, every device has one and only one Device Object so ?device bacnet:hasObject [ bacnet:object-identifier "device,123" ] has only one answer in a BACnet internetwork.

I'm worried join between the Log_DeviceObjectProperty in the TrendLog back to the BRICK.BACnetReference object.

I think there are enough data pieces in these components to make that "join" but I don't think that you would want to do it so often that it would justify "materializing" the relationship like giving it a special predicate.  There are two questions I think you are asking (and I've been calling these DOPRs 'cause it takes to long to type):

Is this thing that has a DOPR, being trended by some BACnet device?  If it is, how do I get to the trend data?
Is this DOPR that is in my BACnet network referenced by something in my Brick graph?  If it is, what kind of thing is it?

...if the device is tracking something that doesn't correspond to another BACnet object?

Correct, it's footnote 8, This property is required if, and shall be present only if, the monitored property is a BACnet property.  You can have trend logs of all kinds of other "properties" in your device like performance metrics that do not have a corresponding BACnet object/property to read them.
I hadn't considered the idea that you would want to map any trend data in a BACnet device to something in Brick.  A DOPR is good for ReadProperty[Multiple], but something like:
bldg:ts1 a brick:Zone_Air_Temperature_Sensor ;
    brick:BACnetTrend [
        bacnet:device-identifier "device,123" ;
        bacnet:object-identifier "trend-log,6" ;
    ]
.

I haven't seen any Trend Log Multiple objects, so this is a wild stab in the dark...
bldg:ts1 a brick:Zone_Air_Temperature_Sensor ;
    brick:BACnetTrend [
        bacnet:device-identifier "device,123" ;
        bacnet:object-identifier "trend-log-multiple,2" ;
        bacnet:property-identifier "log-device-object-property" ; # optional?
        bacnet:property-array-index "3"^^xsd:nonNegativeInteger ;
    ]
.

Maybe that can act as a "source reference" for the data that is otherwise in the contents referenced by the brick:timeseries predicate, or perhaps that is the contents of the trend reference!  Muahaha...
bldg:ts1 a brick:Zone_Air_Temperature_Sensor ;
    brick:timeseries [
        a brick:BACnetTrendReference ;
        bacnet:device-identifier "device,123" ;
        bacnet:object-identifier "trend-log-multiple,2" ;
        bacnet:property-identifier "log-device-object-property" ; # optional?
        bacnet:property-array-index "3"^^xsd:nonNegativeInteger ;
    ]
.

But we should talk about what it would look like if we're updating 'present values' in the Brick graph, even though that's usually probably a bad idea.

This is dancing so close together with 223 that they'd have to be separated in middle school:
bldg:ts1 a brick:Zone_Air_Temperature ;
    a s223:ObservableQuantifiableProperty ;
    s223:hasSimpleValue "72.0"^^xsd:float ;
.

And maybe overkill for Brick, designed for the odd case where you want to have the same value with multiple units or coupled with a timestamp, going back to the log record concept:
bldg:ts1 a brick:Zone_Air_Temperature ;
    s223:hasValue [
        a s223:Value ;
        s223:hasSimpleValue "72.0"^^xsd:float ;
        s223:hasUnits qudt:DEG_F .
        s223:hasTimestamp "2021-09-10T23:05:02.957825"^^xsd:dateTime .
    ]

From Office Hours discussion:

should include time ranges on representations that have historical data:

have start/stop time; stop time is optional to indicate that data is still being inserted
start time could also be optional?

need current-value: true property? Or is this assumed you can get current value if there are no annotations about historical data?
need preferred representation property?
better name than hasRepresentation?:
- hasDataSource: suggests read-only
BACnetObjectRepresentation and BACnetTrendLogRepresentation as two separate objects, using the structures proposed above:

trend log requires additional properties above BACnetObjectRepr: needs to distinguish between trend log and trend log multiple (look at object-identifier field for the object type?)

the BACnet scan that creates the RDF graph would take care of stitching together ObjectReprs and TrendLogReprs for the same entity:

could be part of the scan or more likely a post-processing pass that is specific to Brick

there are trend logs that are not related to BACnet objects. Trend logs can also represent the data from a Modbus device which itself is not in BAcnet


Cannot work due to the error of json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

I installed by conda and tried to run by process(config = path_to_config.json, input_type="single"...
But it cannot work due to the error below.

raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

my config.json was written by this
{
"input": "F:/",
"output": "F:/",
"temp": "F:/",
"pipeline": "F:/pipeline.json"
}
Please tell me how to solve it.
Thank you.

Hi @OnishiMasanori,
I see you are processing a single file but the input value in your config file points to the root of F:, put the path of the file you want to process instead.
Moreover, I advice you to create separate folders for your input, output and temp files e.g. create an input folder to store your input files, an output folder for your output files and a temp folder for your temp files.

It would also be nice if I could see the content of your pipeline.json file

Thanks for your quick reply.

write the filepath for input
create a empty folder for temp
succeeded to process a little bit.

However, now I'm facing another error.

File "stringsource", line 2, in pdal.libpdalpython.PyPipeline.reduce_cython
TypeError: no default reduce due to non-trivial cinit

In temp folder, "temp__-274_-309.pickle" was made, but the file size is 0 byte.
Pipeline.json is simple with only read and write.
[{
"type": "readers.las",
"filename": "C:/inputfilepath/input.las"
},
{
"type": "writers.las",
"filename": "C:/outputfilepath/output.las"
}]
Other infomation
Input file size: 2GB
Python: 3.7 (anaconda)
pdal process including readers.las can work when I apply in simple pdal process of pipeline.execute().
other parameter settings such as n_workers, threads_per_worker cannot solve the problem.
Thanks for your advice.

@OnishiMasanori Can I see your config file ? And the command you wrote to launch pdal-parallelizer ?
Also, you don't need to specify "filename" in pdal's readers and writers. pdal-parallelizer will set these options for you.


Adding stat icons

I now have high quality versions of all stat icons and other UI elements of the game, including level star (https://github.com/martincarrera/clash-royale-api/issues/59) and other useful graphics.
I will be uploading them and adding a pull request but we need to agree on where to upload them.we can create a folder called icons or misc and upload them all in there or create a dir called stats for stat icons alone. and other icons to another directory.
opinions?

Hey! I think that we should create a folder with levels for the level stars, a stats folder for the stats icons and then if there are other UI elements, maybe a misc folder. But trying to always group the items in a separated folder if possible.
Thanks again @MaherFa!

I ended up putting stat icons in stats and the rest in ui, I'll be uploading ui graphics soon

Final pull (https://github.com/martincarrera/clash-royale-api/pull/75/commits/1d27efaf2e9da731cb3cc69016df433bf063d8b8)

Closed by #75.


Patch/content/primary => feature/body

merge Patch/content/primary => feature/body

Patch/content/primary => feature/body #13


Create submission_B5

rejected:B5
reason:account address not submitted, cannot verify on-chain baker update transactions

rejected:B5
reason:account address not submitted, cannot verify on-chain baker update transactions


Code uses emailDailyReportTo, documentation references emailDailyReportsTo

For the emailDailyReportTo setting, there is a mismatch between the EDStatic code reading setup.xml or environment variables (which references emailDailyReportTo) and the setup.xml documentation (which references emailDailyReportsTo).
EDStatic code reading emailDailyReportTo:
https://github.com/ERDDAP/erddap/blob/main/WEB-INF/classes/gov/noaa/pfel/erddap/util/EDStatic.java#L1843
Various documentation/comments referencing emailDailyReportsTo:
https://github.com/search?q=repo%3AERDDAP%2Ferddap emailDailyReportsTo&type=code
https://github.com/ERDDAP/erddapContent/blob/main/content/erddap/setup.xml#L56
https://github.com/ERDDAP/erddapContent/blob/main/content/erddap/setup.xml#L69
These should be aligned, or EDStatic should be adjusted to accept both the singular and plural.

I think making EDStatic accept both would be the better solution.

To confirm if I understand this:
In setup.xml the tag is emailDailyReportsTo but EDStatic is trying to get emailDailyReportTo instead, which I assume is a typo?
If that is the case then in this code here
  private static String getSetupEVString(
      ResourceBundle2 setup, Map<String, String> ev, String paramName, String tDefault) {
    String value = ev.get("ERDDAP_" + paramName);
    if (String2.isSomething(value)) {
      String2.log("got " + paramName + " from ERDDAP_" + paramName);
      return value;
    }
    return setup.getString(paramName, tDefault);
  }

setup.getString() would always return null since emailDailyReportTo does not exist in setup.xml file and only the ev.get() method is working.
Why don't we just update it to emailDailyReportsTo in this line
emailDailyReportToCsv =
          getSetupEVString(setup, ev, "emailDailyReportTo", ""); // won't be null

is it important to support both emailDailyReportsTo and emailDailyReportTo?

It would be good to support both emailDailyReportsTo and emailDailyReportTo. Users have their own setup.xml and some likely followed the documentation and set emailDailyReportsTo while some may have figured out the proper name is emailDailyReportTo.
The reason to support both is to not break folks current set up. Especially because this is a circumstance it's very easy to support both (read emailDailyReportTo and if that is not set, then read emailDailyReportsTo).

There is also the line
https://github.com/ERDDAP/erddap/blob/main/src/browser/gov/noaa/pfel/coastwatch/OneOf.java#L255
which I am not sure is something related or to be changed here

There is also the line https://github.com/ERDDAP/erddap/blob/main/src/browser/gov/noaa/pfel/coastwatch/OneOf.java#L255 which I am not sure is something related or to be changed here

That does not need to be changed. That was code to support an old feature that is not used.

Yes, this will be in the next release (2.26), which is targeted for late January.


MAID-2877 fix/validation: Improves error handling for malformed appInfo object passed to initialiseApp

Coverage decreased (-0.003%) to 95.479% when pulling 571e2fecd5b44fbe5d525d645c9246e1300fea9d on hunterlester:2877 into fe5dc54aa9c8a1c5dd71809b616f4a2353b598e8 on maidsafe:master.


Autocomplete function stops working when use the command "group_concat"

Description
DBeaver Universal Database Manager version <IP_ADDRESS>312241705. For MySQL MariaDB, the autocomplete function stops working, when comment a column using "/* */", or when use the command "group_concat".
DBeaver Version
community version <IP_ADDRESS>312241705
Operating System
Windows 11 64bits
Database and driver
My SQL MARIADB
Steps to reproduce
The autocomplete function stops working, when comment a column using "/* */", or when use the command "group_concat".
Additional context
No response

Hello. Shure..
#In this query the autocomplete function works fine
select
c.id,
c.name,
c.title,
c.updated
from contracts c
where date(c.updated) = date(sysdate())
;
/*
Using comments with asterisk and diagonal at the beginning, the autocomplete function stops working
*/
select
c.id,
c.name,
c.title,
c.updated,
c.name
from contracts c
where date(c.updated) = date(sysdate())
;
#The next query when detect the sentence "(select group_concat.." autocomplete stops working, it works again when comment with # group_concat sentence.
select
c.id,
c.name,
c.title,
c.updated,
c.name
,(select group_concat(case
when cash_given_amount > 0 and points_given_amount > 0 then 'Dinero y Puntos'
when points_given_amount > 0 then 'Puntos'
when cash_given_amount > 0 then 'Dinero'
end SEPARATOR ', ')
from order_products_rewards
where order_id = c.order_id
group by order_id) fdi
from contracts c
where date(c.updated) = date(sysdate())
;
All querys run fine, only the DBeaver autocomplete functions stops working..
From: MashaKorax @.>
Sent: jueves, 4 de enero de 2024 01:10 p. m.
To: dbeaver/dbeaver @.>
Cc: fizaza @.>; Mention @.>
Subject: Re: [dbeaver/dbeaver] DBeaver Universal Database Manager version <IP_ADDRESS>312241705. For MySQL MariaDB, the autocomplete function stops working (Issue #22336)
Hello, @fizazahttps://github.com/fizaza. Can you provide your script?
—
Reply to this email directly, view it on GitHubhttps://github.com/dbeaver/dbeaver/issues/22336#issuecomment-1877623490, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BFDR4XVZQVRAWSA4WVQDEATYM347XAVCNFSM6AAAAABBNESJLCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZXGYZDGNBZGA.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Thanks for your report!

@fizaza
Please try our latest version DBeaver 23.3.2 - autocompletion with multiline comments should be fixed

The issue roots are in the SEPARATOR ', ' part of the query

We should improve our parser to handle group_concat syntax better https://mariadb.com/kb/en/group_concat/

Thanks, I stay tuned..

Hi, I installed Dbeaver Community version <IP_ADDRESS>401211839, the autocomplete still doesn't work when I include GROUP_CONCAT sentence. I attach another example:
#The autocomplete function on this query doesn't work, if you comment   ",GROUP_CONCAT(.."   line, then works fine..
select
u.username
,u.lov_user_status
,GROUP_CONCAT(m.name ORDER BY m.name SEPARATOR ', ') modules
,u.created
,u.updated
,u.lov_user_type
,u.last_login_date
,u.lov_user_status
,u.blocked
#,um.id um_id, um.user_id um_user_id, um.module_id um_module_id
#select u.id userid, u.username, po.title puesto
from users u
left join users_modules um on um.user_id = u.id
left join modules m on um.module_id = m.id
where
u.lov_user_status = 'Active'
Group by u.id
;

The fix is not available in 23.3.3, it will be available in the next version 23.3.4


Upgrade dependencies in multiple steps

From easy to hard, from breaking to non breaking (that actually was breaking).

@SebCodesTheWeb what command do you run?
If I go into framework and run yarn test I get 382 test passing

I run yarn test...

Me and Oles have done some evening investigation. The problem could be broken up in two parts: 1. The test failing when upgrading dependencies, 2. Mocha not reporting the error. The criminal for (1) is framer-motion, more specifically v8.0.4. We don't know what happened, bit you only change that dependency then the test fails. https://github.com/framer/motion/commits/main?after=5eac213220ce788712ea2deeb09164e4831e359d+314&branch=main&qualified_name=refs%2Fheads%2Fmain. Som of the commits that transpiled here caused the breaking change. Oles is investigating (2), whilst I continue investgating v.8.0.4 release of framer motion. Otherwise we would have to degrade framer motion to v.8.0.3 and it should work

@SebCodesTheWeb I have removed framer-motion from the upgrades and now all tests run


uv pip install --python=.venv/bin/python error: failed to create file /usr/.lock

here's a reproducer (latest is v0.1.13 at time of writing): cargo build --target=x86_64-unknown-linux-musl --features=vendored-libgit2,vendored-openssl and then
#!/usr/bin/env -S sh -c '< "$0" podman run --rm -i -v=./target/x86_64-unknown-linux-musl/debug/uv:/usr/bin/uv:ro --pull=newer docker.io/archlinux/archlinux bash "$@"'

shopt -s inherit_errexit
set -o errexit -o errtrace -o nounset -o pipefail -o xtrace

pacman --noconfirm -Syu sudo
useradd --create-home --groups=wheel user
echo '%wheel ALL=(ALL:ALL) NOPASSWD: ALL' > /etc/sudoers.d/wheel
<<'EOF' sudo -u user bash
    shopt -s inherit_errexit
    set -o errexit -o errtrace -o nounset -o pipefail -o xtrace

    cd ~
    sudo pacman --noconfirm -S python
    uv venv
    # uv pip install uv  # succeeds
    uv pip install --python=.venv/bin/python uv  # fails
EOF

this also reproduces on docker.io/debian:stable-slim. it also reproduces on my Arch Linux host if i remove pyenv from $PATH s.t. which python -> /usr/bin/python.
possibly the problem is that PythonEnvironment::from_requested_python is using the installation's (base) prefix for the root instead of using the venv's prefix? the following patchset seems to work: https://github.com/astral-sh/uv/compare/main...ea8257a25404ce1bbec32d601df60670266585af

Ah yeah, that should be prefix - thanks! PR welcome if you’re interested.

Fixing now so I can include in release.


webapp : Migrate vsts dependency to azure-devops

Is your feature request related to a problem? Please describe.

Describe the solution you'd like
Currently appservice depends on vsts which is not maintained anymore. There will be no further support for this package if there are bugs for feature requests. The vsts package is migrated to azure-devops.
This is a request to migrate vsts to azure-devops in CLI side.
Describe alternatives you've considered

Additional context

Hi @panchagnula , could you please help check this ? Thanks

ACK @arrownj will take a look just to be sure is this the one you are referring to https://github.com/Azure/azure-cli/blob/dev/src/azure-cli/azure/cli/command_modules/appservice/vsts_cd_provider.py
Can you point me to the new vets package on devops so I can update the references & test on our end? Thanks!

@panchagnula is this still relevant?

ACK @arrownj will take a look just to be sure is this the one you are referring to https://github.com/Azure/azure-cli/blob/dev/src/azure-cli/azure/cli/command_modules/appservice/vsts_cd_provider.py
Can you point me to the new vets package on devops so I can update the references & test on our end? Thanks!

@arrownj - could you respond here.

Hi Kota,
I read the issue, read the code and searched information.
We advise to deprecate vsts-cd-manager and use azure-devops instead. vsts-cd-manager is not maintained now.
Please search
from .vsts_cd_provider import VstsContinuousDeliveryProvider
from vsts_cd_manager.continuous_delivery_manager import ContinuousDeliveryManager
in code.
https://pypi.org/project/vsts-cd-manager/
https://github.com/microsoft/vsts-cd-manager
https://pypi.org/project/azure-devops/
https://github.com/microsoft/azure-devops-python-api

Hi Kota,
I read the issue, read the code and searched information.
We advise to deprecate vsts-cd-manager and use azure-devops instead. vsts-cd-manager is not maintained now.
Please search
from .vsts_cd_provider import VstsContinuousDeliveryProvider
from vsts_cd_manager.continuous_delivery_manager import ContinuousDeliveryManager
in code.
https://pypi.org/project/vsts-cd-manager/
https://github.com/microsoft/vsts-cd-manager
https://pypi.org/project/azure-devops/
https://github.com/microsoft/azure-devops-python-api

@qwordy - thanks. Will check and get back to you for any clarifications.

@qwordy - thanks. Will check and get back to you for any clarifications.

Hi @Kotasudhakarreddy , is there any update?

@qwordy I am on it. Targeted for S183.

@calvinsID assigning this to you to help identify the right functions with the new library for parity
this file needs to be updated
from vsts_cd_manager.continuous_delivery_manager import ContinuousDeliveryManager
https://github.com/Azure/azure-cli/blob/dev/src/azure-cli/azure/cli/command_modules/appservice/vsts_cd_provider.py
Old: https://github.com/microsoft/vsts-cd-manager
New: https://github.com/microsoft/azure-devops-python-api

Created this item to track moving az functionapp devops-pipeline create command, which pulls in vsts package, to an extension to reduce weight: #18228

this is complete


fix paths for widget files

widget static files (css, html, js) should all be in the <static_directory>/widgets/<widget_name> directory

thanks!


No files in torrent file

I tried using the magnet links but the torrents don't contain the files.
64-bit (note pieces 0(0))

magnet:?xt=urn:btih:fce720af722a813a184c5550a924aaa60a8d9af1&dn=elementaryos-0.3.2-stable-amd64.20151209.iso&tr=https%3A%2F%2Fashrise.com%3A443%2Fphoenix%2Fannounce&tr=udp%3A%2F%2Fopen.demonii.com%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.ccc.de%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80%2Fannounce

32-bit  (note pieces 0(0))

magnet:?xt=urn:btih:001b104e49d517cf7a41593a73c3861b7c8e34f8&dn=elementaryos-0.3.2-stable-i386.20151209.iso&tr=https%3A%2F%2Fashrise.com%3A443%2Fphoenix%2Fannounce&tr=udp%3A%2F%2Fopen.demonii.com%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.ccc.de%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80%2Fannounce

Well, it's a bit stranger than that, in Ubuntu, all magnet torrents are undownloadable. Must test it on Windows.

How do you mean undownloadable? They're just a url representation of the torrent aren't they? I always copy url and paste in to my torrent client. Clicking the magnet link in OSX opens the torrent correctly in the application I have associated with magnet links and as I already had the file downloaded in the directory it's now seeding. Very odd behaviour.

Are you guys using Transmission? It doesn't look like it. What client is that?
Magnet links don't include metadata by default, you will have to wait for that much smaller download to finish before your client knows how many pieces there are. The metadata is usually less than a megabit. Obviously the downloads work for everyone else, and the magnet links are static.

@lewisgoddard the screenshots are deluge. The 32-bit eventually worked, but the 64-bit image has been sitting there since the 18th with no activity. I guess it's just 'one of them things' as it worked fine when I clicked and opened it.
I've never experienced an issue like this before with a magnet link but I guess it's a false bug so this issue can be removed.

Well, I'm tried with Deluge and Transmission, and metadatas were not downloaded (I waited for 10mn).

It works fine in Transmission for me, I will try Deluge.

Mmmh, strange, my elementary install is fresh from yesterday. I could totally be a temp problem with the torrent provider too.

I run Ashrise, so if it's a problem with them, it's fine to continue this discussion here. :stuck_out_tongue:
They both start near-immediately for me though.

Mmmh, so it's a problem for us I guess, maybe our internet provider or something, but not related to elementary.


[Bitwarden Vault] ...

Extension
https://www.raycast.com/jomifepe/bitwarden
Raycast Version
1.87.4
macOS Version
15.1.1
Description
I'm trying to login and search my vault with my correct password, and this what I'm getting -
(node:4655) [DEP0040] DeprecationWarning: The punycode module is deprecated. Please use a userland alternative instead.
(Use node --trace-deprecation ... to show where the warning was created)
Invalid master password.
Steps To Reproduce
I don't know, it's just what is happening. I installed the addon and the cli with brew. It worked for a bit, and since the first lockout I cannot log in again.
Current Behaviour
No response
Expected Behaviour
No response

Hey, if your password is in fact correct, please reinstall the extension to see if it fixes it, might be some secret that should be cleared.

I already reinstalled it, and for now it seems to solve the problem.

+1 with this issue. Also resolved by reinstalling. Thanks!


ImportError: dlopen(/usr/local/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so, 10): Library not loaded: @rpath/libcublas.8.0.dylib   Referenced from: /usr/local/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so   Reason: image not found

This is my issue https://stackoverflow.com/questions/51121273/tensorflow-error-reason-image-not-found

Thank you for your post. We noticed you have not filled out the following field in the issue template. Could you update them if they are relevant in your case, or leave them as N/A? Thanks.
Have I written custom code
OS Platform and Distribution
TensorFlow installed from
TensorFlow version
Bazel version
CUDA/cuDNN version
GPU model and memory
Exact command to reproduce

It has been 15 days with no activity and the awaiting response label was assigned. Is this still an issue?

Please keep in mind that the TensorFlow GitHub Issues page is for tracking bugs and feature requests. It is not a way to escalate a Stack Overflow support question that is not getting enough attention. Thanks!
That said, if you are using Cuda 8, try switching to Cuda 9. The latest versions of TensorFlow do not supoprt Cuda 8, unless installing from source.


IndexError with no categorial features (again?)

Hello! I'm trying to use DiCE to generate CEs for a regression model (am using xgboost) and am running into an IndexError with the generate_counterfactuals code seemingly due to the fact that I don't have any categorical features or because there's something wrong with the way I'm passing data. A little unsure given #2 is closed.
Here is the stack trace:

And the offending code (penultimate line):
outcome = "Target"
dice_df_copy = dice_df.copy()
cont_features = dice_df_copy.drop("Target",axis=1).columns.tolist()
dice_data = dice_ml.Data(dataframe=dice_df, continuous_features=cont_features, outcome_name=outcome) dice_model = dice_ml.Model(model=xgb_model, backend="sklearn",model_type="regressor")

exp_genetic = Dice(dice_data, dice_model, method="genetic")
gen_CE = exp_genetic.generate_counterfactuals(query_instances=dice_df[0:1], total_CFs=1, desired_range=[19,20], stopping_threshold=0.00, posthoc_sparsity_algorithm="binary", verbose=True)
gen_CE.visualize_as_dataframe(show_only_changes=True)

I've tried changing the type of the data I pass as the query_instances param from a dataframe to a list of 1 dict object (a singular dict object threw an exception prompting me to alter that datatype) and the result is that the code runs but then is stuck running for hours. All I get is: "Initializing initial parameters to the genetic algorithm..."
Any guidance would be appreciated! Thanks

@sachinsrivastava0126, which version of dice-ml library are you using? The referenced issue was reported long back. Could you try with the latest dice-ml release 0.6.1?

Yes using 0.6.1

Would you be able to share a sample notebook and dataset? I want to see if you are setting up the dice-ml explainer correctly.

The code/dataset isn't entirely mine so I am trying to get permission. I've been following this notebook for the setup: https://github.com/interpretml/DiCE/blob/master/docs/source/notebooks/DiCE_multiclass_classification_and_regression.ipynb
In the meantime, here is the code where I instantiate the DiCE instance.
It's a bit messy but here's some info that might be useful

dice_df is a copy of X_train
I insert the target variable values into the dice_df. This is essentially recreating the original dataset except that all values are now numeric
I had some typing errors so I do some casting from pandas Series to ints for categorical features

Setup:

I get all the columns of dice_df except for the target variable to be the continuous features since everything is numerically encoded at this point
I then pass in dice_df which is again just a copy of X_train, continuous features, and the target as the outcome variable into the dice_ml.Data instance
In the dice_ml.Model instance I've tried passing in the xgboost instance itself (of type <class 'xgboost.sklearn.XGBRegressor'>) as well as a Pipeline instance as shown in the tutorial notebook I referenced above. Both approaches still yield the error from my original post

dice_df = X_train.copy()
dice_df.insert(1,"Target",y_train)

for feature in features_nom:
  if feature!="Misc":
    dice_df[feature] = dice_df[feature].astype(int)

for feature in ordered_levels.keys():
  if feature!='QC':
    dice_df[feature] = dice_df[feature].astype(int)

## Attempted setup code ##
outcome = "Target"
cont_features = dice_df.drop("Target",axis=1).columns.tolist()
dice_data = dice_ml.Data(dataframe=dice_df, continuous_features=cont_features, outcome_name=outcome) dice_model = dice_ml.Model(model=xgb_model, backend="sklearn",model_type="regressor")

exp_genetic = Dice(dice_data, dice_model, method="genetic")
gen_CE = exp_genetic.generate_counterfactuals(query_instances=dice_df[0:1], total_CFs=1, desired_range=[19,20], stopping_threshold=0.00, posthoc_sparsity_algorithm="binary", verbose=True)
gen_CE.visualize_as_dataframe(show_only_changes=True)

Here is the notebook: https://colab.research.google.com/drive/1zrnTCmAXJpcTiWGnbPYjtdepWApBt9zY?usp=sharing
Most of the model code can be ignored and comes from here: https://www.kaggle.com/ryanholbrook/feature-engineering-for-house-prices
Dataset: https://www.kaggle.com/c/house-prices-advanced-regression-techniques/data

@sachinsrivastava0126, I will take a look at this today. Thanks for the pointers.
Regards,

@gaugup
Update here. I had the wrong link previously. Sorry for any mix up
Here is the notebook: https://colab.research.google.com/drive/1zrnTCmAXJpcTiWGnbPYjtdepWApBt9zY?usp=sharing
Most of the model code can be ignored and comes from here: https://www.kaggle.com/ryanholbrook/feature-engineering-for-house-prices
Dataset: https://www.kaggle.com/c/house-prices-advanced-regression-techniques/data

Dear @sachinsrivastava0126,
could you try dropping the outcome column and check if the error persists? I tried running the notebook, and it seems that this error gets fixed (and another one pops up) after the change.
dice_df = dice_df.drop('SalePrice', axis=1)

The error that popped up was because I accidentally deleted the line where the model is fit. Fixed.
I've tried dropping SalePrice from dice_df as well as passing in different formats to the query_instances parameter (dataframe, dict, list of 1 dict) and previously generate_counterfactuals seemingly got stuck at "Initializing initial parameters to the genetic algorithm..." for over 2 hours. This doesn't seem like expected behavior because I only have around 80 features but please let me know if I'm mistaken. I'm running with no restrictions on features_to_vary or permitted_ranges and am trying to generate 1 counterfactual

I am also obtaining the same problem, when using only continuous features...
IndexError: list index out of range

Dear @sachinsrivastava0126,
The code is stuck in initialising parameters for the genetic algorithm because the model isn't able to find cfs in the desired_range that you have specified. I think this is because the model is trained poorly.
For example:

Here, as you can see, the values of the SalePrice in the training data are of a much higher range than what the model is predicting. DiCE's genetic algorithm uses the predict function of the trained model, so if the model is outputting values in the range 10-20, it would never reach the high desired_range of (190000,200000). Thus, my suggestion would be to either re-train the model, or to change the desired_range.

@sachinsrivastava0126, could you try with the findings from @soundarya98's response above? Could you look at your model training phase?
Regards,

@soundarya98 @gaugup Sorry for the late reply. Thank you for noticing this oversight. The model is returning log(SalePrice) so I've changed the desired_range to account for this. However, I'm now once again running into an IndexError issue similar to the one in my original post. I'm using 1 query instance (X_train[279:280]) and requesting 1 counterfactual with no restrictions on which features to vary or their permitted ranges. The code is accessible in the notebook shared above but also pasted below. I've also included the stack trace for this IndexError
dice_df = X_train.copy()
dice_df.insert(1,"SalePrice",y_train)

for feature in features_nom:
  if feature!="MiscFeature":
    dice_df[feature] = dice_df[feature].astype(int)

for feature in ordered_levels.keys():
  if feature!='PoolQC':
    dice_df[feature] = dice_df[feature].astype(int)

outcome = 'SalePrice'
cont_features = dice_df.drop("SalePrice",axis=1).columns.tolist()

### Line below commented out because errors
### "UserConfigValidationException: outcome_name SalePrice not found in MSSubClass,MSZoning,LotFrontage,etc"
# dice_df = dice_df.drop('SalePrice', axis=1)

dice_data = dice_ml.Data(dataframe=dice_df, continuous_features=cont_features, outcome_name=outcome)
dice_model = dice_ml.Model(model=xgb_model, backend="sklearn", model_type="regressor")

exp_genetic = Dice(dice_data,dice_model,method="genetic")
gen_CE = exp_genetic.generate_counterfactuals(query_instances=X_train[279:280],
                                    total_CFs=1,
                                    desired_range=[12.156,12.3],
                                    stopping_threshold=0.00,
                                    posthoc_sparsity_algorithm="binary",
                                    verbose=True)
gen_CE.visualize_as_dataframe(show_only_changes=True)

Stack trace:

@sachinsrivastava0126, you should include the SalesPrice in the dice_df and SalesPrices shouldn't be present in query_instances passed into generate_counterfactuals(). Can you please make sure that? Not sure what is X_train.
Regards,

@gaugup  SalePrice is included in dice_df and not in the query_instance passed into generate_counterfactuals. X_train[279:280] is just an input example from the training set that I'm trying to generate a counterfactual for. Here is some output to confirm the details you mentioned

Dear @sachinsrivastava0126, thank you very much for bringing this issue to our notice. We have noticed a couple of bugs and will raise a PR shortly to resolve the issue.

@soundarya98 @gaugup No problem. Thanks much for your assistance. When can we expect the changes to be merged?

@soundarya98 @gaugup  No problem. Thank you so much for your help! Closing


Analysed data and created Dashboard using Tableau

Issue Reference:
Closes #133
Description of Changes:
Closes #133

I have analyzed data and created a dashboard using Tableau for enhanced data visualization and insights.
The dashboard allows users to interact with stock data and view predictions based on analyzed patterns.
Additional features include detailed data visualization to help users interpret trends and make data-driven decisions.

Yes , it is based according to the dataset sbin.csv

@manikjain105 Please make the dashboard insightful; your work only shows a candlestick chart.

I have synced as requested , kindly check

@jvedsaqib @rohitinu6  Can you please review it and  confirm if any procedures is left to be done from my side in order to get my pr merged

@jvedsaqib can you please review and merge the pr


Collapsing nodes

To be done after #7863
Collapsing nodes should work exactly the same as in old GUI: https://github.com/enso-org/enso/blob/develop/app/gui/src/controller/graph.rs#L1074-L1106

Alias analysis is needed to determine inputs/outputs of collapsed nodes and to insert appropriate arguments.


[issue 252] - Search/Epoch navigation stalled

[issue 252] - Search/Epoch navigation stalled

@DmitriiGaico please check if this fixes the issue 🙏


enable usage of --force flag

Hi there,
We had a few builds fail at the very last moment with an error message stating something like:

aws-copilot aborted the release because nothing changed

(Sorry, I can't find the failing build at this moment)
But I believe that the "--force" flag will fix our problem.
It looks like the logic was already implemented, but disabled.
I made a PR to re-enable it, please let me know if this is OK.
Thank you.

Thanks @yanshiyason  Looks good to me.