Add handler to serve any file's contents (not just html)

I added this functionality to my own sandbox project, and then thought that it would be generally useful.
It allows the dev to server the contents of any static file to the response with a given content header.  The htmlFile handler already exists, but doesn't allow me to serve images/styles/scripts/pdfs etc that are useful in a standard content-rich website.

Hi Peter, this looks a lot like static file handling that already exists in ASP.NET Core out of the box. See also #30 where this has been mentioned. Is that the use case where you needed this?

Thanks Dustin.  Yes, you're right the static file handler does this - I should RTFM a bit harder ;)
BTW, I did have to give it a bigger hint than usual:
app.UseStaticFiles(
   StaticFileOptions(
      FileProvider = new PhysicalFileProvider(Directory.GetCurrentDirectory())
   )
) |> ignore

... without setting current directory it failed to find any files.  I dont' recall having to do this in other projects.  Not sure if this is an issue, yet?
In any case feel free to reject and close this PR.
Cheers, Peter.

Hi, your snippet is one way to configure it, the other way would be by setting the WebRoot path like this:
[<EntryPoint>]
let main argv =
    let contentRoot = Directory.GetCurrentDirectory()
    let webRoot = Path.Combine(contentRoot, "webroot")
    WebHostBuilder()
        .UseKestrel()
        .UseContentRoot(contentRoot)
        .UseWebRoot(webRoot)
        .Configure(Action<IApplicationBuilder> configureApp)
        // other configurations
        .Build()
        .Run()
    0

ContentRoot sets the root folder of your application for any content files that should not be publicly accessible, but your application will use (e.g. razor views). WebRoot is the directory which will be browsable when you configure the static file middleware.
After setting UseWebRoot(...) you can simply configure the static file middleware with:
let configureApp (app : IApplicationBuilder) =
    app.UseGiraffeErrorHandler(errorHandler)
    app.UseStaticFiles() |> ignore
    app.UseGiraffe(webApp)

Let me know if that works for you :)


feat: dependabot to keep github actions workflows up to date

This enables a weekly dependabot check to submit pull requests for any github actions workflows that have actions that need updating.

Does this not need a dependabot yml config file?

Does this not need a dependabot yml config file?

thats the file being added here - .github/dependabot.yml

oh oops


Fix flakey test due to mismatching error

The expected error is client timeout (2ms) exceeded, but sometimes, due to rate limiting, it's Wait(n=1) would exceed context deadline

See https://circleci.com/gh/weaveworks/flux/6074 for an instance of the failing test


feat: add golden dataset for eval

Just putting this here as a friendly suggestion, can take it or leave it 😄
Long-term open source maintainability can improve drastically by PRs having at a minimum a one or two sentence description (especially for feat PRs but even for all types). Just going over what you are adding and why.
The benefits:

Helps your reviewer quickly understand the PR
Helps future maintainers follow-along with PRs
Allows you to more easily search for old PRs in the future
Encourages open source external contributions as external users better understand the features and history

I recently have found this extremely beneficial in Cloud SQL repos (example)
Github also recommends this themselves

+1 to Jack's comment. We could do a better job on PR descriptions.


Create DequeStruct.cpp

Deque via struct realization
Assigned Issue Number ?
#007
Language Opted ?
C++
Number of files added or updated ?
1
Name of these files ?
Data_Structures => Deque => DequeStruct.cpp
Checklist

[x] I've read the contribution guidelines.
[x] I've referred the correct issue number.
[x] I've fill up this entire template correctly.

Perfect Code :+1:
Thanks @abkabd
Happy Contributing :tada:


Error to load page with data

Try to load - index.php?action=4&host=<IP_ADDRESS>:11211
Result: 504 Gateway Time-out.
I have some data in memcache, but i think there is not a lot.
Can i limit data loading?

Currently not. I will add a limit parameter today. I just need to check for a good implementation.
Can you please provide some environment information:

version of memcached
which client was used to write those data Memcached or Memcache Extension?)
PHP version
OS

Thank you.

Memcached - 1.4.14
php memcache modules
PHP 5.6.5
Ubuntu 14.04

see: https://github.com/clickalicious/phpMemAdmin/issues/7#issuecomment-73711575

I've updated Memcached.php just a few seconds ago. Try to update phpMemAdmin's composer dependencies (Memcached.php) - make sure to use >= v0.3.2
composer update

should do the trick.

I've updated to v0.3.2, but still have error.
When i restart memcache (memcache has no data), page is loaded. When memcache has data, page not loaded.
May be this can help you to define problem
echo "stats items" | nc <IP_ADDRESS> 11211
STAT items:4:number 1
STAT items:4:age 36
STAT items:4:evicted 0
STAT items:4:evicted_nonzero 0
STAT items:4:evicted_time 0
STAT items:4:outofmemory 0
STAT items:4:tailrepairs 0
STAT items:4:reclaimed 0
STAT items:4:expired_unfetched 0
STAT items:4:evicted_unfetched 0
STAT items:5:number 3
STAT items:5:age 36
STAT items:5:evicted 0
STAT items:5:evicted_nonzero 0
STAT items:5:evicted_time 0
STAT items:5:outofmemory 0
STAT items:5:tailrepairs 0
STAT items:5:reclaimed 0
STAT items:5:expired_unfetched 0
STAT items:5:evicted_unfetched 0
STAT items:6:number 5
STAT items:6:age 231
STAT items:6:evicted 0
STAT items:6:evicted_nonzero 0
STAT items:6:evicted_time 0
STAT items:6:outofmemory 0
STAT items:6:tailrepairs 0
STAT items:6:reclaimed 0
STAT items:6:expired_unfetched 0
STAT items:6:evicted_unfetched 0
STAT items:7:number 1
STAT items:7:age 230
STAT items:7:evicted 0
STAT items:7:evicted_nonzero 0
STAT items:7:evicted_time 0
STAT items:7:outofmemory 0
STAT items:7:tailrepairs 0
STAT items:7:reclaimed 0
STAT items:7:expired_unfetched 0
STAT items:7:evicted_unfetched 0
STAT items:8:number 1
STAT items:8:age 231
STAT items:8:evicted 0
STAT items:8:evicted_nonzero 0
STAT items:8:evicted_time 0
STAT items:8:outofmemory 0
STAT items:8:tailrepairs 0
STAT items:8:reclaimed 0
STAT items:8:expired_unfetched 0
STAT items:8:evicted_unfetched 0
STAT items:9:number 1
STAT items:9:age 230
STAT items:9:evicted 0
STAT items:9:evicted_nonzero 0
STAT items:9:evicted_time 0
STAT items:9:outofmemory 0
STAT items:9:tailrepairs 0
STAT items:9:reclaimed 0
STAT items:9:expired_unfetched 0
STAT items:9:evicted_unfetched 0
STAT items:13:number 1
STAT items:13:age 230
STAT items:13:evicted 0
STAT items:13:evicted_nonzero 0
STAT items:13:evicted_time 0
STAT items:13:outofmemory 0
STAT items:13:tailrepairs 0
STAT items:13:reclaimed 0
STAT items:13:expired_unfetched 0
STAT items:13:evicted_unfetched 0
END

Pretty cool - with your data i can debug a bit better what happens. Try to dig into this problem as soon as I'm back home.
Currently not sure if the data differs from the response I get from my Memcached instance and some others I've tried while developing.

When i have time, i can try to debug Memcached.php, my be i can find problem.
if i find a problem, let you know.

Same error. Not opens data on localhost connection

Same error too.

same error
Memcached version: 1.4.13
PHP version: 5.4.39-1~dotdeb.1 (cli) (built: Mar 22 2015 08:00:19)
OS: Debian GNU/Linux 7.8 (wheezy)
Fatal error: Maximum execution time of 300 seconds exceeded in
/usr/share/phpmemadmin/vendor/clickalicious/memcached.php/lib/Clickalicious/Memcached/Client.php
on line 1041

        // Dispatch command in some different ways ... depending on command ...
        fwrite($socket, $data);

        // Fetch while receiving data ...
        while ((!feof($socket))) {

            // Fetch Bytes from socket ...
            $buffer .= fgets($socket, self::SOCKET_READ_FETCH_BYTES);

            // Response max. 64 Bit value = 8 Bytes - We reed 256
Bytes at once so one round is definitive enough ;)
            if ($command === self::COMMAND_INCR || $command ===
self::COMMAND_DECR) {
                break;
            }

            foreach ($this->sigsEnd as $sigEnd) {
                if (preg_match('/^' . $sigEnd . '/imu', $buffer)) {
// GOING DOWN HERE <==============
                    break 2;
                }
            }
        }

        // Check if response is parseable ...
        if ($this->checkResponse($buffer) !== true) {
            throw new Exception(
                sprintf(
                    'Error "%s" while sending command "%s" to host "%s"',
                    $this->getLastResponse(),
                    $command,
                    $this->getHost() . ':' . $this->getPort()
                )
            );
        }

        // Parse the response and return result ...
        return $this->parseResponse($command, $buffer);
    }

Hi, any luck on finding the source of the problem yet ?

Yeah, error still exists

+1

+1

+1

Hi, problem in  Multiline values check my fix https://github.com/aaarkadev/Memcached.php/commit/094205f9c1198b872c5029b5c6816bd7a6cea344

+1

@aaarkadev thanks for the fix, could you make a PR so that @clickalicious eventually merges it ?

if    ini_get('memcached.compression_type') == 'fastlz'  AND ini_get('memcached.compression_threshold') > SIZE of value  page will hang.

mmm it doesn't run even with aaarkadev  patch..
any news about fix?

Possibly have figured out, where is the problem:

application collects all data from memcache, so it takes some time to be grabbed
the logic of concatenating data is not rather optimized (small blocks of 256 bytes and 10 iterations with preg_match)
the main problem is that (for unknown reason) last fgets takes too much time (last portion from socket with terminated signal, e.g. \r\nEND)
Possibly it is the issue with PHP...

The solution is too set timeout for opened socket:
root/lib/Clickalicious/PhpMemAdmin/App.php:2276
`    protected function dumpEntries($host, $port, $namespace = null, $flat = false)
{
// Assume empty result
$result = array();
    $client = $this->getMemcachedClient($host, $port, $this->getConfig()->timeout);

    // Fetch all keys and all values ...
    $client->timeout(1); # THIS LINE
    $allSlabs  = $client->stats(Client::STATS_TYPE_SLABS);

`
and
root/vendor/clickalicious/memcached.php/lib/Clickalicious/Memcached/Client.php:943
`
public function connect($host, $port, $timeout = null)
{
$uuid = $this->uuid($host, $port);
    if ($timeout === null) {
        $timeout = $this->getTimeout();
    }

    // The error variables
    $errorNumber = null;
    $errorString = 'n.a.';

    if (isset(self::$connections[$this->getPersistentId()][$uuid]) === false) {
        if ($timeout !== null) {
            $connection = @fsockopen(
                $host,
                $port,
                $errorNumber,
                $errorString,
                $timeout
            );
            socket_set_timeout($connection, $timeout); # THIS LINE
        } else {

`
Also it would be great, if DATA wouldn't load entire cache but only via limited portions.

unfortunately it doesn't solve the problem

Data page is still hanging unfortunately even with the attempted patches offered.
Are there any other memcached GUIs available?

Have tried FastoNoSQL <IP_ADDRESS> but not showing me data once connected
Keylord only has a console interface

@carltondickson https://github.com/hgschmie/phpmemcacheadmin


Nested Navigator not working

I have for each screen a stack navigator associated
( FeedNavigator for exemple )
But it seems that it's not working
Here is the error
Error: Another navigator is already registered for this container. You likely have multiple navigators under a single "NavigationContainer" or "Screen". Make sure each navigator is under a separate "Screen" container. See https://reactnavigation.org/docs/nesting-navigators for a guide on nesting.
But when I replace by a single compoenent (  to  ) it works, but cannot navigate throught to the next screen on the stack

You cannot pass inside a stack of react-navigation. replace by a single component.
Using "const { navigate } = useNavigation()" to navigate inside

I have the same problem as you, but I don't have a solution, I hope someone can help me, thank you.

https://github.com/hoaphantn7604/react-native-template-components
You can refer to the way that I navigate.

Hi hoaphantn7604, Do you have unmountOnBlur options on the CurvedBottomBar.Screen? I want to reset the stack navigator every time I want to click the bottom icons.
Example:
 <CurvedBottomBar.Screen                     name="Home"                     position="left"                     component={({ navigate }) => (                         <HomeStackNavigator />                     )}                     // unmountOnBlur={true}                     // options={{unmountOnBlur: true}}                 />

Hi @hoaphantn7604, Do you have unmountOnBlur options on the CurvedBottomBar.Screen? I want to reset the stack navigator every time I want to click the bottom icons.
Example:  <CurvedBottomBar.Screen name="Home" position="left" component={({ navigate }) => ( <HomeStackNavigator /> )} // unmountOnBlur={true} // options={{unmountOnBlur: true}} />

Hi @buscanopaul,
Can you describe your request in more detail?

Hi @hoaphantn7604, Thank you for your response.
My main issue was I can' reset the nested or go back to initial route stack navigator when I click again the bottom navigation icon (home). Please refer screenshot below

In the screenshot Instead of click the back button to reset the nested stack navigator. I want to reset it when I click the home icon again. Just like the default react navigation bottom tab behavior.
Here's my app.js
    <NavigationContainer>       <TabNavigator />     </NavigationContainer>
In my TabNavigator.js. I'm just using the Example 1 template just replace View with my stack navigator component
<CurvedBottomBar.Screen                     name="Home"                     position="left"                     component={({ navigate }) => (                         <HomeStackNavigator />                     )}                />
My HomeStackNavigator.js
<Stack.Screen name="Home" component={HomeScreen} />
<Stack.Screen name="Transactions" component={TransactionsScreen} />
I hope you understand. Thank you

hi @buscanopaul ,
You can refer to Ex:
import React, { useImperativeHandle } from 'react';
import { View } from 'react-native';
import { styles } from './styles';

export const HomeScreen = React.forwardRef((props, ref) => {
  useImperativeHandle(ref, () => {
    return { reload: reload };
  });

  const reload = () => {
    // Events
  };

  return <View style={styles.main} />;
});

You get curentRef then call reload function.

Cant add more than 3 CurvedBottomBar.Screen

This issue has been resolved in version 2.0.0.

@buscanopaul
i want more detailed answer for  Instead of click the back button to reset the nested stack navigator. I want to reset it when I click the home icon again. Just like the default react navigation bottom tab behavior.
this is one of the issue i hassle to use this library but i love this library can you add default navigation behaviour reset the nested stack navigator thankyou

@hoaphantn7604 Mr Admin! Kindly help me to solve the issue. i want more detailed answer for issue raised by @buscanopaul. Instead of click the back button to reset the nested stack navigator. I want to reset it when I click the home icon again. Just like the default react navigation bottom tab behavior. this is one of the issue i hassle to use this library but i love this library can you add default navigation behaviour reset the nested stack navigator thankyou

Hi, have you managed to fix this, or find a workaround ?

Thankyou for your reply, I am not fix anything.Can you fix this issue?
On Sun, 3 Dec 2023, 11:04 am Michal Gally, @.***> wrote:

@hoaphantn7604 https://github.com/hoaphantn7604 Mr Admin! Kindly help
me to solve the issue. i want more detailed answer for issue raised by
@buscanopaul https://github.com/buscanopaul. Instead of click the back
button to reset the nested stack navigator. I want to reset it when I click
the home icon again. Just like the default react navigation bottom tab
behavior. this is one of the issue i hassle to use this library but i love
this library can you add default navigation behaviour reset the nested
stack navigator thankyou
Hi, have you managed to fix this, or find a workaround ?
—
Reply to this email directly, view it on GitHub
https://github.com/hoaphantn7604/react-native-curved-bottom-bar/issues/16#issuecomment-1837377096,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A6P7DJH7M3W7AYOXEJMEE33YHQFOLAVCNFSM5JKCO6QKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOBTG4ZTONZQHE3A
.
You are receiving this because you commented.Message ID:
@.***
com>


Add site extension generation code

I mostly want to merge zip fallback archive generation so I can test extension creation better and start putting it on CI.

:shipit: if it works. Not sure why the builds are failing though?

:up::date:

You've taken a prime package name (Microsoft.AspNetCore.SiteExtension) for test infrastructure... And the name doesn't tell you what it's for. AzureTestDepoyer?


CIHelper::identifyMergeCommit - update refs

The method can be called directly so it needs to update the refs.
Running the command
ts-node script/misc-helper.ts identify-merge-commit maint 4589bca829a2ace58bc98876cccd7dbd2e89f732 -g ..\some_new_git_repo

where some_new_git_repo does not exist or is an outdated github fork will fail with errors like:
Caught error Error: git rev-list --ancestry-path --parents 4589bca829a2ace58bc98876cccd7dbd2e89f732..upstream/maint failed: 128,
fatal: ambiguous argument '4589bca829a2ace58bc98876cccd7dbd2e89f732..upstream/maint': unknown revision or path not in the working tree.

The error can happen with an outdated github repo but will always happen when a new repo is specified on the command line (a clone is done).
The fix is the simplest fix.  Alternatives are to make CIHelper::maybeUpdateMail2CommitMap public or to provide a wrapper function to do the update before calling identifyMergeCommit.

@dscho I apologize for the CI tests failing.  Fell in to the trap of 'this change won't hurt anything'.  Will check to see if insteadOf or some other config change will work for the tests.

Oh, no worries, I would have done the exact same.

Looks as if the tests fail now... maybe the function needs to be mocked, now that it is called more often?

Fixed now thanks to you providing a flag that made it easy.

Thank you so much!


[Fix-802] Widget-download-element

Closes https://github.com/hasadna/anyway-newsflash-infographics/issues/802
By using html2canvas library for maps and other elements. Tested on widget cards in staging. Works good for all types of elements.

Reverts back to before https://github.com/hasadna/anyway-newsflash-infographics/pull/692

opened a new branch https://github.com/hasadna/anyway-newsflash-infographics/pull/835


CSV Import: CRLF Character Return Line Feed Compatibility

An admin must be able to upload a class list in CSV format from different operating systems (UNIX, Mac, Windows).

@winstan I tested a CSV upload with multiple types of class lists.

Mac / ASCII text with CR line terminators
MS DOS / Windows ASCII text with CRLF line terminators
Unix UTF-8 with BOM text with CRLF line terminators

All three types of CSV upload successfully.
I am taking a look at the readStream Node JS documentation to see if we have to worry about the line-breaks. There is a possibility that this logic is managed by Node JS already, as the different types of formatting were not an issue on each class list import with different types.

While I have not found it stated explicitly that different line endings are managed automatically by Node JS when encoding is not specified on a line, I have been unable to break this with different line ending and encoding combinations.


Merge back the 1.4.0 release

What problem does this PR solve?
Issue Number: NONE
Problem Summary:
What is changed and the side effects?
Changed:
Side effects:

Performance effects(性能影响): N/A

Breaking backward compatibility(向后兼容性): N/A

Check List:

Please make sure your changes are compilable(请确保你的更改可以通过编译).
When providing us with a new feature, it is best to add related tests(如果你向我们增加一个新的功能, 请添加相关测试).
Please follow Contributor Covenant Code of Conduct.(请遵循贡献者准则).

LGTM


Feature/#565 cookie information

Description:

Add cookie information for DSGVO

Closes #565
Known Issues:
NONE

Pull Request Test Coverage Report for Build 2577

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 68.564%

Totals

Change from base Build 2570:
0.0%

Covered Lines:
1259

Relevant Lines:
1771

💛  - Coveralls

For anyone who thinks that the cookie policy only affects cookies:
"Die Cookie-Richtlinie: Ende 2009 beschloss das Europäische Parlament eine Neuerung der E-Privacy-Richtlinie. Diese regelt unter anderem, unter welchen Umständen Dienste Informationen auf den Endgeräten von Nutzern speichern dürfen. Die Richtlinie erfasst also Cookies, Local Storage und ähnliche Technologien."
I hope that clarifies the unnecessary discussions -.-

After discussing about the english cookie hint, we agreed to use the following sentence:
"Geli uses cookies to function properly.  By using this site you agree to the use of cookies as described in our policy."

@maxleppla can you please change the german one as well.

@PatrickSkowronek I've commited the changes. If you want more changes, please specify them like Clara did.

I fixed the rest! @grosspersky what do you think?


RWD shows up as SR+ despite SR+ not being sold for 2.5 years

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
Any base model Model 3 shows up as SR+ despite different battery sizes, model years, and feature differences.
Expected Behavior
2022 and 2023 base model Model 3s should show up as RWD instead of SR+
Steps To Reproduce
Home Page
Car Model Name
Relevant log output
N/A

Screenshots
No response
Additional data
No response
Type of installation
Docker
Version
1.28.5

I believe this is the mapping for the model names, but I am not sure how to specify RWD cars.
https://github.com/teslamate-org/teslamate/blob/a15631f2ff18b99023d562897de0f56ee3c38c0b/lib/teslamate/vehicles/vehicle.ex#L72

I can confirm this with my M3 RWD standard 2024 highland

I can confirm this with my M3 RWD standard 2024 highland

what is returned by the vehicle_config for model3 rwd?
https://github.com/teslamate-org/teslamate/issues/2494

is there a shell command I can run to dump the result of the vehicle_config call?

what is returned by the vehicle_config for model3 rwd?
#2494

        "vehicle_config": {             "aux_park_lamps": "None",             "badge_version": 1,             "can_accept_navigation_requests": true,             "can_actuate_trunks": true,             "car_special_type": "base",             "car_type": "model3",             "charge_port_type": "CCS",             "cop_user_set_temp_supported": false,             "dashcam_clip_save_supported": true,             "default_charge_to_max": true,             "driver_assist": "TeslaAP4",             "ece_restrictions": true,             "efficiency_package": "M3POPPYSEED2024",             "eu_vehicle": true,             "exterior_color": "UltraRed",             "exterior_trim": "Black",             "exterior_trim_override": "",             "has_air_suspension": false,             "has_ludicrous_mode": false,             "has_seat_cooling": true,             "headlamp_type": "Global",             "interior_trim_type": "Black2",             "key_version": 2,             "motorized_charge_port": true,             "paint_color_override": "",             "performance_package": "Base",             "plg": true,             "pws": true,             "rear_drive_unit": "PM216MOSFET",             "rear_seat_heaters": 1,             "rear_seat_type": 0,             "rhd": false,             "roof_color": "RoofColorGlass",             "seat_type": null,             "sentry_preview_supported": false,             "spoiler_type": "None",             "sun_roof_installed": null,             "supports_qr_pairing": false,             "third_row_seats": "None",             "timestamp":<PHONE_NUMBER>758,             "trim_badging": "50",             "use_range_badging": true,             "utc_offset": 7200,             "webcam_selfie_supported": true,             "webcam_supported": true,             "wheel_type": "Glider18"         },

Anything more needed? I can provide whatever needed to solve this. It's strange to see my M3 Highland as SR+ 😂

🤣 haven't found the time to look into it yet. Will try this week

Yeah, so looks like the problem is they still use "trim_badging": "50" which is indistinguishable for  SR+ cars and RWD cars.
Probably "efficiency_package": "M3POPPYSEED2024" would be the best one to use to identify.
@tomassanjuann what did you run to get this result, so I can run it for a 2023 RWD too and we have both values to filter on.

Yeah, so looks like the problem is they still use "trim_badging": "50" which is indistinguishable for SR+ cars and RWD cars.
Probably "efficiency_package": "M3POPPYSEED2024" would be the best one to use to identify.
@tomassanjuann what did you run to get this result, so I can run it for a 2023 RWD too and we have both values to filter on.

Make a GET request to /api/1/vehicles/{vehicle_tag}/vehicle_data
https://developer.tesla.com/docs/fleet-api?shell#vehicle_data


Clean up the "wordform" model's properties

The Wordform model represents a wordform in the source language.
A wordform should have the following fields or properties:

[ ] is_head: this wordform has explicit defintions. is_head == True iff the wordform has one or more definitions
[ ] word_class or specific_word_class — which could be a foreign key that references a SpecificWordClass model

A wordform should no longer have the following fields:

[ ] as_is
[ ] pos

TBD for the following field:

[ ] is_lemma:  a lemma is the representative wordform for a lexeme. The codebase as of 2021-05-19 does not use the is_lemma field to mean this; however, each wordform's lemma field is a foreign key that references the representative Wordform; lemma representative wordforms reference themselves (self reference). Django magic allows you to do my_wordform.inflections to get all stored inflections of the lexeme!

@dwhieb please confirm that my linguistic terminology is accurate!
@andrewdotn, does this make sense? We can pair on it if you'd like!

@dwhieb oh no, what is the name of the representative wordform of a lexeme?
e.g., for the lexeme with members alumna, alumnae, alumnī, what is the term for alumnus?

In lexicography, the representative wordform for a lexeme is called either a lemma or a head(word|phrase|morpheme). The two terms are synonyms in that context.
BUT, in computational linguistics, lemma essentially means 'linguistic stem'.
To avoid this ambiguity, @aarppe and I's proposal is that we should always call the representative wordform for a lexeme the head (or variations on that), and reserve the term lemma for the FST lemma specifically.
I also realize you'd already settled on the term head for something like this a while back (see here and here), so this proposal really just reaffirms that earlier decision, improves the definition a bit ("representative wordform for a lexeme" is perfect), and clarifies the use of lemma in this project.
I haven't have a chance to present this proposal to y'all and get your feedback yet, so this is still open to discussion. Obviously this would require everybody's approval.
If we adopt this terminology, we should adjust the code base to align with it. Doing so might require changing the names of the is_lemma and/or is_head properties to something else. One suggestion might be major entry (has definitions) and minor entry (does not have definitions), but that's just an idea.
with hope that I didn't just complicate things further,
always & forever, love sincerely,
Danny


"invalid access token" / "'This request requires user authentication.'"

Doesn't matter what I do, i get these errors. This link has interesting info regarding this issue might be in the library, consider looking at it.
I've placed my client id and secret like this
      var config = SpotifyClientConfig.CreateDefault();

            var request = new ClientCredentialsRequest(client_id, client_secret);
            var response = new OAuthClient(config).RequestToken(request);

            _spotify = new SpotifyClient(config.WithToken(response.Result.AccessToken));

            //_spotify = new SpotifyClient("BQAwnhNHMdvCeDyq87n0D0tiB96arySilifAe3JlCQeB54tZ7gT9Nbp");

doesn't matter which instance i call, it's not working. i'm trying to add an item to a playlist.

Please have a thorough look at https://johnnycrazy.github.io/SpotifyAPI-NET/docs/auth_introduction and https://johnnycrazy.github.io/SpotifyAPI-NET/docs/client_credentials
client credentials are not user authentication. While you create them with a logged in spotify account, they're not tied to your account and thus can't be used to query user related endpoints. Alternatives are listed here


IE11 + zoom-image plugin: Exception thrown and not caught

Including this plugin throws an "Exception thrown and not caught" error in IE11, preventing further JavaScript execution.
IE11 console references this line:

lib/docsify.js

Apologies. This is an issue with medium-zoom, not docsify.

https://github.com/francoischalifour/medium-zoom/issues/34


how to create a custom function in cell ？

How to create a custom function in cell or set cell auto call macros inner function with param？

@askonev Please take a look

MS Office, I can write user function in VBA and cell can use the function like this.


Parallax background center

It looks like you may have forgotten to change out the the if-statement attribute check when we changed to parallaxBackgroundPosition. Thanks for the fixes.

Any chance this can get updated and pulled? Seems to work fine with me manually merging it..after the attribute check in the if statement is changed.


Update analyzer testing to Microsoft.CodeAnalysis.Testing

Description

Update the analyzer test project to use Microsoft.CodeAnalysis.Testing, the new shared analyzer testing library
Update the analyzer test project references to meet the minimum requirements of Microsoft.CodeAnalysis.Testing (no impact on end users)

Motivation and Context
This change makes it easier to comprehensively test analyzers.
Recommended review strategy: review each commit individually in sequence.
Testing
This is a test-only change.
Screenshots (if appropriate)
N/A
Types of changes
This is a test-only change; no observable impact on shipping code.
Checklist

[ ] My code follows the code style of this project
[ ] My change requires a change to the documentation
[ ] I have updated the documentation accordingly
[ ] I have read the README document
[x] I have added tests to cover my changes
[x] All new and existing tests passed

License

[x] I confirm that this pull request can be released under the Apache 2 license

I'm uncomfortable adding a myget feed to our build dependency. Is that required?

@normj Yes, this is where the Roslyn team publishes intermediate packages. They are still signed binaries, but don't fall under release API compat guarantees. There is no immediate plan to publish the testing library to NuGet, despite the fact that it already works very well. We are still making changes to the API as we find new cases that people want to test.

Please feel free to ask questions about anything you see. I try to answer questions directly, from a "this is how we arrived at the current state" view, as opposed to trying to say whether something is right or wrong. The testing library was developed to help people write better tests that in turn lead to better analyzers and better code fixes. We're interested in any feedback related to that end-to-end story so the community can be successful.

📝 The feed location changed; I can update this pull request to use the new one.

@normj This pull request now references code from nuget.org.

@sharwell Good afternoon. I was reviewing outstanding PR(s) and came across this feature request. Please let me know if this PR is still relevant, or else confirm to close the same.
Thanks,
Ashish

Hi @ashishdhingra ,
This change makes it easier to write tests for the analyzers in this project. Since it is a maintainability improvement and not an end-user product improvement, the relevance depends on the goals of the project. If the maintainers of this project intend to continue developing features in this repository, this change would still be relevant.
Thanks,
Sam

I'm closing this PR since we recently updated all of our analyzer projects to target netstandard2.0.
We're now using a much more modern version of Microsoft.CodeAnalysis (4.6.0 - https://github.com/aws/aws-sdk-net/blob/master/sdk/code-analysis/MockAnalyzer/MockAnalyzer.csproj#L9), and we also addressed some of the comments you mentioned (such as configuring generated code analysis - https://github.com/aws/aws-sdk-net/blob/master/sdk/code-analysis/SharedAnalysisCode/AbstractPropertyValueAssignmentAnalyzer.cs#L177-L178).
Please feel free to open a new issue if needed.

Hi @dscpinheiro,
It appears the changes you describe were reverted. Please feel free to reach out if you have questions about updating this code.
Thanks,
Sam

Hi @sharwell! Yes, we ended up reverting because my change to the CodeAnalysis package ended up breaking customers.
We still want to update our analyzers to target netstandard2.0, and there was a recommendation on the other GitHub issue to target an older version (such as 2.10.0 - chosen from https://learn.microsoft.com/en-us/visualstudio/extensibility/roslyn-version-support?view=vs-2022 since it was the last one for VS2017).
Are there any concerns with this approach? We decided to revert the commit first (instead of only downgrading the package) as we weren't sure if that specific version could still break customers with older tooling (such as VS 2017 users prior to 15.9).

We still want to update our analyzers to target netstandard2.0

Is there a specific motivating need to do this? Analyzers targeting netstandard1.3 (e.g. StyleCop Analyzers) will still execute within current versions of Visual Studio.
The 2.10.0 release of Microsoft.CodeAnalysis.Common targets netstandard1.3. I'm not sure what the official support status is for a netstandard2.0 analyzer is when running inside Visual Studio 2017. Most users I know of have either dropped VS 2017 support, or maintained the analyzers targeting netstandard1.3.

@sharwell We ended up targeting netstandard2.0: https://github.com/aws/aws-sdk-net/issues/2998
Thanks a lot for your help!


Não abre a câmera para ler o código de barras

Fiz todas as configurações do manifesto, fiz a instalações e usei da forma proposta, porém sequer abre a câmera para leitura:

Usei o código de uma maneira mais simples, como mostro seguir:
async ler_codigo_barras(){
console.log('Estou tentando ler o cod...')
const status = await BarcodeScanner.checkPermission({ force: true });
console.log('Limpando o background')
BarcodeScanner.hideBackground();
console.log('Lendo o código mesmo')
const result = await BarcodeScanner.startScan();
console.log('Resultado da leitura:', result.content)
this.resultado = result.content
console.log('Cheguei no final da função...')
}

}
desta forma ele até respondeu do debugador do android studio, porém não abre a câmera para ler o código de barras.
Em um momento ele leu o código de barra, mesmo não aparecendo o código. Isso aconteceu uma única vez.
O retorno do debugador do android:
I/ThreeFingerSwipe: 0 ACTION_DOWN point count = 1
I/ThreeFingerSwipe: onPointDown... pointIndex = 0, pointId = 0
I/ThreeFingerSwipe: currentX = 313.0, currentY = 750.0
I/ThreeFingerSwipe: 0 ACTION_UP point count = 1
I/Capacitor/Console: File: http://localhost/6445.10b2876060283da9.js - Line 1 - Msg: Estou tentando ler o cod...
V/Capacitor/Plugin: To native (Capacitor plugin): callbackId: 116460809, pluginId: BarcodeScanner, methodName: checkPermission
V/Capacitor: callback: 116460809, pluginId: BarcodeScanner, methodName: checkPermission, methodData: {"force":true}
I/Capacitor/Console: File: http://localhost/6445.10b2876060283da9.js - Line 1 - Msg: Limpando o background
I/Capacitor/Console: File: http://localhost/6445.10b2876060283da9.js - Line 1 - Msg: Lendo o código mesmo
V/Capacitor/Plugin: To native (Capacitor plugin): callbackId: 116460810, pluginId: BarcodeScanner, methodName: showBackground
V/Capacitor: callback: 116460810, pluginId: BarcodeScanner, methodName: showBackground, methodData: {}
V/Capacitor/Plugin: To native (Capacitor plugin): callbackId: 116460811, pluginId: BarcodeScanner, methodName: startScan
V/Capacitor: callback: 116460811, pluginId: BarcodeScanner, methodName: startScan, methodData: {}
D/CameraPreview: pause()
D/CameraInstance: Closing camera
D/SensorManager: unregisterListenerImpl sensor = null, listener = android.view.OrientationEventListener$SensorEventListenerImpl@251bb0b
I/Capacitor/Console: File: http://localhost/ - Line 228 - Msg: undefined
D/CameraPreview: resume()
D/SensorManager: registerListenerImpl sensor = {Sensor name="icm40607 Accelerometer", vendor="INV", version=1, type=1, maxRange=78.45375, resolution=0.01, power=0.17, minDelay=5000}, delayUs = 200000, latencyUs = 0, listener = android.view.OrientationEventListener$SensorEventListenerImpl@4887aa6
I/gralloc4: unregister: id=21c000018aa
I/gralloc4: unregister: id=21c000018ab
I/gralloc4: unregister: id=21c000018ad
I/gralloc4: unregister: id=21c000018af
I/gralloc4: unregister: id=21c000018b1
I/gralloc4: unregister: id=21c000018b3
D/CameraInstance: Opening camera
I/Camera-JNI: number_of_cameras:2
I/Camera-JNI: number_of_cameras:2
I/Camera-JNI: number_of_cameras:2
I/Camera-JNI: number_of_cameras:2
D/CameraInstance: Configuring camera
I/CameraManager: Camera Display Orientation: 90
I/CameraManager: Initial camera parameters: preview-size=1920x1080;video-size=1920x1080;preferred-preview-size-for-video=1920x1080;preview-size-values=1920x1080,1920x1072,1440x1080,1600x720,1280x720,960x720,800x600,720x480,640x480,352x288,320x240,320x180,320x144,176x144;video-size-values=1920x1080,1920x1072,1440x1080,1600x720,1280x720,960x720,800x600,720x480,640x480,352x288,320x240,320x180,320x144,176x144;preview-format=yuv420sp;preview-format-values=yuv420p,yuv420sp;preview-frame-rate=30;preview-fps-range=5000,30000;preview-fps-range-values=(10000,10000),(5000,15000),(15000,15000),(5000,20000),(20000,20000),(5000,24000),(24000,24000),(5000,30000),(20000,30000),(30000,30000);preview-frame-rate-values=10,15,20,24,30;perfect-skin-level=0;brightness=3;brightness-values=0,1,2,3,4,5,6;contrast=3;contrast-values=0,1,2,3,4,5,6;saturation=3;saturation-values=0,1,2,3,4,5,6;metering-mode=frame-average;metering-mode-values=frame-average,center-weighted,spot-metering,(null);slow-motion=0;slow-motion-values=0,1,4;antibandauto-enable-values=1;smile-enable-values=1;is-takepicture-with-flash=0;picture-size=4000x3000;picture-size-values=4000x3000,4000x2250,4000x2000,4000x1800,4000x1896,3840x2160,3264x2448,3264x1836,3264x1632,3264x1552,3264x1468,2592x1944,2592x1458,2592x1296,2592x1224,2560x1920,2560x1440,2448x2448,2320x1740,2304x1728,2272x1080,2160x1080,2048x1536,2048x1152,1920x1080,1920x1072,1600x1200,1440x1080,1600x720,1280x720,960x720,800x600,720x480,640x480,352x288,320x240,320x180,320x144;picture-format=jpeg;picture-format-values=jpeg;jpeg-thumbnail-width=320;jpeg-thumbnail-height=240;jpeg-thumbnail-size-values=0x0,256x144,288x144,304x144,240x240,320x240,432x288;jpeg-thumbnail-quality=90;jpeg-quality=90;rotation=0;whitebalance=auto;whitebalance-values=auto,incandescent,fluorescent,daylight,cloudy-daylight;effect=none;effect-values=none,mono,negative,solarize,sepia,aqua;antibanding=auto;antibanding-values=off,50hz,60hz,auto;scene-mode=auto;scene-mode-values=auto,night,action,portrait,landscape,hdr;flash-mode=off;flash-mode-values=off,auto,on,torch;focus-mode=auto;focus-mode-values=infinity,auto,macro,continuous-picture,continuous-video;max-num-focus-areas=1;focus-areas=(0,0,0,0,0);focal-length=4.71;horizontal-view-angle=68.3848;vertical-view-angle=54.0026;exposure-compensation=0;max-exposure-compensation=32;min-exposure-compensation=-32;exposure-compensation-step=0.0625;auto-exposure-lock=false;auto-exposure-lock-supported=true;auto-whitebalance-lock=false;auto-whitebalance-lock-supported=true;max-num-metering-areas=1;metering-areas=(0,0,0,0,0);zoom=0;max-zoom=99;zoom-ratios=100,103,106,109,112,115,118,121,124,127,130,133,136,139,142,145,148,151,154,157,160,163,166,169,172,175,178,181,184,187,190,193,196,199,203,206,209,212,215,218,221,224,227,230,233,236,239,242,245,248,251,254,257,260,263,266,269,272,275,278,281,284,287,290,293,296,299,303,306,309,312,315,318,321,324,327,330,333,336,339,342,345,348,351,354,357,360,363,366,369,372,375,378,381,384,387,390,393,396,399;zoom-supported=true;smooth-zoom-supported=false;focus-distances=Infinity,Infinity,Infinity;max-num-detected-faces-hw=10;max-num-detected-faces-sw=0;video-frame-format=android-opaque;recording-hint=false;video-snapshot-supported=true;video-stabilization=false;video-stabilization-supported=false
I/CameraConfiguration: Requesting focus mode value from among: [continuous-picture, continuous-video, auto]
I/CameraConfiguration: Supported focus mode values: [infinity, auto, macro, continuous-picture, continuous-video]
I/CameraConfiguration: Can set focus mode to: continuous-picture
I/CameraConfiguration: Requesting flash mode value from among: [off]
I/CameraConfiguration: Supported flash mode values: [off, auto, on, torch]
I/CameraConfiguration: Can set flash mode to: off
I/CameraConfiguration: Flash mode already set to off
I/PreviewScalingStrategy: Viewfinder size: 1466x720
I/PreviewScalingStrategy: Preview in order of preference: [1600x720, 1280x720, 1920x1072, 1920x1080, 1440x1080, 960x720, 720x480, 800x600, 640x480, 320x180, 320x144, 320x240, 352x288, 176x144]
I/CameraManager: Final camera parameters: video-size=1920x1080;preferred-preview-size-for-video=1920x1080;preview-size-values=1920x1080,1920x1072,1440x1080,1600x720,1280x720,960x720,800x600,720x480,640x480,352x288,320x240,320x180,320x144,176x144;video-size-values=1920x1080,1920x1072,1440x1080,1600x720,1280x720,960x720,800x600,720x480,640x480,352x288,320x240,320x180,320x144,176x144;preview-format=yuv420sp;preview-format-values=yuv420p,yuv420sp;preview-frame-rate=30;preview-fps-range=5000,30000;preview-fps-range-values=(10000,10000),(5000,15000),(15000,15000),(5000,20000),(20000,20000),(5000,24000),(24000,24000),(5000,30000),(20000,30000),(30000,30000);preview-frame-rate-values=10,15,20,24,30;perfect-skin-level=0;brightness=3;brightness-values=0,1,2,3,4,5,6;contrast=3;contrast-values=0,1,2,3,4,5,6;saturation=3;saturation-values=0,1,2,3,4,5,6;metering-mode=frame-average;metering-mode-values=frame-average,center-weighted,spot-metering,(null);slow-motion=0;slow-motion-values=0,1,4;antibandauto-enable-values=1;smile-enable-values=1;is-takepicture-with-flash=0;picture-size=4000x3000;picture-size-values=4000x3000,4000x2250,4000x2000,4000x1800,4000x1896,3840x2160,3264x2448,3264x1836,3264x1632,3264x1552,3264x1468,2592x1944,2592x1458,2592x1296,2592x1224,2560x1920,2560x1440,2448x2448,2320x1740,2304x1728,2272x1080,2160x1080,2048x1536,2048x1152,1920x1080,1920x1072,1600x1200,1440x1080,1600x720,1280x720,960x720,800x600,720x480,640x480,352x288,320x240,320x180,320x144;picture-format=jpeg;picture-format-values=jpeg;jpeg-thumbnail-width=320;jpeg-thumbnail-height=240;jpeg-thumbnail-size-values=0x0,256x144,288x144,304x144,240x240,320x240,432x288;jpeg-thumbnail-quality=90;jpeg-quality=90;rotation=0;whitebalance=auto;whitebalance-values=auto,incandescent,fluorescent,daylight,cloudy-daylight;effect=none;effect-values=none,mono,negative,solarize,sepia,aqua;antibanding=auto;antibanding-values=off,50hz,60hz,auto;scene-mode=auto;scene-mode-values=auto,night,action,portrait,landscape,hdr;flash-mode=off;flash-mode-values=off,auto,on,torch;focus-mode-values=infinity,auto,macro,continuous-picture,continuous-video;max-num-focus-areas=1;focus-areas=(0,0,0,0,0);focal-length=4.71;horizontal-view-angle=68.3848;vertical-view-angle=54.0026;exposure-compensation=0;max-exposure-compensation=32;min-exposure-compensation=-32;exposure-compensation-step=0.0625;auto-exposure-lock=false;auto-exposure-lock-supported=true;auto-whitebalance-lock=false;auto-whitebalance-lock-supported=true;max-num-metering-areas=1;metering-areas=(0,0,0,0,0);zoom=0;max-zoom=99;zoom-ratios=100,103,106,109,112,115,118,121,124,127,130,133,136,139,142,145,148,151,154,157,160,163,166,169,172,175,178,181,184,187,190,193,196,199,203,206,209,212,215,218,221,224,227,230,233,236,239,242,245,248,251,254,257,260,263,266,269,272,275,278,281,284,287,290,293,296,299,303,306,309,312,315,318,321,324,327,330,333,336,339,342,345,348,351,354,357,360,363,366,369,372,375,378,381,384,387,390,393,396,399;zoom-supported=true;smooth-zoom-supported=false;focus-distances=Infinity,Infinity,Infinity;max-num-detected-faces-hw=10;max-num-detected-faces-sw=0;video-frame-format=android-opaque;recording-hint=false;video-snapshot-supported=true;video-stabilization=false;video-stabilization-supported=false;focus-mode=continuous-picture;preview-size=1600x720
I/CenterCropStrategy: Preview: 720x1600; Scaled: 720x1600; Want: 720x1466
I/CameraPreview: Starting preview
D/CameraInstance: Starting preview
I/AutoFocusManager: Current focus mode 'continuous-picture'; use auto focus? false
I/gralloc4: register: id=21c000018b5
I/gralloc4: register: id=21c000018b6
I/gralloc4: register: id=21c000018b8
I/gralloc4: register: id=21c000018ba
I/gralloc4: register: id=21c000018bc
I/gralloc4: register: id=21c000018be
No final não faz nada.

Please adhere to the issue template. If you just copy and paste code (without formatting even!) into the message it's practically unreadable. If you have a minimal reproduction, it may be of great worth to the maintainers. Please do share it as a github repo or stackblitz for example.
Also the common language spoken here is English.
Without following the points above, you cannot expect any of the maintainers to be able to help you with your issue


Add SHIORI DLL Adapter

PR Type:
Enhancement

PR Description:
This PR introduces a new Adapter for SHIORI DLL calls, providing a Rust-like handling of passed pointers and values. It also includes some refactoring of the existing code, specifically in the handling of SHIORI v3 types and requests.

PR Changes:

Add SHIORI DLL adapter
Removed Request/Response/Error types that supported multiple versions

Because the types are unwieldy and there is no use case for multiple versions

/describe

/review

/ask Does this change include fatal bugs?

/ask Is there any consistency in the implementation or comments on this change?

/ask Are these changes to the code Rust-like?

/ask Do you have all the necessary tests for this change?

/ask Is it safe to merge this PR?


MSW 2.0 Support

MSW just released their 2.0 update with some (in my opinion) very nice updates that I would like to use with the storybook-addon.
Is there plans for supporting the MSW 2.0 release in a future msw-storybook-addon update?
Link for 2.0: https://mswjs.io/blog/introducing-msw-2.0/

Just saw that there are other issues for 2.0, closing this :)


Hole in the map

Hello next to the North Rockford Drive road is the house and all the territory is a hole. POSTAL CODE: 832
Picture:
https://i.imgur.com/M3xUkBH.png
Versions:
Game version: 2699
Resource version: 2.1.1

I don't have this problem. Search if you have another ipl, mlo who is connected with this area
Versions:
Game version: 2699
Resource version: 2.1.2


Shared state

In many cases it is mandatory to share state between components (e.g. sessionStore). How can we achieve that using your library since stores are stateless? Could you add an example or an entry to the README?

Can you provide a more specific example? Stores don't own the state, but it they still can provide the initial state and return the new versions of it in response to the dispatched actions. From the components' point of view, this doesn't differ from Flux. Components can perform actions and read shared data from the same store. (It's just that internally, it's not Store holding the data.)

I spoke too quickly. I tried something odd but it still works...
Sorry for the noise.

No problem!


Allow errors

Added argument to pass additional options to nbconvert, such as "--allow-errors."

Thanks!


'Show variable in Data Viewer' shows 'Install Pandas' popup even though pandas IS installed in PDM environment

Applies To

[X] Notebooks (.ipynb files)
[ ] Interactive Window and/or Cell Scripts (.py files with #%% markers)

What happened?
In the Jupyter Variables tab I want to view the details of a pandas dataframe. I select Click to view a  Jupyter variable  next to the dataframe variable (ie.df in the screenshot) - and the 'Data Viewer' is prompting me to install pandas incorrectly.

Pandas is installed and working so I do not expect to see this popup!

NB!
I am using PDM to manage my environment.
(Perhaps this may be the reason the Data Viewer is not recognising the pandas installation?)
VS Code Version
Version: 1.65.1 (user setup) Commit: 8908a9ca0f221f36507231afb39d2d8d1e182702 Date: 2022-03-08T02:06:27.846Z Electron: 13.5.2 Chromium: 91.0.4472.164 Node.js: 14.16.0 V8: 9.1.269.39-electron.0 OS: Windows_NT x64 10.0.19044
Jupyter Extension Version
Jupyter  v2022.2.1030672458
Jupyter logs
Visual Studio Code (1.65.1, undefined, desktop)
Jupyter Extension Version: 2022.2.1030672458.
Python Extension Version: 2022.2.1924087327.
Info 10:18:26: ZMQ install verified.
Info 10:18:27: Experiment status for python is {"enabled":false,"optInto":[],"optOutFrom":[]}
Info 10:18:27: Interrupt requested & no kernel.
Info 10:18:27: Setting setActiveController for c:\Users\spikes\pdmrepo\jlab\fun\bug.ipynb
Info 10:18:27: Getting activation commands for C:\Users\spikes\AppData\Local\Programs\Python\Python310\python.exe are not cached. May take a while.
Info 10:18:27: KernelProvider switched kernel to id = .pdm-kernel.C:\Users\spikes\AppData\Local\Programs\Python\Python310\python.exe.C:\Users\spikes\AppData\Local\Programs\Python\Python310\python.exe.-m#ipykernel_launcher
Info 10:18:27: Creating controller for jupyter-notebook with interpreter ~\AppData\Local\Programs\Python\Python310\python.exe
Info 10:18:27: Find preferred kernel for c:\Users\spikes\pdmrepo\jlab\fun\bug.ipynb with metadata {"kernelspec":{"display_name":"pdm-kernel","language":"python","name":"pdm-kernel"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.10.2"},"orig_nbformat":4} & preferred interpreter ~\AppData\Local\Programs\Python\Python310\python.exe
Info 10:18:27: findKernel found pdm-kernel
Info 10:18:27: PreferredConnection: .pdm-kernel.C:\Users\spikes\AppData\Local\Programs\Python\Python310\python.exe.C:\Users\spikes\AppData\Local\Programs\Python\Python310\python.exe.-m#ipykernel_launcher found for NotebookDocument: c:\Users\spikes\pdmrepo\jlab\fun\bug.ipynb
Info 10:18:27: TargetController found ID: .pdm-kernel.C:\Users\spikes\AppData\Local\Programs\Python\Python310\python.exe.C:\Users\spikes\AppData\Local\Programs\Python\Python310\python.exe.-m#ipykernel_launcher for document c:\Users\spikes\pdmrepo\jlab\fun\bug.ipynb
Info 10:18:27: Setting controller affinity for c:\Users\spikes\pdmrepo\jlab\fun\bug.ipynb .pdm-kernel.C:\Users\spikes\AppData\Local\Programs\Python\Python310\python.exe.C:\Users\spikes\AppData\Local\Programs\Python\Python310\python.exe.-m#ipykernel_launcher
Info 10:18:27: Process Execution: > ~\AppData\Local\Programs\Python\Python310\python.exe -m pip list
> ~\AppData\Local\Programs\Python\Python310\python.exe -m pip list
Info 10:18:28: Registering dummy command feature
Info 10:18:51: Loading webview. View is notset
Info 10:18:51: Loading web view...
Info 10:18:51: Webview panel created.
Info 10:18:52: Web view react rendered
Info 10:18:53: Searching for token colors ...
Info 10:18:53: Attempting search for colors ...
Info 10:18:53: Loading colors from c:\Users\spikes\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\theme-defaults\themes\light_vs.json ...
Info 10:18:53: Attempting search for colors ...
Info 10:18:53: Loading base colors from c:\Users\spikes\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\theme-defaults\themes\light_vs.json ...
Info 10:18:53: Using colors to generate CSS ...
Info 10:19:09: Execute Cells request 0, 1, 2, 3
Info 10:19:09: Execute Cell 0 c:\Users\spikes\pdmrepo\jlab\fun\bug.ipynb
Info 10:19:09: Starting Notebook in kernel.ts id = .pdm-kernel.C:\Users\spikes\AppData\Local\Programs\Python\Python310\python.exe.C:\Users\spikes\AppData\Local\Programs\Python\Python310\python.exe.-m#ipykernel_launcher
Info 10:19:09: Creating raw notebook for c:\Users\spikes\pdmrepo\jlab\fun\bug.ipynb
Info 10:19:09: Getting preferred kernel for c:\Users\spikes\pdmrepo\jlab\fun\bug.ipynb
Info 10:19:09: Computing working directory c:\Users\spikes\pdmrepo\jlab\fun\bug.ipynb
Info 10:19:09: Execute Cell 1 c:\Users\spikes\pdmrepo\jlab\fun\bug.ipynb
Info 10:19:09: Execute Cell 2 c:\Users\spikes\pdmrepo\jlab\fun\bug.ipynb
Info 10:19:09: Execute Cell 3 c:\Users\spikes\pdmrepo\jlab\fun\bug.ipynb
Info 10:19:09: Starting raw kernel pdm-kernel for interpreter ~\AppData\Local\Programs\Python\Python310\python.exe
Info 10:19:09: installMissingDependencies ~\AppData\Local\Programs\Python\Python310\python.exe
Info 10:19:09: IPyKernel found previously in this environment ~\AppData\Local\Programs\Python\Python310\python.exe
Info 10:19:10: Kernel launching with ports 9000,9001,9002,9003,9004. Start port is 9000
Info 10:19:10: Process Execution: > ~\AppData\Local\Programs\Python\Python310\python.exe -c "import ipykernel; print(ipykernel.__version__); print("5dc3a68c-e34e-4080-9c3e-2a532b2ccb4d"); print(ipykernel.__file__)"
> ~\AppData\Local\Programs\Python\Python310\python.exe -c "import ipykernel; print(ipykernel.__version__); print("5dc3a68c-e34e-4080-9c3e-2a532b2ccb4d"); print(ipykernel.__file__)"
Info 10:19:10: Creating daemon process for ~\AppData\Local\Programs\Python\Python310\python.exe with env variables count 61
Info 10:19:10: Process Execution: > ~\AppData\Local\Programs\Python\Python310\python.exe -m vscode_datascience_helpers.daemon --daemon-module=vscode_datascience_helpers.kernel_interrupt_daemon -v --ppid 10052
> ~\AppData\Local\Programs\Python\Python310\python.exe -m vscode_datascience_helpers.daemon --daemon-module=vscode_datascience_helpers.kernel_interrupt_daemon -v --ppid 10052
Warn 10:19:10: Stderr output when getting ipykernel version & path Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'ipykernel' for ~\AppData\Local\Programs\Python\Python310\python.exe
Info 10:19:10: get interrupthandle daemon
Info 10:19:10: Process Execution: > ~\AppData\Local\Programs\Python\Python310\python.exe -m ipykernel_launcher --ip=<IP_ADDRESS> --stdin=9003 --control=9001 --hb=9000 --Session.signature_scheme="hmac-sha256" --Session.key=b"2bbc8f87-7766-4ad7-9920-82c8ac028d45" --shell=9002 --transport="tcp" --iopub=9004 --f=C:\Users\spikes\AppData\Local\Temp\tmp-100523ba1TrLmWKpG.json
> ~\AppData\Local\Programs\Python\Python310\python.exe -m ipykernel_launcher --ip=<IP_ADDRESS> --stdin=9003 --control=9001 --hb=9000 --Session.signature_scheme="hmac-sha256" --Session.key=b"2bbc8f87-7766-4ad7-9920-82c8ac028d45" --shell=9002 --transport="tcp" --iopub=9004 --f=C:\Users\spikes\AppData\Local\Temp\tmp-100523ba1TrLmWKpG.json
Info 10:19:10: Process Execution: cwd: c:\Users\spikes\pdmrepo\jlab\fun
cwd: c:\Users\spikes\pdmrepo\jlab\fun
Warn 10:19:11: StdErr from Kernel Process c:\Users\spikes\pdmrepo\jlab\__pypackages__\3.10\lib\traitlets\traitlets.py:2202: FutureWarning: Supporting extra quotes around strings is deprecated in traitlets 5.0. You can use 'hmac-sha256' instead of '"hmac-sha256"' if you require traitlets >=5.
  warn(

Warn 10:19:11: StdErr from Kernel Process c:\Users\spikes\pdmrepo\jlab\__pypackages__\3.10\lib\traitlets\traitlets.py:2157: FutureWarning: Supporting extra quotes around Bytes is deprecated in traitlets 5.0. Use '2bbc8f87-7766-4ad7-9920-82c8ac028d45' instead of 'b"2bbc8f87-7766-4ad7-9920-82c8ac028d45"'.
  warn(

Info 10:19:11: Kernel Output: NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.

To exit, you will have to explicitly quit this process, by either sending
"quit" from a client, or using Ctrl-\ in UNIX-like environments.

To read more about this, see https://github.com/ipython/ipython/issues/2049

To connect another client to this kernel, use:
    --existing C:\Users\spikes\AppData\Local\Temp\tmp-100523ba1TrLmWKpG.json

Info 10:19:11: Raw session started and connected
Started kernel pdm-kernel
Info 10:19:11: Finished connecting 72872c8f-bb0f-431a-81db-fa002ee4323e
Info 10:19:11: Executing silently Code (idle) = import sys\nprint(sys.executable)
Info 10:19:12: Executing silently Code (completed) = import sys\nprint(sys.executable)
Info 10:19:12: UpdateWorkingDirectoryAndPath in Kernel
Info 10:19:12: Executing silently Code (idle) = import site\nsite.addsitedir(site.getusersitepackages())\nimport os\nimport sys\n%cd "c:\Users\spikes\pd
Info 10:19:12: Executing silently Code (completed) = import site\nsite.addsitedir(site.getusersitepackages())\nimport os\nimport sys\n%cd "c:\Users\spikes\pd
Info 10:19:12: Waiting for idle on (kernel): 9f1653fe-7a06-4646-be18-d2299e16147b -> idle
Info 10:19:12: Finished waiting for idle on (kernel): 9f1653fe-7a06-4646-be18-d2299e16147b -> idle
Info 10:19:12: Cell 0 executed with state Success
Info 10:19:12: Cell 1 executed with state Success
Info 10:19:12: Cell 2 executed with state Success
Info 10:19:12: Executing silently Code (idle) = # Query Jupyter server for the info about a dataframe\nimport json as _VSCODE_json\nimport builtins as
Info 10:19:12: Cell 3 executed with state Idle
Info 10:19:12: Executing silently Code (completed) = # Query Jupyter server for the info about a dataframe\nimport json as _VSCODE_json\nimport builtins as
Info 10:19:12: Executing silently Code (idle) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:19:12: Executing silently Code (idle) = # Query Jupyter server for the info about a dataframe\nimport json as _VSCODE_json\nimport builtins as
Info 10:19:12: Executing silently Code (completed) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:19:13: Executing silently Code (completed) = # Query Jupyter server for the info about a dataframe\nimport json as _VSCODE_json\nimport builtins as
Info 10:19:13: Executing silently Code (idle) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:19:13: Executing silently Code (completed) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:19:13: Executing silently Code (idle) = # Query Jupyter server for the info about a dataframe\nimport json as _VSCODE_json\nimport builtins as
Info 10:19:13: Executing silently Code (idle) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:19:13: Executing silently Code (completed) = # Query Jupyter server for the info about a dataframe\nimport json as _VSCODE_json\nimport builtins as
Info 10:19:13: Executing silently Code (idle) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:19:13: Executing silently Code (idle) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:19:13: Executing silently Code (completed) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:19:13: Executing silently Code (completed) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:19:13: Executing silently Code (completed) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:19:13: Executing silently Code (idle) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:19:13: Executing silently Code (completed) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:24:06: Loading webview. View is notset
Info 10:24:06: Loading web view...
Info 10:24:06: Webview panel created.
Info 10:24:06: Executing silently Code (idle) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:24:06: Executing silently Code (idle) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:24:06: Process Execution: > ~\AppData\Local\Programs\Python\Python310\python.exe -c "import pandas;print(pandas.__version__)"
> ~\AppData\Local\Programs\Python\Python310\python.exe -c "import pandas;print(pandas.__version__)"
Info 10:24:06: Executing silently Code (completed) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:24:07: Executing silently Code (completed) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:24:07: Executing silently Code (idle) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:24:07: Executing silently Code (idle) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:24:07: Executing silently Code (completed) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:24:07: Executing silently Code (completed) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Warn 10:24:07: Failed to get version of Pandas to use Data Viewer [i [Error]: Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'pandas'

	at ChildProcess.<anonymous> (c:\Users\spikes\.vscode\extensions\ms-toolsai.jupyter-2022.2.1030672458\out\client\extension.js:2:161231)
	at Object.onceWrapper (events.js:422:26)
	at ChildProcess.emit (events.js:315:20)
	at maybeClose (internal/child_process.js:1048:16)
	at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)] {
  category: 'unknown'
}
Info 10:24:07: Web view react rendered
Info 10:24:07: Searching for token colors ...
Info 10:24:07: Attempting search for colors ...
Info 10:24:07: Searching for token colors ...
Info 10:24:07: Attempting search for colors ...
Info 10:24:07: Loading colors from c:\Users\spikes\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\theme-defaults\themes\light_vs.json ...
Info 10:24:07: Loading colors from c:\Users\spikes\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\theme-defaults\themes\light_vs.json ...
Info 10:24:07: Attempting search for colors ...
Info 10:24:07: Attempting search for colors ...
Info 10:24:07: Loading base colors from c:\Users\spikes\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\theme-defaults\themes\light_vs.json ...
Info 10:24:07: Loading base colors from c:\Users\spikes\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\theme-defaults\themes\light_vs.json ...
Info 10:24:07: Using colors to generate CSS ...
Info 10:24:07: Using colors to generate CSS ...
Error 10:24:23: [Error: Python package 'pandas' is required for viewing data.
	at v.installMissingDependencies (c:\Users\spikes\.vscode\extensions\ms-toolsai.jupyter-2022.2.1030672458\out\client\extension.js:2:327571)
	at processTicksAndRejections (internal/process/task_queues.js:93:5)
	at async v.checkAndInstallMissingDependencies (c:\Users\spikes\.vscode\extensions\ms-toolsai.jupyter-2022.2.1030672458\out\client\extension.js:2:326970)
	at async r.ensureInitialized (c:\Users\spikes\.vscode\extensions\ms-toolsai.jupyter-2022.2.1030672458\out\client\extension.js:2:333360)
	at async r.getDataFrameInfo (c:\Users\spikes\.vscode\extensions\ms-toolsai.jupyter-2022.2.1030672458\out\client\extension.js:2:332324)
	at async x.prepDataFrameInfo (c:\Users\spikes\.vscode\extensions\ms-toolsai.jupyter-2022.2.1030672458\out\client\extension.js:2:323294)
	at async x.showData (c:\Users\spikes\.vscode\extensions\ms-toolsai.jupyter-2022.2.1030672458\out\client\extension.js:2:321068)
	at async f.create (c:\Users\spikes\.vscode\extensions\ms-toolsai.jupyter-2022.2.1030672458\out\client\extension.js:2:330000)]
Info 10:24:23: Executing silently Code (idle) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:24:23: Executing silently Code (idle) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:24:23: Executing silently Code (idle) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:24:23: Executing silently Code (completed) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:24:23: Executing silently Code (completed) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:24:23: Executing silently Code (completed) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:24:23: Executing silently Code (idle) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:24:23: Executing silently Code (idle) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:24:23: Executing silently Code (completed) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:24:23: Executing silently Code (idle) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:24:23: Executing silently Code (completed) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:24:23: Executing silently Code (completed) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:28:53: Searching for token colors ...
Info 10:28:53: Attempting search for colors ...
Info 10:28:53: Loading colors from c:\Users\spikes\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\theme-defaults\themes\light_vs.json ...
Info 10:28:53: Attempting search for colors ...
Info 10:28:53: Loading base colors from c:\Users\spikes\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\theme-defaults\themes\light_vs.json ...
Info 10:28:53: Executing silently Code (idle) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:28:53: Executing silently Code (idle) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:28:53: Using colors to generate CSS ...
Info 10:28:53: Executing silently Code (completed) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:28:53: Executing silently Code (completed) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:28:53: Executing silently Code (idle) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:28:53: Executing silently Code (idle) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:28:53: Executing silently Code (completed) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:28:53: Executing silently Code (completed) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:44:45: Executing silently Code (idle) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:44:45: Executing silently Code (idle) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:44:45: Executing silently Code (idle) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:44:45: Executing silently Code (completed) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:44:45: Executing silently Code (completed) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:44:45: Executing silently Code (completed) = import builtins\n_rwho_ls = %who_ls\nbuiltins.print(_VSCODE_getVariableTypes(_rwho_ls))
Info 10:44:45: Executing silently Code (idle) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:44:45: Executing silently Code (idle) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:44:45: Executing silently Code (completed) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:44:45: Executing silently Code (idle) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:44:45: Executing silently Code (completed) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))
Info 10:44:45: Executing silently Code (completed) = import builtins\nbuiltins.print(_VSCODE_getVariableInfo(df))

Coding Language and Runtime Version
Python 3.10.2
Language Extension Version (if applicable)
Python v2022.2.1924087327
Anaconda Version (if applicable)
NA - I'm using PDM!
Running Jupyter locally or remotely?
Local

Thanks for the bug. Yes PDM is not a supported scenario (at least as far as us detecting installation).

You might be able to work around this problem by creating an .env file in the same folder as the notebook.
It would contain something like so:
PYTHONPATH=C:\Users\USERNAME\AppData\Roaming\pdm\venv\lib\site-packages\pdm\pep582

(Based on the feedback on this issue: https://github.com/pdm-project/pdm/issues/848)

@rchiodo Thank you for looking into this issue even though PDM is not officially supported!
The short answer to your suggestion is that it does not work FOR THE Data Viewer. But I suspect the answer is just a tweak away along this line of inquiry.
The longer answer is that I have looked at the PDM issue you reference to get my initial notebook setup working. The ipykernel was not being found in my PDM environment.  The .ENV PYTHONPATH setting fix works for this, but I chose to then use the alternative option mentioned there ie. the kernel.json because it gives me a named kernel that I can select from the dropdown list. Here's my kernel spec:
{
 "argv": [
  "C:\\Users\\spikes\\AppData\\Local\\Programs\\Python\\Python310\\python.exe",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "pdm-kernel",
 "language": "python",
 "env": {"PYTHONPATH": "C:\\Users\\spikes\\AppData\\Roaming\\pdm\\venv\\Lib\\site-packages\\pdm\\pep582"}
}

As you can see from my earlier screenshot, my notebook runs just fine with this kernel config - the pandas installation is found by the import and  the cells execute successfully (thanks to this PYTHONPATH env setting!).
So a part/portion of my VSCode setup does recognise that pandas is installed - however just not the Data Viewer part! I concluded that the Data Viewer component was doing something different or looking at something else?

Ah we likely don't add the .env variables just when checking. The only other thing would be to add that PYTHONPATH globally.

I have PYTHONPATH set globally as a WIndows environment variable. and I can see  the correct value in the CLI  using $env:PYTHONPATH.  But I don't thing this is being used by VScode. I still needed to set PYTHONPATH in the .ENV file or kernel.json file  before VScode was able to find the ipykernel.
Where and what global setting did you have in mind? (The Pylance Intellisense uses python.analysis.extraPaths - does your check use this setting?)

We run this code here:
python -c import pandas;print(pandas.__version__)

If that works from the command line, theoretically it should work from within our code too.

I had to add quotes, but otherwise both these commands work!

PS C:\Users\spikes\pdmrepo\jlab> python -c "import pandas;print(pandas.version)"
1.4.1

PS C:\Users\spikes\pdmrepo\jlab> pdm run python -c "import pandas;print(pandas.version)"
1.4.1

Did you activate PDM first? (Not sure if PDM has an activation step, or something you put into the path)
It's likely it would have to work from a non pdm activated console. We don't know how to activate PDM, so the python we launch wouldn't run with the same environment as one in a PDM console.

This might be obvious, but you need to restart ALL instances of VS code if you added PYTHONPATH to your global environment.

Ok - you narrowed it down!
"check has to work from a non pdm activated console"

PDM does not have an activation step. The pdm run <script>  command ensures the correct environment  for the script by looking for a pypackages folder.
To cut  a long story short , your check works when I run it in my project folder but It fails when run outside my project folder.
My project folder is basically the vscode workspace. Which means your check is not being run in the current workspace?

PS. I ran your check with and without pdm run in my project folder. I need to think about why it succeeded without pdm run

Thanks - I reckon that's probably the cause of my problem - but I need some time to think it thru.  Python env's are messy - so I want to understand why your setup works for my conda and poetry environments. Also I noticed differences in ennvironment values depending on whether VSsode was started from the Windows Start Menu  or with code .  on the CLI eg. I think CWD is effected .  VScode also 'remembers' some settings based on initial usage so that also comes into play.
I'll pickup on this again tomorrow. ciao for now.

Restatement of issue:
Unlike in Poetry or Conda venvs, PDM looks for packages in the nearest __pypackges__  up the folder hierarchy.  The CWD context that the Data Viewer check is using does not have a __pypackages__ with a pandas installation, therefore it fails.
(I think the check would succeed if it was run in the context of the current workspace , and also this change of dir would not have any negative consequences if a virtual env was present!)
Workaround:
I had to resort to hardcoding  a known absolute path in my .ENV  file to appease the Data Viewer check:
PYTHONPATH=C:\Users\spikes\pdmrepo\jlab\__pypackages__\3.10\lib

This appends a specific bit of info to my global pdm-enabled PYTHONPATH specifically for the VSCode Extension (Terminal is not effected!) .
Notes:

It's an ugly hack but the Data Viewer check use-case does not seem relevant to my workflow, as far as I can tell.
Annoyingly, I was not able to get ${workspaceFolder} variable substitution to work hence the problematic absolute path.
It will eventually break when the <major.minor> version pf my Interpreter changes (but  I have to make a few similar tweaks anyway when the time comes).


Bug: The Electichoice Ai copilot chat bot window is not showing properly

Description
When cllicking on the icon the chat bot then the modal/ window opens of Elecichoice chat bot is not showing properly on screen.
Screenshots

Additional information
No response
What browser are you seeing the problem on?
Chrome
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I want to work on this issue. (optional)

Similar issue exists and already assigned. closing this one, kindly look for other issues.


[BUG] Azure Search - Still Cannot $filter by fields containing special characters, even when escaped

Hi,
I still have the problem mentionned in the following issue
I have the same problem with escaping a single quote in a filter expression.
I applied the solution you proposed on the SO post. I doubled the single quote. But there is no values in the response.
I use the latest version of the API (2020-06-30).
Here is the request I execute from the Azure search explorer :
search=revue&$filter=(tags/any(tag: search.in(tag/value,'services d''investissement')))
Thank you for your answer.

Thank you for your feedback.  Tagging and routing to the team member best able to assist.

Thank you for your feedback.  Tagging and routing to the team member best able to assist.

This is not a client SDK issue.
@bleroy, @dereklegenzoff - can you help the customer with their query.

@Mohit-Chakraborty This was already answered on the related issue. Closing.


[MSSQL] Cursor/connection scope issues

Multiple sequential commands using the same cursor object do not seem to work as expected. The below examples work fine with pyodbc.
Example 1: local temporary tables
(a local temp table starts with # and is only visible to the session that creates it)
In [19]: cur.execute("CREATE TABLE #test_some (val NVARCHAR(100));")
Out[19]: <turbodbc.cursor.Cursor at 0x111a0efd0>

In [20]: cur.execute("INSERT INTO #test_some (val) VALUES (?)", ("bar",))
---------------------------------------------------------------------------
Error                                     Traceback (most recent call last)
/Users/Dirkjonker/.pyenv/versions/3.5.2/envs/turbo/lib/python3.5/site-packages/turbodbc/exceptions.py in wrapper(*args, **kwds)
     34         try:
---> 35             return f(*args, **kwds)
     36         except InternError as e:

/Users/Dirkjonker/.pyenv/versions/3.5.2/envs/turbo/lib/python3.5/site-packages/turbodbc/cursor.py in execute(self, sql, parameters)
     71             buffer.add_set(parameters)
---> 72             buffer.flush()
     73         self.impl.execute()

Error: ODBC error
state: 42S02
native error code: 208
message: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Invalid object name '#test_some'.

During handling of the above exception, another exception occurred:

DatabaseError                             Traceback (most recent call last)
<ipython-input-20-725d00a6bff6> in <module>()
----> 1 cur.execute("INSERT INTO #test_some (val) VALUES (?)", ("bar",))

/Users/Dirkjonker/.pyenv/versions/3.5.2/envs/turbo/lib/python3.5/site-packages/turbodbc/exceptions.py in wrapper(*args, **kwds)
     35             return f(*args, **kwds)
     36         except InternError as e:
---> 37             raise DatabaseError(str(e))
     38     return wrapper

DatabaseError: ODBC error
state: 42S02
native error code: 208
message: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Invalid object name '#test_some'.

In [21]:

Example 2: identity insert
To be able to insert a value in an identity column (like an auto-increment column) you need to explicitly set IDENTITY_INSERT on that specific table to ON
cur.execute("SET IDENTITY_INSERT ##test_some ON")
Out[38]: <turbodbc.cursor.Cursor at 0x111a0efd0>

In [39]: cur.execute("INSERT INTO ##test_some (val) VALUES (?)", (1,))
---------------------------------------------------------------------------
Error                                     Traceback (most recent call last)
/Users/Dirkjonker/.pyenv/versions/3.5.2/envs/turbo/lib/python3.5/site-packages/turbodbc/exceptions.py in wrapper(*args, **kwds)
     34         try:
---> 35             return f(*args, **kwds)
     36         except InternError as e:

/Users/Dirkjonker/.pyenv/versions/3.5.2/envs/turbo/lib/python3.5/site-packages/turbodbc/cursor.py in execute(self, sql, parameters)
     71             buffer.add_set(parameters)
---> 72             buffer.flush()
     73         self.impl.execute()

Error: ODBC error
state: 23000
native error code: 544
message: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Cannot insert explicit value for identity column in table '##test_some' when IDENTITY_INSERT is set to OFF.

During handling of the above exception, another exception occurred:

DatabaseError                             Traceback (most recent call last)
<ipython-input-39-ca28f00caca6> in <module>()
----> 1 cur.execute("INSERT INTO ##test_some (val) VALUES (?)", (1,))

/Users/Dirkjonker/.pyenv/versions/3.5.2/envs/turbo/lib/python3.5/site-packages/turbodbc/exceptions.py in wrapper(*args, **kwds)
     35             return f(*args, **kwds)
     36         except InternError as e:
---> 37             raise DatabaseError(str(e))
     38     return wrapper

DatabaseError: ODBC error
state: 23000
native error code: 544
message: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Cannot insert explicit value for identity column in table '##test_some' when IDENTITY_INSERT is set to OFF.

I'll try investigating the ODBC trace, but did not find anything special at first glance.

Hm, perhaps this has something to do with missing autocommits? The operations seem to involve the Data Definition Language part of SQL, and some databases require commits after such operations to become effective. I'll try to check things tomorrow.

>>> cur.execute("CREATE TABLE test (a integer)")
<turbodbc.cursor.Cursor object at 0x102587950>
>>> cur.execute("INSERT INTO test VALUES (?)", [42])
<turbodbc.cursor.Cursor object at 0x102587950>
>>> cur.execute("CREATE TABLE #test (a integer)")
<turbodbc.cursor.Cursor object at 0x102587950>
>>> cur.execute("INSERT INTO #test VALUES (?)", [42])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "turbodbc/exceptions.py", line 51, in wrapper
    raise DatabaseError(str(e))
turbodbc.exceptions.DatabaseError: ODBC error
state: 42S02
native error code: 208
message: [FreeTDS][SQL Server]Invalid object name '#test'.

Things work for a regular table, but not for one with the fancy temporary name thing I have never seen before. Hm...

Just a quick suggestion (apologies for not trying this out myself first), if you commit() after creating the temporary table and before the insert, does the insert then work?
Also, what happens if you try global temporary tables (which are visible to everybody, not just the session owner)?  That is use ##test instead of #test.

Okay, I looked through the trace outputs. I think the difference is that turbodbc closes the statement handle between calls to execute(), while pyodbc merely calls SQLFreeStmt(). That may render the temporary table void.
@keitherskine It works with ##test. Commit has no effect :-(

@dirkjonker Could you please split off example number 2 into a different issue, so I don't accidently ignore it?

Yes, I see the same behavior in the odbc trace! And about the other issue, I just created #93

Hi! Sorry for the long delay. I did some further digging, using a pure ODBC approach, no turbodbc involved at all. Here is a C++ program:
#include <sql.h>
#include <sqlext.h>

#include <sstream>

std::string to_string(SQLRETURN code)
{
    switch (code) {
        case SQL_SUCCESS: return "SUCCESS";
        case SQL_SUCCESS_WITH_INFO: return "SUCCESS_WITH_INFO";
        case SQL_ERROR: return "ERROR";
        case SQL_NO_DATA: return "NO DATA";
        default:
            std::ostringstream output;
            output << code;
            return output.str();
    }
}

void print_error(SQLSMALLINT handle_type, SQLHANDLE & handle)
{
    SQLCHAR status_code[6];
    SQLINTEGER native_error = 0;
    SQLCHAR message[4097];
    SQLSMALLINT message_length = 0;

    SQLRETURN result = 0;
    result = SQLGetDiagRec(handle_type, handle, 1, status_code, &native_error, message, 4096, &message_length);
    std::cout << "SQLGetDiagRec(): " << to_string(result) << std::endl;
    if ((result == SQL_SUCCESS) || (result == SQL_SUCCESS_WITH_INFO)){
        std::cout << "   Error: " << status_code << " (" << native_error << "): " << message << std::endl;
    } else if (result == SQL_INVALID_HANDLE) {
        std::cout << "  INVALID HANDLE" << std::endl;
    } else if (result == SQL_ERROR) {
        std::cout << "  ERROR" << std::endl;
    } else {
        std::cout << "  NO DATA: " << status_code << std::endl;
    }
}

SQLCHAR * to_pointer(std::string const & s)
{
    return reinterpret_cast<SQLCHAR *>(const_cast<char *>(s.c_str()));
}

int main()
{
    std::cout << "\n\n\n*****************************" << std::endl;
    SQLRETURN result = 0;
    SQLHENV environment_handle;

    result = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &environment_handle);
    std::cout << "SQLAllocHandle(): " << to_string(result) << std::endl;

    result = SQLSetEnvAttr(environment_handle, SQL_ATTR_ODBC_VERSION, reinterpret_cast<SQLPOINTER>(SQL_OV_ODBC3), 0);
    std::cout << "SQLSetEnvAttr(environment): " << to_string(result) << std::endl;

    SQLHDBC connection_handle = 0;
    result = SQLAllocHandle(SQL_HANDLE_DBC, environment_handle, &connection_handle);
    std::cout << "SQLAllocHandle(connection): " << to_string(result) << std::endl;

    std::string connection_string("dsn=MSSQL;uid=user;pwd=password");
    SQLCHAR out_connection_string[1025];
    SQLSMALLINT out_connection_string_size = 0;
    result = SQLDriverConnect(connection_handle, SQL_NULL_HANDLE, reinterpret_cast<SQLCHAR*>(const_cast<char *>(connection_string.c_str())), connection_string.size(), out_connection_string, 1024, &out_connection_string_size, SQL_DRIVER_NOPROMPT);
    std::cout << "SQLDriverConnect(): " << to_string(result) << std::endl;

    SQLHSTMT statement_handle = 0;
    result = SQLAllocHandle(SQL_HANDLE_STMT, connection_handle, &statement_handle);
    std::cout << "SQLAllocHandle(statement): " << to_string(result) << std::endl;

    std::string const create_query("CREATE TABLE #temp_table (A integer)");

    // ****** BLOCK A *****
    result = SQLExecDirect(statement_handle, to_pointer(create_query), create_query.size());
    std::cout << "SQLExecDirect('" << create_query << "'): " << to_string(result) << std::endl;

    // ****** BLOCK B *****
    result = SQLPrepare(statement_handle, to_pointer(create_query), create_query.size());
    std::cout << "SQLPrepare('" << create_query << "'): " << to_string(result) << std::endl;
    result = SQLExecute(statement_handle);
    std::cout << "SQLExecute(statement): " << to_string(result) << std::endl;

    std::string const select_query("SELECT * FROM #temp_table");
    result = SQLExecDirect(statement_handle, to_pointer(select_query), select_query.size());
    std::cout << "SQLExecDirect('" << select_query << "'): " << to_string(result) << std::endl;
    print_error(SQL_HANDLE_STMT, statement_handle);

    result = SQLFreeHandle(SQL_HANDLE_STMT, statement_handle);
    std::cout << "SQLFreeHandle(statement): " << to_string(result) << std::endl;

    result = SQLDisconnect(connection_handle);
    std::cout << "SQLDisconnect(connection): " << to_string(result) << std::endl;

    result = SQLFreeHandle(SQL_HANDLE_DBC, connection_handle);
    std::cout << "SQLFreeHandle(connection): " << to_string(result) << std::endl;

    result = SQLFreeHandle(SQL_HANDLE_ENV, environment_handle);
    std::cout << "SQLFreeHandle(environment): " << to_string(result) << std::endl;
    return 0;
}

It is not pretty, I know. Error handling is sprinkled where I needed it. The important thing is the presence of the Block A and Block B instructions. If I run the program with Block A (Block B commented out), I get the following output:
*****************************
SQLAllocHandle(): SUCCESS
SQLSetEnvAttr(environment): SUCCESS
SQLAllocHandle(connection): SUCCESS
SQLDriverConnect(): SUCCESS
SQLAllocHandle(statement): SUCCESS
SQLExecDirect('CREATE TABLE #temp_table (A integer)'): NO DATA
SQLExecDirect('SELECT * FROM #temp_table'): SUCCESS
SQLGetDiagRec(): NO DATA
  NO DATA: 00000
SQLFreeHandle(statement): SUCCESS
SQLDisconnect(connection): SUCCESS
SQLFreeHandle(connection): SUCCESS
SQLFreeHandle(environment): SUCCESS

All is well. If I run the program with Block B (Block A commented out), I get the following output:
*****************************
SQLAllocHandle(): SUCCESS
SQLSetEnvAttr(environment): SUCCESS
SQLAllocHandle(connection): SUCCESS
SQLDriverConnect(): SUCCESS
SQLAllocHandle(statement): SUCCESS
SQLPrepare('CREATE TABLE #temp_table (A integer)'): SUCCESS
SQLExecute(statement): NO DATA
SQLExecDirect('SELECT * FROM #temp_table'): ERROR
SQLGetDiagRec(): SUCCESS
   Error: 42S02 (208): [FreeTDS][SQL Server]Invalid object name '#temp_table'.
SQLFreeHandle(statement): SUCCESS
SQLDisconnect(connection): SUCCESS
SQLFreeHandle(connection): SUCCESS
SQLFreeHandle(environment): SUCCESS

This one fails with the same error message as turbodbc. The issue lies in that Block A uses SQLExecDirect() to execute the create statement directly without preparing it, while Block B uses SQLPrepare() to prepare the query followed by SQLExecute() to execute the prepared query.
Honestly, I do not think that this is sane behavior on the driver side (FreeTDS in my example). I'd rather report this upstream than have turbodbc maintaining code paths for statements that require parameters and preparing, and those that do not.
@dirkjonker What is your take on this?

Thanks @MathMagique for the investigation. Indeed it looks like odd behavior, I will take a closer look later today. The code example is very useful, I'm not a C++ developer but I can work with that easily.

So far I can't find any documented reason why the behavior for SQLExecDirect would be different from a Prepare and then Execute...

Oddly enough, both versions work if you use ##temp_table.

I believe this is probably SQL Server behaviour, rather than a driver quirk.  In SQL Server, tables prefixed with "#" are visible only within a session.  When the session expires, the table is dropped.  Tables prefixed with "##" are visible across sessions.  When SQL Server executes a parameterised query, SQL Server wraps that query within a session.  Hence when that query completes, the session expires, and any "#" tables expire with it.  As follows:
import pyodbc
conn = pyodbc.connect('...', autocommit=True)
cursor = conn.cursor()

cursor.execute("SELECT CAST(1 as int) AS A INTO #t1")  # succeeds
cursor.execute("SELECT * FROM #t1").fetchall()  # this query succeeds

cursor.execute("SELECT CAST(? as int) AS A INTO #t2", (1,))  # apparently succeeds
cursor.execute("SELECT * FROM #t2").fetchall()  # fails with: pyodbc.ProgrammingError: ('42S02', "[42S02] [Microsoft][SQL Server Native Client 10.0][SQL Server]Invalid object name '#t2'. (208) (SQLExecDirectW)")

Table #t2 is dropped as soon as the query completes, hence the last query fails.

Hm, even though it sucks, I could use the presence of parameters to use either direct execute or prepared execution. It is odd behavior on MSSQL side, though :joy:

Still, the "local" temporary table (prefixed with a single # is supposed to be visible throughout the duration of the connection:

Local temporary tables have a single number sign (#) as the first character of their names; they are visible only to the current connection for the user, and they are deleted when the user disconnects from the instance of SQL Server.
Source: https://docs.microsoft.com/en-us/sql/relational-databases/tables/tables

I see the same behavior with the Microsoft ODBC driver, so I'm not sure if it is a driver problem, perhaps it is related to SQL Server itself.
Based on the code example, I tried (combinations of) the following, without success:

Turning off autocommit
Explicitly committing the temp table creation with SQLEndTran
Freeing the statement handle and creating a new one (this works with direct execution but not with prepare/execute)

At this point I'm not quite sure what would be the best way to handle this. Maybe give the user the option to run only direct executions? As Turbodbc is designed for large buffers, there may not be many people that benefit from preparing and executing the same query many times with different parameters. Still, that may only be useful for this particular issue. Not sure if there would be any other advantages.


Add python3-fabric-pip to rosdep/python.yaml

Please add the following dependency to the rosdep database.
Package name:
python3-fabric-pip
Package Upstream Source:
Source: https://github.com/fabric/fabric
Docs: https://www.fabfile.org/
Purpose of using this:
Fabric is a Python3 utility library for remote execution of processes using SSH with first-class citizens for ssh-connection, processes, etc.
Links to Distribution Packages
This package is only distributed via PyPi: https://pypi.org/project/fabric/

It has happened more than one month since the last comment, so closing.
@airballking please reopen or open a new PR when it's ready.
Thanks!

I have made a new PR for fabric here: https://github.com/ros/rosdistro/pull/43466


Set up Gitter

This may sound a bit overkill, but how about we set up a Gitter community for Excalidraw? It'd be useful even now, to discuss things without having to create whole issues for simple questions.
Will need to be done by @vjeux
https://gitter.im/cypress-io/cypress#createcommunity
https://gitlab.com/gitlab-org/gitter/webapp/blob/develop/docs/faq.md#why-isnt-my-github-organisation-or-repos-appearing
Thoughts?

Great idea! Will set it up in a few hours

Gitter or Discord?

Discord feels a bit too heavy for our app, and Gitter has GitHub integration, which is a plus.

I think I created it: https://gitter.im/excalidraw/community#
Can someone join to see if it works?

Works! :-)

Awesome :sparkles:. Closing.
Btw, to enable threads (beta):


Usage and billing for Disconnected mode ?

Does this page assume connected mode deployment ? How is usage and billing done for disconnected mode ?

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: ac952c24-f5eb-9b49-ce4c-43f423d00d91
Version Independent ID: 4813b399-514b-0fd4-78ac-32f962abf82d
Content: Customer billing and chargeback in Azure Stack Hub - Azure Stack Hub
Content Source: azure-stack/operator/azure-stack-billing-and-chargeback.md
Service: azure-stack
Sub-service: azure-stack-hub
GitHub Login: @sethmanheim
Microsoft Alias: sethm

@rboro-home
Thanks for your feedback! We will investigate and update as appropriate.

@rboro-home
Thank you for your feedback!
Since this issue isn't directly related to improving our docs, and to gain a better understanding of your issue, I'd recommend working closer with our support team via an [Azure support request] (https://docs.microsoft.com/en-us/azure/azure-portal/supportability/how-to-create-azure-support-request). Or you can leverage our Q&A forum by posting your issue there so our community, and MVPs can further assist you in troubleshooting this issue or finding potential workarounds.
[Teams Q&A forum] (https://docs.microsoft.com/en-us/answers/topics/46488/office-teams-windows-itpro.html) for technical questions about the configuration and administration of Microsoft Teams on Windows.
[Microsoft Teams Community forum] (https://answers.microsoft.com/en-us/msteams/forum?sort=LastReplyDate&dir=Desc&tab=All&status=all&mod=&modAge=&advFil=&postedAfter=&postedBefore=&threadType=All&isFilterExpanded=false&page=1)
Thank you for your time and patience throughout this issue.


Add new CFA contractor to CDCGov Github

What type of help do you need?

[ ] Question
[ ] New Repo
[ ] Delete Repo
[x] User Membership (please make sure new members are familiar with the CDC open practices and set up their profile with name and org info to help people collaborate with them)
[ ] Other

Please describe how you'd like us to help.
I am a new contractor working with CDC/OD/CFA. Please add me to the CDCGov GitHub Organization.
My details are as follows:
Katherine Hudson
<EMAIL_ADDRESS>k88hudson-cfa

Your CDC email account should have invite to github.com/CDCgov. Happy coding!


Update summary card to say "New product found" if the barcode is not in the database.

What

Update summary card to say "New product found" if the barcode is not in the database.

Part of

#505

Mocks
Mocks are here

A simplistic way to monitor whether the product is ready would be to check for states at every app opening/daily/whatever. When Nutri-Score, Eco-Score and ingredients are computed, a notification could be sent.

@jasmeet0817 I believe this one is fixed and can be closed.

@jasmeet0817 I believe this one is fixed and can be closed.

Yep. Done. I can't close it from the phone, strange


Feature request: Support via json

For example I have via layout as define here: https://gist.github.com/haunt98/d1210e625c2bf021d9a59f84ef822f9f
Is there a plan to support via in the future?

It is something on my list, although the priority is low given:

VIA already visualizes the keymap itself (although not all layers at once unless they added a print option?)
qmk via2json can (in theory) be used to convert the keymap to the QMK json keymap format keymap-drawer can parse

I would be open to having it in the repo and having feedback e.g. in the form of an issue like this one helps, so thanks for opening.
(Note to self, I should refactor the parse module to split it up further since it will get unwieldy if we add more parsers.)

Thanks @caksoylar for quick reply.
TIL about qmk via2json, let me try that first.
VIA already show image, but can not export or generate it programmatically, I want to explore more things before come back screenshot my VIA layout :D
Also feel free to close this issue if you want.
Many thanks.

I'll keep it open since it is eventually planned. I'd appreciate if you let me know how it goes with qmk via2json!

Sorry for late reply, but it works!
So I run qmk via2json with my gist via layout json:
qmk via2json -kb dztech/dz60rgb_wkl/v2 dz60rgb_wkl_v2.layout.json -o qmk.json

Then upload to your website as you can see here

Thank you for the update! Since it is confirmed to work, I'll expand the README to add an example command like yours.

Thanks @caksoylar

I will drop a link to https://github.com/YAL-Tools/vial-to-keymap-drawer here, which supports Vial and VIA files.