Metadata encapsulation

Purpose:
This PR introduces modules and functions to parse standardized metadata files.
** the standardized metadata file can be found here **
/Volumes/GoogleDrive/My Drive/ELISAarrayReader/data_for_tests_and_github/Metadata_and_Plate_configuration.xlsx
Features:
This PR enables one to select the type of metadata format using the -m flag at CLI:

".xml" files (old style)
".xlsx" (excel)

It introduces two new modules:

extract/metadata.py

contains a single class that will parse the correct metadata and assign constants

extract/constants.py

holds hardware, array, and other constants in a single location.

Details:
All workflows follow a similar procedure, which are now encapsulated in the MetaData class:

parse a text file containing hardware, array, experiment, data
place relevant info from 1 into dictionaries or lists
create arrays whose (row, column) positions contain information from 2
compute other constants (such as indexed fiducial locations) from 3

Minor details:

I've moved all notebooks to subfolders "notebooks".  There is one subfolder for each of extract/transform/load
CI failed while reading excel files using Pandas.  It required the dependency: "xlrd >= 1.0.0"
Writing temporary excel metadata files for tests, using Pandas, requires one of two backends: xlsxwriter, or openpyxl.  Thus, we should consider keeping openpyxl as a dependency (for tests, at least).
"Well" segmentation for standard ELISAS uses a very simple workflow and mostly does not require any metadata from the above metadata sheet.  It is mostly untouched.

Questions:

A few experiments have a lot of .xlsx reports and extra files in the data folder.  Can we move these to subfolders and maintain a cleaner "data" directory?
There are a few intermediate data structures (in constants.py):
layout, fiducials, spots, replicates
These are currently in constants.py but could easily be MetaData class variables, as they are not accessed anywhere else.  It's an easy refactor, but let me know if you think they'll be needed anywhere else.

Future:

there are very few tests at the moment.  I spent some time getting the conftest fixtures created, which should be a good starting point for making more tests.
OD reporting is not formatted the per-antigen right now (it is per-well).  This will be fixed soon.

Registration of spots looks good (from debug plots).
But, there are differences in OD between when the pipeline was validated against scienion data and now.  Not sure if they are material.
Output that was compared against scienion (/Volumes/GoogleDrive/My Drive/ELISAarrayReader/images_scienion/2020-04-08-14-48-49-COVID_concentrationtest_April8_images/python_fit_ODs.xlsx)

Output from current branch:

It is time to export ODs such that they are laid out per antigen with 2D format that represents the well. I am adding that information to metadata file.
Some areas to pay attention to when rebasing this branch on current master:

all workflows now use io_utils to find files either from folder or in subfolders.
all workflows should output intensities by consistent name, so that interpretation part of the pipeline can read it all. I suggest pysero_spot, pysero_od, pysero_bg for the names of excel sheets in the output workbook.
if  rebasing the code breaks unit tests, please comment them out for now. They can be fixed in a dedicated branch once the squid data is analyzed.

Additional points:

Keep the names of antigens precise (i.e., xkappa-biotin instead of Fiducial and GFP-foldon instead of negative) in array_antigens sheet. We can interpret antigens differently when analyzing the data.

Also, we should maintain index information for antigens when writing ODs, intensities, and background.

See the output template in '/Volumes/GoogleDrive/My Drive/ELISAarrayReader/images_scienion/2020-04-08-14-48-49-COVID_concentrationtest_April8_images/pysero_output_data_metadata.xlsx'. The first few sheets of workbook are metadata and the rest, od, intensity, background per antigen.

Additional points:

Keep the names of antigens precise (i.e., xkappa-biotin instead of Fiducial and GFP-foldon instead of negative) in array_antigens sheet. We can interpret antigens differently when analyzing the data.
Also, we should maintain index information for antigens when writing ODs, intensities, and background.

See the output template in '/Volumes/GoogleDrive/My Drive/ELISAarrayReader/images_scienion/2020-04-08-14-48-49-COVID_concentrationtest_April8_images/pysero_output_data_metadata.xlsx'. The first few sheets of workbook are metadata and the rest, od, intensity, background per antigen.

Would it be ok to allow both "Fiducial" and "xkappa-biotin" ?  I just wonder if a fiducial should always be made using xkappa-biotin.  I also wonder if "xkappa-biotin" is more prone to misspellings :-)

Additional points:

Keep the names of antigens precise (i.e., xkappa-biotin instead of Fiducial and GFP-foldon instead of negative) in array_antigens sheet. We can interpret antigens differently when analyzing the data.
Also, we should maintain index information for antigens when writing ODs, intensities, and background.

See the output template in '/Volumes/GoogleDrive/My Drive/ELISAarrayReader/images_scienion/2020-04-08-14-48-49-COVID_concentrationtest_April8_images/pysero_output_data_metadata.xlsx'. The first few sheets of workbook are metadata and the rest, od, intensity, background per antigen.

Would it be ok to allow both "Fiducial" and "xkappa-biotin" ? I just wonder if a fiducial should always be made using xkappa-biotin. I also wonder if "xkappa-biotin" is more prone to misspellings :-)

For this array, we could call replace xkappa-biotin by fiducial. Not sure if there are other fiducial antigens. It is useful to leave the detail of antigen for whoever is interpreting the data.

It is time to export ODs such that they are laid out per antigen with 2D format that represents the well. I am adding that information to metadata file.

Can we assume the image files are named a consistent way?  Such as "A1" "A2" ... "B12" ... "H12"?  I see there's some discussion about this with octopi, but don't know if there's a hard conclusion

Additional points:

Keep the names of antigens precise (i.e., xkappa-biotin instead of Fiducial and GFP-foldon instead of negative) in array_antigens sheet. We can interpret antigens differently when analyzing the data.
Also, we should maintain index information for antigens when writing ODs, intensities, and background.

See the output template in '/Volumes/GoogleDrive/My Drive/ELISAarrayReader/images_scienion/2020-04-08-14-48-49-COVID_concentrationtest_April8_images/pysero_output_data_metadata.xlsx'. The first few sheets of workbook are metadata and the rest, od, intensity, background per antigen.

Would it be ok to allow both "Fiducial" and "xkappa-biotin" ? I just wonder if a fiducial should always be made using xkappa-biotin. I also wonder if "xkappa-biotin" is more prone to misspellings :-)

Maybe write both spot type and antigen name as 2 separate sheets in the output xlsx? eg. antigen name : xkappa-biotin, spot type: Fiducial

Can we assume the image files are named a consistent way? Such as "A1" "A2" ... "B12" ... "H12"? I see there's some discussion about this with octopi, but don't know if there's a hard conclusion

Yes, we can safely assume that images will follow wellnames. It is a simple change/script to rename files A1...

Maybe write both spot type and antigen name as 2 separate sheets in the output xlsx? eg. antigen name : xkappa-biotin, spot type: Fiducial

I'm ok with this.  This is actually the way scienion sciReader writes it.
It has a "marker" field in the .xml for "Reference, Diagnostic" = Fiducial, and "Diagnostic" for antigens.
Then later, it has a "multiplet" field for antigen name.

Maybe write both spot type and antigen name as 2 separate sheets in the output xlsx? eg. antigen name : xkappa-biotin, spot type: Fiducial

I'm ok with this. This is actually the way scienion sciReader writes it.
It has a "marker" field in the .xml for "Reference, Diagnostic" = Fiducial, and "Diagnostic" for antigens.
Then later, it has a "multiplet" field for antigen name.

updated the template.

See the output template in '/Volumes/GoogleDrive/My Drive/ELISAarrayReader/images_scienion/2020-04-08-14-48-49-COVID_concentrationtest_April8_images/pysero_output_data_metadata.xlsx'. The first few sheets of workbook are metadata and the rest, od, intensity, background per antigen.

Right now we write three separate workbooks: ODs, INT, BG, with the latter two written only during "debug" mode.
I see that your template has three worksheets, one for: OD, INT, BG.  Perhaps it's better to separate the INT and BG into separate workbooks, like earlier?

See the output template in '/Volumes/GoogleDrive/My Drive/ELISAarrayReader/images_scienion/2020-04-08-14-48-49-COVID_concentrationtest_April8_images/pysero_output_data_metadata.xlsx'. The first few sheets of workbook are metadata and the rest, od, intensity, background per antigen.

Right now we write three separate workbooks: ODs, INT, BG, with the latter two written only during "debug" mode.
I see that your template has three worksheets, one for: OD, INT, BG. Perhaps it's better to separate the INT and BG into separate workbooks, like earlier?

I suggest always exporting intensity and background - they are useful for interpretation.

"A few experiments have a lot of .xlsx reports and extra files in the data folder. Can we move these to subfolders and maintain a cleaner "data" directory?"
I agree, we should organize the data directory. Please feel free to move files around on google drive.

Codecov Report

Merging #57 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #57   +/-   ##
=======================================
  Coverage   36.11%   36.11%
=======================================
  Files          23       23
  Lines        1534     1534
=======================================
  Hits          554      554
  Misses        980      980

Flag
Coverage Δ

#unittests
36.11% <0.00%> (ø)

Continue to review full report at Codecov.

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

The constants module is really well thought.  Well done.
I have tested the current version and the pipeline runs well with fit workflow. The ODs output per plate layout look good. I think placing OD, intensities, and background in separate excel file makes sense.
I committed a change so that files are not output in pysero_... directory. Let's copy the metadata in there too. So all of the files needed for interpretation are available in the same folder.
The background estimation the output filenames in the interp workflow are out of sync (/Volumes/GoogleDrive/My Drive/ELISAarrayReader/data_for_tests_and_github/April_8_COVID_ConcentrationTest_metadata-branch/pysero_20200501_0829_interp).

I suggest addressing 1-3 first @bryantChhun, and then analyzing the squid data with this branch. We can merge when 4. is fixed too.

Strong work @bryantChhun! Merging.


NO-JIRA Fix indention in browser.js

This only changes the formatting, no functional changes. This will make it easier to review future functional changes of the file.

The github diff mechanism apparently isn't very intelligent, you can use this link https://github.com/apache/activemq-artemis/pull/2884/files?w=1 to see that no functional changes were applied.


Add a default application/xml serialization library

Looks like some endpoints on Graph support application/xml content type now. e.g https://learn.microsoft.com/en-us/graph/api/trustframeworkpolicy-get?view=graph-rest-beta
To provide a better customer experience, we should add an xml serialization library that is registered with other serializers too.
Related to https://github.com/microsoftgraph/msgraph-beta-sdk-dotnet/issues/883

$value is a "binary payload" by nature in odata conventions. Meaning it's not schematized. So even if we implemented a parsing/serialization provide for XML, the description would still not contain a schema for this operation. And kiota would still generate a Task or equivalent.
We could get around that by adding post processing to the OAS description, or something in XOD + implementation in Yoko, but that's probably a lot of work end to end for a single scenario at this point.
My recommendation here is that we leave this on ice until we get overwhelming customer demand for it.
Of course the other scenarios being:

Graph can technically return xml instead of JSON for most structured endpoints if you ask nicely. But I'm not sure why anybody choose that when it's going to result in heavier payloads and when they already have a client using JSON.
3rd party APIs might be XML only. But so far nobody has requested support for it.


OCPVE-302: feat: fstype e2e tests

Codecov Report

Merging #357 (bde9fe4) into main (00c61db) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files

@@           Coverage Diff           @@
##             main     #357   +/-   ##
=======================================
  Coverage   14.52%   14.52%
=======================================
  Files          23       23
  Lines        1921     1921
=======================================
  Hits          279      279
  Misses       1618     1618
  Partials       24       24

One minor question but looks good otherwise. Holding for @qJkee's review.
/lgtm
/hold

/unhold

/lgtm


Add benchmarks for BYTE_STREAM_SPLIT encoded Parquet FIXED_LEN_BYTE_ARRAY data

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
#6159 added support for using BYTE_STREAM_SPLIT with FIXED_LEN_BYTE_ARRAY primitive types. While some effort was put into optimizing the encoding path, the decoding path is largely unoptimized (and seemingly quite slow). It would be nice to have some benchmarks for the new encodings to guide future optimization efforts.
Describe the solution you'd like
Benchmarks for Float16/FIXED_LEN_BYTE_ARRAY(2) and DECIMAL/FIXED_LEN_BYTE_ARRAY(16) would be a good start for some likely to be used data types.
Describe alternatives you've considered

Additional context
See https://github.com/apache/arrow-rs/pull/6159#discussion_r1702333489 and following.

label_issue.py automatically added labels {'parquet'} from #6204


Exception: Unable to run "adb", check your Android SDK installation and ANDROID_SDK_ROOT environment variable: C:\Users\Pulsara\AppData\Local\Android\Sdk\platform-tools\adb.exe

When I start the project popup shows "Flutter daemon terminate" and when starting the flutter application it shows the "No Connected Devices Found" dialog box. Then I run flutter doctor -v  doctor found issues in:
Connected device (the doctor check crashed)
    X Due to an error, the doctor check did not complete. If the error message below is not helpful, please let us know about this issue at https://github.com/flutter/flutter/issues.
    X Exception: Unable to run "adb", check your Android SDK installation and ANDROID_SDK_ROOT environment variable: C:\Users\Pulsara\AppData\Local\Android\Sdk\platform-tools\adb.exe
    • #0      throwToolExit (package:flutter_tools/src/base/common.dart:10:3)
      #1      AndroidDevices.pollingGetDevices (package:flutter_tools/src/android/android_device_discovery.dart:78:7)
      <asynchronous suspension>
      #2      PollingDeviceDiscovery._populateDevices (package:flutter_tools/src/device.dart:413:54)
      <asynchronous suspension>
      #3      Future.wait.<anonymous closure> (dart:async/future.dart)
      <asynchronous suspension>
      #4      DeviceManager.getAllConnectedDevices (package:flutter_tools/src/device.dart:170:40)
      <asynchronous suspension>
      #5      DeviceValidator.validate (package:flutter_tools/src/doctor.dart:515:34)
      <asynchronous suspension>
      #6      asyncGuard.<anonymous closure> (package:flutter_tools/src/base/async_guard.dart:111:24)
      <asynchronous suspension>

I already set up the SDK path as ANDROID_SDK_TOOLS  in user variables and tools, and platform-tools in Path. And reinstalled the platform-tools as well but did not solve the issue. I cannot figure the solution if anyone can give me a solution it will be really helpful to me.

When I start the project popup shows "Flutter daemon terminate" and when starting the flutter application it shows the "No Connected Devices Found" dialog box. Then I run flutter doctor -v doctor found issues in:
Connected device (the doctor check crashed)
    X Due to an error, the doctor check did not complete. If the error message below is not helpful, please let us know about this issue at https://github.com/flutter/flutter/issues.
    X Exception: Unable to run "adb", check your Android SDK installation and ANDROID_SDK_ROOT environment variable: C:\Users\Pulsara\AppData\Local\Android\Sdk\platform-tools\adb.exe
    • #0      throwToolExit (package:flutter_tools/src/base/common.dart:10:3)
      #1      AndroidDevices.pollingGetDevices (package:flutter_tools/src/android/android_device_discovery.dart:78:7)
      <asynchronous suspension>
      #2      PollingDeviceDiscovery._populateDevices (package:flutter_tools/src/device.dart:413:54)
      <asynchronous suspension>
      #3      Future.wait.<anonymous closure> (dart:async/future.dart)
      <asynchronous suspension>
      #4      DeviceManager.getAllConnectedDevices (package:flutter_tools/src/device.dart:170:40)
      <asynchronous suspension>
      #5      DeviceValidator.validate (package:flutter_tools/src/doctor.dart:515:34)
      <asynchronous suspension>
      #6      asyncGuard.<anonymous closure> (package:flutter_tools/src/base/async_guard.dart:111:24)
      <asynchronous suspension>

I already set up the SDK path as ANDROID_SDK_TOOLS in user variables and tools, and platform-tools in Path. And reinstalled the platform-tools as well but did not solve the issue. I cannot figure the solution if anyone can give me a solution it will be really helpful to me.

When I start the project popup shows "Flutter daemon terminate" and when starting the flutter application it shows the "No Connected Devices Found" dialog box. Then I run flutter doctor -v doctor found issues in:
Connected device (the doctor check crashed)
    X Due to an error, the doctor check did not complete. If the error message below is not helpful, please let us know about this issue at https://github.com/flutter/flutter/issues.
    X Exception: Unable to run "adb", check your Android SDK installation and ANDROID_SDK_ROOT environment variable: C:\Users\Pulsara\AppData\Local\Android\Sdk\platform-tools\adb.exe
    • #0      throwToolExit (package:flutter_tools/src/base/common.dart:10:3)
      #1      AndroidDevices.pollingGetDevices (package:flutter_tools/src/android/android_device_discovery.dart:78:7)
      <asynchronous suspension>
      #2      PollingDeviceDiscovery._populateDevices (package:flutter_tools/src/device.dart:413:54)
      <asynchronous suspension>
      #3      Future.wait.<anonymous closure> (dart:async/future.dart)
      <asynchronous suspension>
      #4      DeviceManager.getAllConnectedDevices (package:flutter_tools/src/device.dart:170:40)
      <asynchronous suspension>
      #5      DeviceValidator.validate (package:flutter_tools/src/doctor.dart:515:34)
      <asynchronous suspension>
      #6      asyncGuard.<anonymous closure> (package:flutter_tools/src/base/async_guard.dart:111:24)
      <asynchronous suspension>

I already set up the SDK path as ANDROID_SDK_TOOLS in user variables and tools, and platform-tools in Path. And reinstalled the platform-tools as well but did not solve the issue. I cannot figure the solution if anyone can give me a solution it will be really helpful to me.

Closing this as a duplicate of https://github.com/flutter/flutter/issues/72101


Unit 2 Gym version 0.24.0 Warning

A quick small one-
This warning didn't cause any problems, but maybe it would be nice to have a note saying "ignore that error" or something lol
On Unit 2 Step 3 I get this warning (in Colab)...
"Warning: Gym version v0.24.0 has a number of critical issues with gym.make such that the reset and step functions are called before returning the environment. It is recommend to downgrading to v0.23.1 or upgrading to v0.25.1"

Hey there 👋 . Thanks for pointing this out 🤗 . Yes we're launching a new version of the course with updates from feedback from students. I'm adding it to the update list.

Cool! I really appreciate you guys updating this course. Would it be easier if I add small issues like this one as replies to this thread, rather than having new threads?
Because I have another one😆, from Unit 3 Step 2-
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
ipython 7.9.0 requires jedi>=0.10, which is not installed.
thinc 8.1.5 requires typing-extensions<4.2.0,>=<IP_ADDRESS>; python_version < "3.8", but you have typing-extensions 4.4.0 which is incompatible.
spacy 3.4.2 requires typing-extensions<4.2.0,>=3.7.4; python_version < "3.8", but you have typing-extensions 4.4.0 which is incompatible.
flask 1.1.4 requires click<8.0,>=5.1, but you have click 8.1.3 which is incompatible.
flask 1.1.4 requires Jinja2<3.0,>=2.10.1, but you have jinja2 3.1.2 which is incompatible.
confection 0.0.3 requires typing-extensions<4.2.0,>=<IP_ADDRESS>; python_version < "3.8", but you have typing-extensions 4.4.0 which is incompatible.

Looks like requirements.txt needs to be updated to include

jedi >= 0.10
3.7.4 <= typing-extensions < 4.2.0
5.1 <= click < 8.0
2.10.1 <= Jinja2 < 3.0


[BUG]: database url not parsing password properly

What version of drizzle-orm are you using?
0.30.10
What version of drizzle-kit are you using?
0.21.4
Describe the Bug
Creating random secure passwords using openssl is pretty common
openssl rand -base64 32

e.g result: 1kgABjxw/K6lg/jsjztzsK0FD8dVgUDxwo03ovjGinc=
The "/" character seems to break the way passwords get parsed.
Took me a while scratching my head wondering what was happening. The error that gets thrown from drizzle-kit: 'ERR_INVALID_URL'
Expected behavior
Password should be parsed successfully or clearer error message
Environment & setup
No response

This issue is from driver and not drizzle. Please create this issue on a driver gihub page


Mail Merge in Gmail doesn't work

The first 2 times I tried Mail Merge in Gmail by following the directions here it worked. However, beginning yesterday, it has stopped working. The markers in the email draft correspond to the column headers in the Google Sheet. (I copied the header names and pasted them in the email draft with the double brackets around them, like this: {{First name}}. The emails will send with the email draft to the recipients listed in the Google Sheet, but none of the fields within the email body will fill in. Instead there are blanks where they are missing. This seems like a glitch in the system. What can I do to fix this?

I tried the sheet/script for the first time today, and am experiencing the same issue.

My wife encountered the same problem.  She had previously used to generate approximately 500 emails without an issue however this time when generating about 1200 emails the data was blank.  She broke it into two smaller groupings and they both went through with all the data as expected.
I suspect the problem has to do with some maximum number of rows or amount of data being processed.

Unfortunately, it doesn't have to do with maximum rows of data for me. I was demonstrating how to use the tool by using only 2 rows of test data (with real email addresses) when this stopped working properly.

The same occurred to me with just 2 rows. Emails were sent separately and the {{ }} in the subject was Changed as expected. But the body was blank. Is there a fix?
// loop through all the rows of data   obj.forEach(function(row, rowIdx){     // only send emails is email_sent cell is blank and not hidden by filter
Line 81 : What is rowIdx that hasn't mentioned anywhere. I suspect that's the issue. Any fixes?

The same occurred to me with just 2 rows. Emails were sent separately and the {{ }} in the subject was Changed as expected. But the body was blank. Is there a fix?
// loop through all the rows of data   obj.forEach(function(row, rowIdx){     // only send emails is email_sent cell is blank and not hidden by filter
Line 81 : What is rowIdx that hasn't mentioned anywhere. I suspect that's the issue. Any fixes?

Found a solution.
It worked for me. When pasting the names of the columns in the email body. Paste them as plain text(ctrl+shift+v). Otherwise the formatting interrupts the algorithm.

Found a solution.
It worked for me. When pasting the names of the columns in the email body. Paste them as plain text(ctrl+shift+v). Otherwise the formatting interrupts the algorithm.

Thanks vanowarna. I just tried clearing all formatting and sending a test to myself again. Same issue. Then I just typed in my name and email address after clearing formatting in all cells. Ditto.
I still think it's useful, it just looks like I won't be able to personalize things.

Thanks vanowarna. I just tried clearing all formatting and sending a test to myself again. Same issue. Then I just typed in my name and email address after clearing formatting in all cells. Ditto.
I still think it's useful, it just looks like I won't be able to personalize things.

I have this same issue today.
The part which is very confusing is that if I look at the email using "Show Original" I CAN SEE THE INSERTED TEXT just fine. The HTML version as well as the info at the bottom does NOT have the text though.
For example, the draft email has
{{Discount code}} 4
{{First name}} 5
in it.
In the non-HTML part of the Show Original I see
xx 4
Gary 5
(Those are the right test values in the spreadsheet.)
However, in the area with
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
I can see
 4 5
So somehow the actual text is getting dropped.

I have this same issue today.
The part which is very confusing is that if I look at the email using "Show Original" I CAN SEE THE INSERTED TEXT just fine. The HTML version as well as the info at the bottom does NOT have the text though.
For example, the draft email has
{{Discount code}} 4
{{First name}} 5
in it.
In the non-HTML part of the Show Original I see
xx 4
Gary 5
(Those are the right test values in the spreadsheet.)
However, in the area with
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
I can see
 4 5
So somehow the actual text is getting dropped.

I have this same issue today.
The part which is very confusing is that if I look at the email using "Show Original" I CAN SEE THE INSERTED TEXT just fine. The HTML version as well as the info at the bottom does NOT have the text though.
For example, the draft email has
{{Discount code}} 4
{{First name}} 5
in it.
In the non-HTML part of the Show Original I see
xx 4
Gary 5
(Those are the right test values in the spreadsheet.)
However, in the area with
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
I can see
4
5
So somehow the actual text is getting dropped.

Did you try this  https://github.com/googleworkspace/solutions/issues/155#issuecomment-764383214

I have this same issue today.
The part which is very confusing is that if I look at the email using "Show Original" I CAN SEE THE INSERTED TEXT just fine. The HTML version as well as the info at the bottom does NOT have the text though.
For example, the draft email has
{{Discount code}} 4
{{First name}} 5
in it.
In the non-HTML part of the Show Original I see
xx 4
Gary 5
(Those are the right test values in the spreadsheet.)
However, in the area with
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
I can see
4
5
So somehow the actual text is getting dropped.

Did you try this  https://github.com/googleworkspace/solutions/issues/155#issuecomment-764383214

Yes, indeed I made sure that there was no formatting of the names in {{}}.
Note in my example there's a 4 and 5. That's because I had multiple tests. One was an exact copy from the spreadsheet into the draft email and that included the name being in bold and another was it as plain text.
I also see that the quoted-printable stuff is getting "processed" by Github's comment section. Ugh. Let me see if I can post it again:
"<spa=
n style=3D"color:rgb(0,0,0);font-family:Roboto,RobotoDraft,Helvetica,Arial,=
sans-serif;font-size:13px;white-space:pre-wrap"> 4 5"
(In the preview this info is now showing. This is the relevant chunk of stuff in the email from which the displayed email is generated. It's at the end of Show Original.)
This HTML stuff shows the 4 and 5 but not the values from the spreadsheet. As mentioned before, in the text of the Show Original the values from the spreadsheet are THERE. Something is happening when the "conversion" to HTML is taking place.

Yes, indeed I made sure that there was no formatting of the names in {{}}.
Note in my example there's a 4 and 5. That's because I had multiple tests. One was an exact copy from the spreadsheet into the draft email and that included the name being in bold and another was it as plain text.
I also see that the quoted-printable stuff is getting "processed" by Github's comment section. Ugh. Let me see if I can post it again:
"<spa=
n style=3D"color:rgb(0,0,0);font-family:Roboto,RobotoDraft,Helvetica,Arial,=
sans-serif;font-size:13px;white-space:pre-wrap"> 4 5"
(In the preview this info is now showing. This is the relevant chunk of stuff in the email from which the displayed email is generated. It's at the end of Show Original.)
This HTML stuff shows the 4 and 5 but not the values from the spreadsheet. As mentioned before, in the text of the Show Original the values from the spreadsheet are THERE. Something is happening when the "conversion" to HTML is taking place.

Update - The account I'm using to do this Mail Merge is a "G Suite" version.
I just tried this same thing in my personal email account and the values from the spreadsheet now appear in the sent emails!
Significantly, in the quoted-printable section of Show Original there's none of the style or other stuff, it's just
"
z 4Gary 5

"
which are the values from the spreadsheet and the number next to the value.
(The above is the actual code in the quotes and then an image snipped from the screen because I can't get this editor to drop processing it as HTML.)

Update - The account I'm using to do this Mail Merge is a "G Suite" version.
I just tried this same thing in my personal email account and the values from the spreadsheet now appear in the sent emails!
Significantly, in the quoted-printable section of Show Original there's none of the style or other stuff, it's just
"
z 4Gary 5

"
which are the values from the spreadsheet and the number next to the value.
(The above is the actual code in the quotes and then an image snipped from the screen because I can't get this editor to drop processing it as HTML.)

Another update:
Based on this "plain text" concept I decided to select the entire draft email and then "cut" it so the email body was empty. Then did a ctrl-shift-v (paste as plain text) for the draft email. A little "cleaning up" was needed - mostly putting in come extra "return" items at the places where an empty line was desired after a paragraph.
THIS WORKED - even in the GSuite version.
So, getting rid of all "formatting" in the email did the trick. I note that the sent email automatically had any web "links" converted to a clickable link (which is fine) but otherwise all the other formatting was "plain" in the resulting email. However, the values from the spreadsheet were put in the right place where {{Discount code}} etc. were.
Success!

Another update:
Based on this "plain text" concept I decided to select the entire draft email and then "cut" it so the email body was empty. Then did a ctrl-shift-v (paste as plain text) for the draft email. A little "cleaning up" was needed - mostly putting in come extra "return" items at the places where an empty line was desired after a paragraph.
THIS WORKED - even in the GSuite version.
So, getting rid of all "formatting" in the email did the trick. I note that the sent email automatically had any web "links" converted to a clickable link (which is fine) but otherwise all the other formatting was "plain" in the resulting email. However, the values from the spreadsheet were put in the right place where {{Discount code}} etc. were.
Success!

I had the same problem and found that it was case sensitive so after making sure my {{}} tags text had exactly same case as sheet header text it worked.

I had the same problem and found that it was case sensitive so after making sure my {{}} tags text had exactly same case as sheet header text it worked.

Thank You @gsaxer
You made my Day.
I followed your steps by copying the complete mail and pasting it as plain text. It worked.
Thank you very much.

My colleague is having the same problem with fields appearing blank in the emails sent.
The script is working fine for me.  I've tried adding formatting and it still works fine.  Does anyone have any other suggestions on what else my colleague should try to solve this?

thnx folks for the solution, has somebody found a solution for the formating problem?
i would like to make some text to appear bold

@yotiko  The summary of the solution is:

First do a plain-text copy of the email body as @gsaxer  explains (by cutting your entire email body with cntrl-X  (or cmd-x on Macbook) and then pasting unformatted using cntrl-shift-v (or cmd-shift-v on Macbook)
2.For formatting the email, next step is to select the text to format (but don't touch the Mail-merge variables!!) and format the the text using bold, italic etc. Don't touch the mail-merge variables when re-formatting!

This worked fine for me. @gsaxer  was a lifesaver - thanks!

@gsaxer you are life saver...spent almost 4 hrs trying to find the solution by scouring youtube. So I am confirming that changing the text formatting by converting the body of the email to " Plain Text" via the (Crt+Shift+V) was the solution.
I was never a member of this forum...but found it via google and I had to sign up to show my gratitude!
So Thanks again @gsaxer !

Thanks, Vanowarna
Great help.
It worked for me too, with this method as well. By removing the formatting and typing inside the curly brackets exactly as it is example {{First name}}

The same occurred to me with just 2 rows. Emails were sent separately and the {{ }} in the subject was Changed as expected. But the body was blank. Is there a fix?
// loop through all the rows of data obj.forEach(function(row, rowIdx){ // only send emails is email_sent cell is blank and not hidden by filter
Line 81 : What is rowIdx that hasn't mentioned anywhere. I suspect that's the issue. Any fixes?

Thanks, Vanowarna
Great help.
It worked for me too, with this method as well. By removing the formatting and typing inside the curly brackets exactly as it is example {{First name}}


Intrnal Error: type Text has no field text

running
using Vega
scatterplot(x=rand(10),y=rand(10))

results in

Are you on Vega.jl master or something? I can't reproduce this.

Please reopen if this still happens.


How to continuously read a connected peripheral's RSSI?

Hi everyone,
I was wondering how do you continuously read the RSSI for a connected peripheral? I want to know what the updated RSSI value is at all times so I can keep track of a peripheral's signal strength.
Thank you.

I figured it out!
fileprivate func triggerValueRead(for characteristic: Characteristic) {         characteristic.setNotificationAndMonitorUpdates()             .subscribe(onNext: {                 if self.connectedPeripheral != nil { // connectedPeripheral is the peripheral I connected to                     self.connectedPeripheral?.readRSSI().flatMap { Observable.from($0) }                         .subscribe(onNext: {                             print($0.1) // rssi value                         })                 }        } }

Hello @bananapps
That's right.
For chaining of operations you could also use flatMap instead of subscribe if you're not doing anything else.
Also, you could take peripheral from characteristic.service.peripheral instead.
Glad it works for you - please write in case of any questions.
Kacper

How can continuously read a peripheral's RSSI without being connected?
Or how can i continuously receive the same peripheral using this method because with this code it just received once?
scanningDisposable = manager.rx_state
      //.filter { $0 == .poweredOn }
      .timeout(4.0, scheduler: scheduler)
      .take(1)
      .flatMap { _ in self.manager.scanForPeripherals(withServices: nil, options:nil) }
      .subscribeOn(MainScheduler.instance)
      .subscribe(onNext: {
        self.addNewScannedPeripheral($0)
      }, onError: { error in
        print("Manager rx_state: ",error)
      })

@tnmendes
You need to allow duplicates during scanning.
Take a look at https://developer.apple.com/reference/corebluetooth/cbcentralmanager/peripheral_scanning_options

Thanks @moogle19 ...that was the solution 👍

Thanks @moogle19 :)


docs: fixed link to suggesting changes in docs

Detailed description of the bug
When clicking on Suggest changes to this page anywhere in the docs, it redirects to a "404 Not Found" page.
Live demo
Suggest changes to this page
link from https://docs.tresjs.org/guide/ page.
Recording
https://github.com/Tresjs/tres/assets/858917/693ed540-b75c-4b24-a727-56705e3278bb

@ktalik thanks a lot for this


Minor receive performance improvement

Coverage remained the same at 50.336% when pulling f25f2b1b312ab09a009386ee8773efb452538878 on 243083df:master into 5e2bc5baf71f7a089a57acd739e85b6e0b01bb66 on spiral:master.

Coverage remained the same at 50.336% when pulling f25f2b1b312ab09a009386ee8773efb452538878 on 243083df:master into 5e2bc5baf71f7a089a57acd739e85b6e0b01bb66 on spiral:master.


Display screen after change font size doesn't correctly update lines per page

Refreshing fixes this but would like to find way to do without this

Implemented refresh "fix" so no longer a bug, but not ideal. Leaving here thinking I may one day refactor.


<pre>: Disable auto-hiding scrollbar in legacy Edge

Disable auto-hiding scrollbar in legacy Edge to avoid overlap, making it impossible to interact with the content.

Ref. https://github.com/twbs/bootstrap/commit/f3fc973dd93d1bb69183404d9985157284a3be7f#diff-7f9eec82312835f6155c8de839bf0e49

FYI @patrickhlauke

Also, this affects IE 11 and 10. This patch fixes the issue and restores the behavior.


Hotfix: update documentation for /ipfs -> /p2p multiaddr switch

See: https://github.com/libp2p/libp2p/issues/79

@Stebalien -- what's the latest with this one? Thanks!

This is tracked in https://github.com/libp2p/libp2p/issues/79.

Status: this is landing in 0.5.0. We should merge it when we cut the release.

Cool, feel free to merge whenever you're ready.


⚠ Bofrost.de has degraded performance

In daee3cf, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1216 ms

Resolved: Bofrost.de performance has improved in 2843f6f.


full context support

Hi guys! Is it possible to make context support for all funcs where it is needed? May I make a pull request for that addon?

Context support will be included in next release. You can take a look at this branch.

Context support is implemented in version v0.3.0.


Disabled extension list items don't use disabled foreground for description text

The contrast ratio for the GitHub Codespaces text colour compared to the background colour appears to be 3.5:1, which is fine for minimum contrast requirements for large text. Will there be an issue if the description colour is also greyed out like that, though, assuming that's what the disabledForeground colour is?

This is a bit different than normal text contrast since the text is part of a disabled element. That would apply to all of the elements in the list item.

Verified that the description now uses the disabledForeground.
It's still not very clean as the other parts seem to come from different color

The correct approach would be to introduce a set of colors just for extensions view extensionsItemLabel.disabledLabelForeground,extensionsItemLabel.disabledDescriptionForeground


fix: show transfer warning for transferNFT

:tada: This PR is included in version 2.7.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Counter App

https://jsfiddle.net/201flaviosilva/4gy9t0zd/show

https://github.com/mindera-school/MS5-FE-Vanilla-Exercicies/pull/12


give pending majors same priority as majors

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 75.428%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
617

Relevant Lines:
818

💛  - Coveralls


Expose deploy hooks for web services

I have auto deploys disabled for our project, instead I've configured our CI server to call the deploy hook for each web service after the CI build passes. At the moment we have to manually copy the deploy hook from the render dashboard into the CI service, but if the render web service resource exposed the deploy hook url then this could be automated, so that whenever a new service is added or removed the deploy hook is automatically added in our CI setup.
Could someone please expose the deploy hook url as an output for the web service resource?

Would using the REST API deploy endpoint instead of the deploy hook work for this use case?

@jakemalachowski Yes that's true, I could use that instead, thanks for the suggestion


Batch 0 Story 1  Cooking

Vertical - Cooking
Design - https://www.figma.com/file/RTzSw47oi6pEZXEfP2JoBo/Templates?node-id=1613%3A840
Asset Folder - https://drive.google.com/drive/folders/11Yv6uFVUwH19km-NwLlyk4BVuWjMmfaN

Test URL: https://google-webstories.rt.gw/ Batch 0 Story 1 Cooking
@kenrodriguesdesign
I have checked the Cooking story and listed few points please do check.

[ ] Screen 2 - the top space in actual screen is less not matching the figma
[ ] Screen 2 - There shouldn't be horizontal line please refer the visual

[ ] Screen 3 - double quotation doesn't close

[ ] Screen 4 - 6 Fast Rules For Making Bread - there is more space between 3 and the jar icon not as per figma design
[ ] Flour section - there is no space between the content and the arrow, also on click of the arrow/link gives error Refer Visual: https://drive.google.com/file/d/1Ov2i9AaRMEJQtMlnThkJFP0B5RGzJk_D/view
[ ] To knead or not to knead screen - looks like the image is cropped [ Please check the images most looks cropped ]
[ ] Beginner Bread Recipe screen - The link should be https://www.google.com in preview also right?

cc: @maitreyie-chavan

@kenrodriguesdesign

Flour section - there is no space between the content and the arrow, also on click of the arrow/link gives error Refer Visual: https://drive.google.com/file/d/1Ov2i9AaRMEJQtMlnThkJFP0B5RGzJk_D/view

This link should work.
@maitreyie-chavan everything is fine expect for the above issue.

PR For the template: https://github.com/google/web-stories-wp/pull/7944

Released in Web Stories 1.8.1v  https://github.com/google/web-stories-wp/releases/tag/v1.8.1


Update extension to MV3

Need to change after converting to MV3

[x] Technical migration

[x] Migrate life-cycle
[x] Migrate DApp connection
[x] Migrate fetch
[x] Migrate storage

[x] Optimize State

[x] Sleep mode
[x] Full mode
=> Improve more later

[ ] Implement new UI design for MV3 migration

Version test: http://<IP_ADDRESS>:8900/s/EHLnEyk36QJrA6w
Please check the issues:

[ ] Can't connect dApp via WalletConnect

Improve

[ ] Need to show the number dApp request on SubWallet icon

[ ] Bug forgot account make extension freeze

Version test: http://<IP_ADDRESS>:8900/s/zHaP75qqy7m9JKS

[ ] Re-check memory of extension(estimate 10 account)

Version test: http://<IP_ADDRESS>:8900/s/pBipdpwR9tspoRT
Please check issues:

[ ] Do not sync ZK mode

Expect: If not fix this bug then hide ZK mode feature

[ ] Re-check and handle memory

Expect: Max memory = < 600 MB

Issues related to MV3 raised in https://github.com/Koniverse/SubWallet-Extension/issues/2681


add AnthropicLLM by CustomComponent

Native Anthropic components do not work. Just add it as AnthropicLLM

@

When I checked the lint results, the structure I used for implementation was the latest Langchain format, but Langflow seems to be outputting an error. If you actually drive it, it will work properly.

https://api.python.langchain.com/en/stable/chat_models/langchain.chat_models.anthropic.ChatAnthropic.html?highlight=anthropic#langchain.chat_models.anthropic.ChatAnthropic

@ogabrielluiz
I searched for related issues and it seems like you don't have Anthropic's key, making testing difficult. Our company holds the key, so your email address is<EMAIL_ADDRESS>We have invited you to , and will remove you from the list once this issue is closed.


Fix a bug where ToHashSet() is implemented in .Net 4.7.1+ System.Linq, causing failure to compile

Fix a bug where:
using System.Linq;
using MoreLINQ;
Causes calls to .ToHashSet() to fail to compile, because an identical implementation exists in .Net 4.7.1+

https://github.com/morelinq/MoreLINQ/blob/b839848e83597e0c7698290ac416354c27160003/MoreLinq/ToHashSet.cs#L17-L19
This test is at compile time, not at use time.
You can compile with 4.7 and still have the issue.
Maybe you can look what as been done in similar case (like Zip).
Anyway to fix it at user level, the README file is pretty clear about it:
https://github.com/morelinq/MoreLINQ#usage

This test is at compile time, not at use time.

Not sure what you mean by this. This flag is meant to prevent inclusion of the ToHashSet() extension method in 4.7.1+, and that's what it does. I've tested it - it fixes the issue.

You can compile with 4.7 and still have the issue.

I think you mean it was introduced in 4.7 not 4.7.1? Simple enough to change, I'll fix that.

Maybe you can look what as been done in similar case (like Zip).
Anyway to fix it at user level, the README file is pretty clear about it:
https://github.com/morelinq/MoreLINQ#usage

What's documented there is a workaround, not a fix. What I'm proposing is a fix.

This test is at compile time, not at use time.

Not sure what you mean by this. This flag is meant to prevent inclusion of the ToHashSet() extension method in 4.7.1+, and that's what it does. I've tested it - it fixes the issue.

You can compile with 4.7 and still have the issue.

I think you mean it was introduced in 4.7 not 4.7.1? Simple enough to change, I'll fix that.

The test you provide is done at compile time.
MoreLinq is almost distributed via nuget package that are pre-compiled.
Actually I don't know wish version of the framework is used to build the package.
As an example, let say that the package are build in framework 4.5.
At compile time "NET471" will be false and your fix will not do anything.
Now an user of framework 4.5 get the package, he will find a ToHashSet method. Lucky him.
Now an user of framework 4.7.1 get the package, he will find two ToHashSet method.
Hence nothing is fixed here.

Actually I don't know wish version of the framework is used to build the
package.

I see, I think you just need to read up on multi-framework targeting. More
than one framework is used in multi-target frameworks. MoreLINQ is
multi-target. So, the answer is - multiple frameworks are used, and for the
4.7.1 build in this case, the flag is true. For others, like the 4.5.1
build, the flag is false.
It sounds like you've declared this won't work without actually testing
anything, so I'd prefer you try it before issuing further objections.
https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/cross-platform-targeting

I have wondered why this solution isn't used before. I agree with @b9chris, MoreLINQ should be able to block off certain API based on which version it is compiled with. This will make the provided work-around unnecessary.
This could also be applied to .Append() and .Prepend(), provided in the latest .net core offerings.

I have wondered why this solution isn't used before

The cons I see :

Hard to maintain.
Many more target frameworks.
Need a quick new release for any method integrated in a version of a framework (hopefully method signatures matched for now).

This will make the provided work-around unnecessary.

The workaround is still useful in case of name collision with a third-party library.

On the other hand, the workaround is extra work in the case where the consumer is targeting multiple frameworks. As it is, I have multiple places where I have to include:
#if NETFX
using static MoreLinq.Extensions.AppendExtension;
#endif

If MoreLINQ handled this directly, it would be a simple using MoreLinq; in those cases.
However, I do get your point about extra work in the case of a new .net core version; they are continually adding new Enumerable features that overlap MoreLINQ.

I did some research over the last couple weeks, trying to figure out if using framework versioning would be viable. @Orace, I read what you wrote, and from a compile-time perspective, that wouldn't be an issue. The Nuget package manager automatically binds at compile-time to the appropriate .dll, even though multiple copies are provided in the .nupkg.
However, I think I came across a hard block at runtime. Here's a scenario that would be non-functional:

Library A builds in .NET 4.5.1 against MoreLinq, using the fx 4.5.1 version of the library.
They use enumerable.Append(value), which the compiler translates to MoreEnumerable.Append(enumerable, value).
Program B is built against .NET Core 3.0
Program B imports MoreLinq for .NET Core 3.0
Program B references Library A.

Runtime Exception when Library A cannot find MoreEnumerable.Append() because it is no longer provided by the MoreLinq library loaded by the program. This is not a versioning issue (since both could be built against the same MoreLinq 3.4.0, just against different FX versions).
Since there is no way to offer a type-forward for just a single function, there's no way to tell the CLR that when looking for MoreEnumerable.Append(), replace it w/ Enumerable.Append().
The MoreLinq team could decide to be aware of this issue, and pursue this path anyway, and provide documentation to potential users about how to address it.
However, since they are already disinclined to pursue this, I would suggest that the current workaround is the most viable solution.
@b9chris - I had high hopes for doing this too!

@b9chris Please check out the morelinq.temp package as a proof of concept for a solution for this issue, built off of https://github.com/viceroypenguin/MoreLINQ/tree/multi-framework-support branch. If you have any comments, put them in #749.

This has been superseded by PR #945.


Navigation section doesn't work after going to documentation from Learn more page

v0.25.0-rc1
Steps:

Create new environment
Switch to that environment
Click on Learn More link for host or services from Welcome page
Click on any Navigation link on documents page

Results:
Nothing happens, it just stays on the Adding you host or Adding your Services page.
Expectation:
If Navigation links to other pages are there, they should work.

@vincent99 The links need to be redirected to rancher.docs.rancher.com/xxx/xxx. In v0.26.0-rc1, it's still referring to github.

ah ok.. yeah that's in this week's release

Links are redirected and navigation is working


Inventory Connector shows incorrect information

Hi, I saw someone else mention this but I found a different bug.
Version Tom's Storage 1.2.16 added to Better Minecraft Modpack
When placed like this the inventory shows correctly
https://i.imgur.com/acAWMVX.png
https://i.imgur.com/72EbC67.png
https://i.imgur.com/Y1htlIW.png
When placed like this it doubles the amount of items
https://i.imgur.com/K1hJClb.png
https://i.imgur.com/YjcpR5d.png
https://i.imgur.com/ALVtSNj.png

happens with all multi-block containers, it shows (real amount)*(container block size) of items stored in that container, thankfully it's visual only, doesn't actually double items, but still it's a bug.


Some fixes for AtomModelWrapper and Socket

In an attempt to make the randomsimulatorbot usable, found and fixed some bugs

are we sure that the change to a non nullable column as a hibernate annotation is still seen as valid if our flywaydb generated schema is not altered?

Good point
Am 8. Oktober 2019 20:04:20 MESZ schrieb quasarchimaere<EMAIL_ADDRESS>
are we sure that the change to a non nullable column as a hibernate
annotation is still seen as valid if our flywaydb generated schema is
not altered?
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/researchstudio-sat/webofneeds/pull/3070#issuecomment-539633093


feat: add AP-3 DNS names for endpoints

@emmanuelbernard please add the content or a link to the SDR.

Merging this PR to reserve the id.


More Errors

Here are some more errors that I experienced. I CTRL-C'ed and restarted aprstastic and that seemed to fix it.
DEBUG:aprstastic:Sending to APRS<EMAIL_ADDRESS>!43b582f4
INFO:aprstastic:!435986d8 -> ^all: TELEMETRY_APP
INFO:aprstastic:!435986d8 -> ^all: POSITION_APP
ERROR:root:Unexpected error in deferred execution <class 'pubsub.core.topicargspec.SenderUnknownMsgDataError'>
Traceback (most recent call last):
File "/home/pi/.local/lib/python3.10/site-packages/meshtastic/util.py", line 288, in _run
o()
File "/home/pi/.local/lib/python3.10/site-packages/meshtastic/mesh_interface.py", line 1383, in
lambda: pub.sendMessage(topic, packet=asDict, interface=self)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/publisher.py", line 216, in sendMessage
topicObj.publish(**msgData)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/topicobj.py", line 433, in publish
self._getListenerSpec().check(msgData)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/topicargspec.py", line 229, in check
raise SenderUnknownMsgDataError(self.topicNameTuple,
pubsub.core.topicargspec.SenderUnknownMsgDataError: Some optional args unknown in call to sendMessage('('meshtastic', 'receive')', packet,interface): interface
ERROR:root:Unexpected error in deferred execution <class 'pubsub.core.topicargspec.SenderUnknownMsgDataError'>
Traceback (most recent call last):
File "/home/pi/.local/lib/python3.10/site-packages/meshtastic/util.py", line 288, in _run
o()
File "/home/pi/.local/lib/python3.10/site-packages/meshtastic/mesh_interface.py", line 1383, in
lambda: pub.sendMessage(topic, packet=asDict, interface=self)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/publisher.py", line 216, in sendMessage
topicObj.publish(**msgData)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/topicobj.py", line 433, in publish
self._getListenerSpec().check(msgData)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/topicargspec.py", line 229, in check
raise SenderUnknownMsgDataError(self.topicNameTuple,
pubsub.core.topicargspec.SenderUnknownMsgDataError: Some optional args unknown in call to sendMessage('('meshtastic', 'receive')', packet,interface): interface
INFO:aprstastic:!7c5b2e9c -> ^all: TELEMETRY_APP
INFO:aprstastic:!9bc1d171 -> ^all: POSITION_APP
INFO:aprstastic:!433aa260 -> ^all: POSITION_APP
====================================================================================
INFO:aprstastic:!433b0ef4 -> ^all: POSITION_APP
INFO:aprstastic:!433e872c -> ^all: POSITION_APP
ERROR:root:Unexpected error in deferred execution <class 'pubsub.core.topicargspec.SenderUnknownMsgDataError'>
Traceback (most recent call last):
File "/home/pi/.local/lib/python3.10/site-packages/meshtastic/util.py", line 288, in _run
o()
File "/home/pi/.local/lib/python3.10/site-packages/meshtastic/mesh_interface.py", line 1383, in
lambda: pub.sendMessage(topic, packet=asDict, interface=self)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/publisher.py", line 216, in sendMessage
topicObj.publish(**msgData)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/topicobj.py", line 433, in publish
self._getListenerSpec().check(msgData)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/topicargspec.py", line 229, in check
raise SenderUnknownMsgDataError(self.topicNameTuple,
pubsub.core.topicargspec.SenderUnknownMsgDataError: Some optional args unknown in call to sendMessage('('meshtastic', 'receive')', packet,interface): interface
INFO:aprstastic:!0e56a4e0 -> ^all: POSITION_APP
INFO:aprstastic:!43b582f4 -> ^all: POSITION_APP
====================================================================================
INFO:aprstastic:!4358ef54 -> ^all: TELEMETRY_APP
INFO:aprstastic:!435986d8 -> ^all: POSITION_APP
ERROR:root:Unexpected error in deferred execution <class 'pubsub.core.topicargspec.SenderUnknownMsgDataError'>
Traceback (most recent call last):
File "/home/pi/.local/lib/python3.10/site-packages/meshtastic/util.py", line 288, in _run
o()
File "/home/pi/.local/lib/python3.10/site-packages/meshtastic/mesh_interface.py", line 1383, in
lambda: pub.sendMessage(topic, packet=asDict, interface=self)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/publisher.py", line 216, in sendMessage
topicObj.publish(**msgData)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/topicobj.py", line 433, in publish
self._getListenerSpec().check(msgData)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/topicargspec.py", line 229, in check
raise SenderUnknownMsgDataError(self.topicNameTuple,
pubsub.core.topicargspec.SenderUnknownMsgDataError: Some optional args unknown in call to sendMessage('('meshtastic', 'receive')', packet,interface): interface
INFO:aprstastic:!9178aa1c -> ^all: NODEINFO_APP
ERROR:root:Unexpected error in deferred execution <class 'pubsub.core.topicargspec.SenderUnknownMsgDataError'>
Traceback (most recent call last):
File "/home/pi/.local/lib/python3.10/site-packages/meshtastic/util.py", line 288, in _run
o()
File "/home/pi/.local/lib/python3.10/site-packages/meshtastic/mesh_interface.py", line 1383, in
lambda: pub.sendMessage(topic, packet=asDict, interface=self)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/publisher.py", line 216, in sendMessage
topicObj.publish(**msgData)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/topicobj.py", line 433, in publish
self._getListenerSpec().check(msgData)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/topicargspec.py", line 229, in check
raise SenderUnknownMsgDataError(self.topicNameTuple,
pubsub.core.topicargspec.SenderUnknownMsgDataError: Some optional args unknown in call to sendMessage('('meshtastic', 'receive')', packet,interface): interface
INFO:aprstastic:!433aa260 -> ^all: POSITION_APP
INFO:aprstastic:!9bc1d171 -> ^all: POSITION_APP

I've seen this, but it's intermittent. Hard to reproduce reliably. I'll add logging, and try to track this down.

Another one below. Messaging still working though.
INFO:aprstastic:!0e56a4e0 -> ^all: POSITION_APP
INFO:aprstastic:!4358ef54 -> ^all: TELEMETRY_APP
ERROR:root:Unexpected error in deferred execution <class 'pubsub.core.topicargspec.SenderUnknownMsgDataError'>
Traceback (most recent call last):
File "/home/pi/.local/lib/python3.10/site-packages/meshtastic/util.py", line 288, in _run
o()
File "/home/pi/.local/lib/python3.10/site-packages/meshtastic/mesh_interface.py", line 1383, in
lambda: pub.sendMessage(topic, packet=asDict, interface=self)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/publisher.py", line 216, in sendMessage
topicObj.publish(**msgData)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/topicobj.py", line 433, in publish
self._getListenerSpec().check(msgData)
File "/home/pi/.local/lib/python3.10/site-packages/pubsub/core/topicargspec.py", line 229, in check
raise SenderUnknownMsgDataError(self.topicNameTuple,
pubsub.core.topicargspec.SenderUnknownMsgDataError: Some optional args unknown in call to sendMessage('('meshtastic', 'receive')', packet,interface): interface
INFO:aprstastic:!435986d8 -> ^all: POSITION_APP
INFO:aprstastic:!9178aa1c -> ^all: NODEINFO_APP

Still getting these errors occasionally in 0.0.1a21.

The errors were coming in fairly regularly, but I am not getting them this morning. Aprstastic continues to work despite the errors. I will let you know if they start happening again and post details.

I have yet to receive these errors again. I even restarted aprstastic. I will close and reopen if it comes back.

I have yet to receive these errors again. I even restarted aprstastic. I will close and reopen if it comes back.


jsPDF.table wrong output

Hi,
I used the following to output a table to a PDF.
The row height is very high and the width of the table is higher than the page size. The last column ("KM") is not shown because it is behind the margin.
Is this a bug or do I something wrong?
const tableHeader = ['Datum', 'Bemerkung', 'KM'];

    const tableData = [
      {
        "Datum": "01.02.2018",
        "Bemerkung": "Patient 1, Patient 2, Patient 3, Patient 4, Patient 5",
        "KM": 100
      },
      {
        "Datum": "02.02.2018",
        "Bemerkung": "Patient 1, Patient 2, Patient 3",
        "KM": 20
      }
    ];

    const doc = new jsPDF('portrait', "mm", "a4");
doc.table(10, 60, tableData, tableHeader, {
      margins: {
        top: 0,
        bottom: 0
      },
      width: 150,
      autoSize: true,
      printHeaders: true,
      rowMargin: 0,
      fonstSize: 12
    }

Screenshot of the output:

I have the same problem, someone can see this?

ok, it seems the js calculates the autosize wrong(i dont know why) but, i modified the .table function and added this to the defaults overlapping
if(config.columnWidths) {
columnWidths = config.columnWidths;
}
so, i could pass the function whatever columns widths i would like to use(maybe i have to do a pull request with this)

If you need tables, use jsPDF-autotables. It's a separate project, and works amazingly well.

Yes I agree. Better use the autotables project. It is better maintained than the table method in jsPDF.


Add tree-sitter

Add Sailfish template (.stpl) grammar for tree-sitter, to provide syntax highlighting in Neovim and Helix.

@dianhenglau I looked online for some information about tree sitter so that I could test this out, but didn't know where to start. Can you share some information about how I could test this, and what some of these changes enable the user to have out of the box?

To test it:

Download and install the helix editor, git, and gcc.
Open any stpl file. You will see there is no highlighting.
Create languages.toml in helix config directory.
In the helix config directory, create subdirectories runtime/queries/sailfish (mkdir -p runtime/queries/sailfish), and go to that directory (cd runtime/queries/sailfish).
Create symbolic link to highlights.scm (ln -s ../../grammars/sources/sailfish/syntax/tree-sitter-sailfish/queries/highlights.scm) and injections.scm (ln -s ../../grammars/sources/sailfish/syntax/tree-sitter-sailfish/queries/injections.scm). If your platform doesn't support symbolic link, you can copy the files directly too.
Run helix --grammar fetch and helix --grammar build.
Open any stpl file. You will see syntax highlighting is working.

Content of languages.toml:
[[language]]
name = "sailfish"
scope = "source.sailfish"
injection-regex = "sailfish"
file-types = ["stpl"]
block-comment-tokens = { start = "<%#", end = "%>" }
indent = { tab-width = 2, unit = "  " }

[[grammar]]
name = "sailfish"
# You can change the git repository here
source = { git = "https://github.com/dianhenglau/sailfish.git", rev = "e46dec875c0b35af54057776d5a9717e2b5ea9a0", subpath = "syntax/tree-sitter-sailfish" }

@dianhenglau
I think the idea for Helix editor support is very nice! I started the process to using the helix editor as a flatpak, on POP_OS (Ubuntu based), and got stuck partway through to being able to even try to debug a rust executable. If you want to contribute some information on your setup, I can update their wiki, or even mention it here. I like the idea of Helix, but it looks like it requires more configuration out of the box than vs code. However, I would like to not use vs code because I don't want to depend on a free product that could be dropped, or modified on a whim.


Change docs theme

change theme to furo: https://github.com/pradyunsg/furo

Docs preview:
https://rbc--568.org.readthedocs.build/en/568/


Issue on startup

hello noob here
how do i fix this please
yabai: could not locate config file!

@fuckbitchesgitmoney As indicated in the error message, you should make a config file and mark it an executable.
For a sample setup: (not tested)
$ mkdir -p ~/.config/yabai
$ curl https://raw.githubusercontent.com/koekeishiya/yabai/master/examples/yabairc > ~/.config/yabai/yabairc
$ chmod +x ~/.config/yabai/yabairc

im an amateur at this terminal stuff im so sorry but i put in those arguments and the windows rearranged FINALLY i'd practically given up thank you so much. now it says
yabai: could not acquire lock-file!
the README says

yabai stores a lock file at /tmp/yabai_$USER.lock to keep multiple instances from launching by the same user
what should i do

@fuckbitchesgitmoney That (usually) means that more than one instance of yabai is running.

For example, if the output is something like this:

you should execute kill 55004.
Then remove all of yabai's lockfiles with sudo rm /tmp/yabai* and execute yabai again.
Actually, if you're not familiar with using shells & terminals, I really wouldn't try using yabai.

it worked! thank u so much


Compatibility with Polygon chain - Polygonscan verification

I've been trying to verify an smartcontract deployed with the sample deploy script but constantly getting cloudflare block. I'm waiting the response of polygonscan and foundry technicall support to verify if is a problem related to them.
Even so, I wanted to ask here. Is there any know issue related to the verification of the smartcontract on Polygonscan?
There is no metion to Polygon anywhere on this repo and I'm not sure if there is any problem with it.
Thanks.

We've never deployed the protocol on Polygon so I'm not sure we can help with this

Thanks for answering! Doesn't look to be a problem with this project.
However you've never deployed the protocol on Polygon because sound.xyz only focus on Ethereum? I ask this because surely we are going to implement it in Polygon (we will add all the necessary scripts and configurations), and we don't know if the managers of this project would want to add those functionalities.

Try compiling the contracts and running the scripts on a AWS or DigitalOcean server.

I didn't recive any response from polygonscan.io, but I managed to verify it using the option flatten from forge and verifying it by hand on the website. It's a polygonscan issue, so I'm closing this. Thanks for the support!


Unexpected "Unhandled rejection" with "return" method

var rj = Promise.reject(new Error());

rj
	.return(Promise.join(rj))
	.spread(console.log)
	.catch(console.error);

Gives an "Unhandled rejection Error" with Bluebird 2.9.34.
The example seems freakish, but it is a distilled version of a more complex scenario where the join has more arguments.
My first thought was to swap a simple array for the join, but add another thing to the array, and you're back to square one:
var rja = Promise.reject(new Error());
var rjb = Promise.reject(new Error());

rja
	.return([ rja, rjb ])
	.spread(console.log)
	.catch(console.error);

Gives an "Unhandled rejection Error" as well.

Hm, the error of rjb is nowhere handled?

Yes it is. Try doing this:
var rja = Promise.resolve();
var rjb = Promise.reject(new Error());

rja
	.return([ rja, rjb ])
	.spread(console.log)
	.catch(console.error);

Whether using an array or a Promise.join it is handled.

:+1:
I updated Bluebird, ran the tests and poof, all "unhandled" errors were gone :)


Italian language in AdobeAcrobatReaderDC.json

Fantastic project! I want to implement it in my work routine but the lack of the Italian language prevents me from having the updated script.
Please add Italian
"Italian", in to AdobeAcrobatReaderDC.json
thx

Why not use the MUI version?

I've added Italian and a few other languages to the development branch; however, these don't return the latest version of Reader DC, so @j81blog 's approach to use the MUI language pack might be better

Added to 2012.225


Implement file based storage (PoC level first, then benchmark and final implementation if all good)

We consider it done now. Any improvements will be done as separate tasks


Allow UI configuration via environment variables

Many customers like this accelerator / sample because it is easy to set up and very clean. However, many customers struggle with making small branding changes. Especially since the sample has been rebranded to use Contoso + logo's, the demand for branding has risen.
This pull request primarily introduces branding customization to the application. The changes allow users to customize the title, logo, chat title, and chat description by setting environment variables. The most significant changes include the addition of new environment variables in the .env.sample file, the modification of the app.py file to use these variables, and the adjustment of frontend components to use these new settings.
Related discussions: #269, #438, #498,
Fixes #522
Fixes #553
Fixes #558
Fixes #277.
Preview:
Example configuration:
UI_TITLE = "MicrosoftGPT"
UI_CHAT_TITLE = "Your safe and secure environment"
UI_CHAT_DESCRIPTION = "Start chatting with your own data now."
UI_LOGO = "https://upload.wikimedia.org/wikipedia/commons/9/96/Microsoft_logo_%282012%29.svg"

Screenshot:

Changes
The changes allow users to modify the title, logo, and descriptions of the chat application via environment variables. These changes affect the .env.sample, README.md, app.py, frontend/index.html, frontend/src/api/models.ts, frontend/src/pages/chat/Chat.module.css, frontend/src/pages/chat/Chat.tsx, frontend/src/pages/layout/Layout.module.css, and frontend/src/pages/layout/Layout.tsx files.
UI Customization:

.env.sample: Added environment variables for UI customization including UI_TITLE, UI_LOGO, UI_CHAT_LOGO, UI_CHAT_TITLE, and UI_CHAT_DESCRIPTION.
README.md: Updated the documentation to reflect the new environment variables for UI customization and removed the section about updating the logo and headers in the Chat.tsx file. [1] [2] [3]
app.py: Imported the render_template function and added new variables for the UI configuration. The index function now uses render_template to render the index.html file with the title. The assets function includes the UI configuration in the frontend_settings. [1] [2] [3] [4]
frontend/index.html: Updated the title to use the title variable.
frontend/src/api/models.ts: Added a new UI type and updated the FrontendSettings type to include the ui property.
frontend/src/pages/chat/Chat.module.css: Updated the chatIcon class to have an auto width.
frontend/src/pages/chat/Chat.tsx: Updated the chat page to use the UI configuration from the frontend settings. The chat logo, title, and description are now customizable. [1] [2]
frontend/src/pages/layout/Layout.module.css: Updated the headerIcon class to have an auto width.
frontend/src/pages/layout/Layout.tsx: Updated the layout to use the UI configuration from the frontend settings. The logo and title in the header are now customizable. [1] [2]

Hi @iMicknl , thank you for this delightfully thorough and well-documented PR! I'm just getting ready to merge #460 which would require adjusting this to use the async render_template function from Quart. Do you see any additional issues with migrating this over to Quart?

@sarah-widder haven't tried it yet with Quart, but will rebase on main when #460 is merged and adapt to the new changes. Shouldn't be too difficult!
Would you agree with the current proposal in this PR? I was hesitating to add a JSON based format, which can contain more branding options easily, but this might be too difficult for starting users. The current proposal is only to allow a few small changes. Customers can still change the code for more changes.

Rebased on main! My latest thought is that branding is maybe not the right prefix, especially if there will be additions in the future like HIDE_SHARE_BUTTON.
Perhaps we should prefix it with UI or INTERFACE? What do you think.
UI_TITLE = "MicrosoftGPT"
UI_CHAT_TITLE = "Your safe and secure environment"
UI_CHAT_DESCRIPTION = "Start chatting with your own data now."
UI_LOGO = "https://upload.wikimedia.org/wikipedia/commons/9/96/Microsoft_logo_%282012%29.svg"

@iMicknl that's a great point - let's use UI_* instead of BRANDING_. Maybe adjust the frontend settings section to something like ui_constants as well?

Rebased on main and changed the naming to UI. Regarding frontend_settings, for now I think this would sufficient since there are more settings here that will be sent to the front-end.

I love the idea of this PR, and think the proposed implementation is both clean and user-friendly. However, I would like to see 1 more setting be added in order to set the favicon to a user-defined image.

Done + rebased on main.

I think there is bug in favicon icon implementation, it doesnt update in the browser tab.


feat(input-otp): Adding Input OTP component

Closes #2678
📝 Description

PR adds the input-otp componenet

⛳ Current behavior (updates)

Currently NextUI do not have input-otp component.

🚀 New behavior

Default Color

Primary Variant (other variant such as Secondary, Success, Warning and Danger follow similar styles)

Video represention

input-otp gets added.

💣 Is this a breaking change (Yes/No): no
📝 Additional Information

Summary by CodeRabbit
Summary by CodeRabbit

New Features

Introduced a new input-otp component for easier one-time password entry.
Automatic focus on the next input field and input length validation enhance usability.
Integrated with existing themes for a consistent design.
Customizable properties for appearance, including variants and sizes.

Tests

Added unit tests to validate the functionality of the input-otp component.

Documentation

Created a README for the input-otp component to assist users.
Added comprehensive documentation detailing functionality and customization options.

@coderabbitai full review

Applied the comments in a168061.
Will add the documentation as well.
Also talking about keyboard left/right navigation, I thought it would nice UX that whenever a user selects the input-otp component the segment which needs to be filled will be in focus and they can either add or remove the OTP restricting them not to navigate. Given the length of the OTP is usually small.
// @wingkwong

Comments are addressed(a1680612a43420a2597ee92f3c627fa2aac052f1) and docs are added(bc5286c076e6088f7a5e4a86136c177651ea10d3)
The PR is ready for the next round of review.
@wingkwong, can you please have look at the PR again?

Added the suggestions mentioned in comment in https://github.com/nextui-org/nextui/commit/cab6a940e04a8e4d75fd89529b1dafb6bbc33a5c
Just one concern regarding following suggestion:

in Required, the error message the field is required only shows when there is no input. I think it should also show when the input is not completed (e.g. enter 3 characters in inputOtp with length of 4)
For the above scenario, wouldn't it make sense that input-otp will have required error if nothing is passed. But if the input passed is lesser then the length of the OTP,  tooShort error is passed. Attaching the video-clip below:

https://github.com/user-attachments/assets/4f2ba716-fb15-414a-be4c-4761f0d8213b

I second that. However, the message should be configurable. Also please refer to input component to see validationBehaviour.

The current input-otp component handles the validation behaviour similar to input component. We can configure the error-message by errorMessage prop, so did I miss anything as you mentioned  should be configurable in previous comment

if so, then it's all good. Just a reminder only. I haven't checked the code in detail yet.

just an update. we're finalising the design. can you DM me at discord with your email address?

@coderabbitai pause

UPD: the design is finalised. please refer to the figma I shared to you in discord and update accordingly. thanks.

Hey @macci001 please fix the conflicts


Update urls.txt

Added Debian services (List: http://5nca3wxl33tzlzj5.onion/).
I don’t know if site names in quotes are supported and I won’t test because I’m not going to install Node.js. If they aren’t, perhaps support should be added or all the names need to be adjusted.

Sadly not. It's probably best if I just change the URL format to JSON. Not as "simple", but a hell of a lot easier to parse when we have names with spaces in...
I'll let you know when I've done that, since spaceless names would be awkward for most of those sites.

Hey @Parckwart could you please re-write your PR?
I've changed the format to JSON. Check urls.json, you should be able to do names with spaces now.


Fix inconsistent behaviour when setting Column.pandas_type

Replace the Column.pandas_dtype attribute by a property on SeriesSchemaBase relying on the already existing attribute SeriesSchemaBase._pandas_dtype.
Closes #191

Hello Niels et al.,
I’ve not had time to review my PRs yet and I’ll have little time this week outside of my main professional project.
This would require inserting tests on the setter args and discussing what are the relevant tests.
I’ll propose something ASAP but most lilely end of next week.
Anthony Truchet
Senior Software Engineer, Machine Learning
[cid:C3SigLogo_47182306-41a6-4aca-8853-86009d292958.png]https://www.c3.ai/
M +33 6 76 80 17 13
Paris, France
www.digitaltransformation.aihttps://www.digitaltransformation.ai
© 2020 C3.ai. Confidential Information.
From: Niels Bantilan<EMAIL_ADDRESS>Reply to: pandera-dev/pandera<EMAIL_ADDRESS>Date: Monday 6 April 2020 at 15:52
To: pandera-dev/pandera<EMAIL_ADDRESS>Cc: Anthony Truchet<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [pandera-dev/pandera] Fix inconsistent behaviour when setting Column.pandas_type (#192)
@cosmicBboy commented on this pull request.

In pandera/schemas.pyhttps://github.com/pandera-dev/pandera/pull/192#discussion_r404106799:

@@ -471,6 +471,23 @@ def name(self) -> Union[str, None]:

     """Get SeriesSchema name."""

     return self._name

@property

def pandas_dtype(self) -> Union[

       str,

       dtypes.PandasDtype,

       dtypes.PandasExtensionType]:

   """Get the pandas dtype"""

   return self._pandas_dtype

@pandas_dtype.setter

def pandas_dtype(self, value: Union[

       str,

       dtypes.PandasDtype,

       dtypes.PandasExtensionType]) -> None:

   """Set the pandas dtype"""

   #TODO do we need specfifi checks or actions for consistency here?

(FYI the CI is complaining about this TODO comment)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/pandera-dev/pandera/pull/192#discussion_r404106799, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AOURZ6FYFE4PY2FEMWXVIALRLHNARANCNFSM4L3ZLVFA.

fixed by #256


multi-line usernames are possible

writing this as separate from character limiting usernames because based on code it could be possible to have an eight character vertical username :P

Someone set their username to a few lines from The Raven, which was p. good

(you have to edit the page to replace the  with a )


[Feature]: dev was the clean-up of dist deliberate ?

What problem does this feature solve?
After packaging, the product is cleaned up when dev is started again
What does the proposed API look like?
Is it possible to provide an api such as clear

Rsbuild already provides an option for this 😄: https://rsbuild.dev/config/output/clean-dist-path

After closing 'build' does not clean up

Yes, if user only want to clean up when starting dev, this should works:
export default {
  output: {
    cleanDistPath: process.env.NODE_ENV === 'development',
  },
};

oh control yourself，ok


Correct the field name for accession_number on the obs form

We've been calling this field herbarium_id as a shorthand, but it's actually the field for the HR accession_number. This PR just renames the field, and the ivar @herbarium_id generated in the context of the ObservationsController (only).
herbarium_id would conflict with the new hidden field for autocompleters that is generated with the more accurate use of the name herbarium_id.

coverage: 94.397%. remained the same
when pulling 107a172c97462028c5a72d471bbe23084ec766cc on herbarium_accession_number_observation_form
into 977aeb9aea51af9bc1a760fa1b5db7f42dcc6538 on main.


Reset admin password tool

Tool for restoring admin password in an interactive and non-interactive way

@rsevilla87 good idea - I am just thinking if it could make sense to add this feature to the tools/fix_auth.rb ?
maybe it can include other features (accessible thru any/new parameter(s)):

from STDIN (as you have)
as parameter (as you have)
set any password for all users
set default password smartvm (also for all users)

what do you think ?

@miq-bot add_label developer

@lpichler I think this tool is only useful for restoring the admin account since it's credentials are stored in the internal ManageIQ database. Restoring password for other users would require to make sure that user is not externally authenticated (Ldap, SAML,etc.) and admin user is able to restore other internal users passwords available from the UI


chore: add docker build step to travis [build-image]

Coverage remained the same at 94.444% when pulling 95e95b14b537072a94a115773ecd26b3db815024 on dockerize into effb4a36d889ae70c26ce53f3a59d894e2b6b1d4 on master.

Coverage remained the same at 94.444% when pulling 95e95b14b537072a94a115773ecd26b3db815024 on dockerize into effb4a36d889ae70c26ce53f3a59d894e2b6b1d4 on master.

Coverage remained the same at 94.444% when pulling 1fbfb2062472a7e56f70cff4c310f4868c7a72f1 on dockerize into effb4a36d889ae70c26ce53f3a59d894e2b6b1d4 on master.

Coverage remained the same at 94.444% when pulling 1fbfb2062472a7e56f70cff4c310f4868c7a72f1 on dockerize into effb4a36d889ae70c26ce53f3a59d894e2b6b1d4 on master.


listRepos returns null at the end

Wrote a code that went through the entire repo listing and hit a snag, listRepos is returning null at the end of the pagination.

This doesn't seem like something that's supposed to happen according to the API typings

well if it isn't our old friend golang empty types

hmmm https://github.com/bluesky-social/indigo/commit/f12bac31fd2b8e08953cf8bf044079e702ebdee4

is it possible we haven't deployed in more than a month? will investigate


Fix Interactable UI nodes not taking into account scale when determin…

…ing whether the mouse cursor is inside them
Objective

When using UI nodes with a Transform scale higher than 1.0, I discovered that only a tiny portion in the center of the node was actually clickable, instead of the entire node as I would expect. This change fixes that issue.

Solution

When calculating the node's extents used to determine whether the mouse cursor is actually over the node, multiply the node size by the global transform's scale so that the correct extents are used

If possible, you should avoid changing the Transform component of UI elements. It is managed by the UI layout algorithm. At the moment, it only change the translation part of the transform, but there are no guarantee that your scale will be kept through layout.

If possible, you should avoid changing the Transform component of UI elements. It is managed by the UI layout algorithm. At the moment, it only change the translation part of the transform, but there are no guarantee that your scale will be kept through layout.

It seems to only be reading the GlobalTransform state to compute the area of the focus rect. No mutation to the Transform is done here.

Yup the transform is not written in the focus step, it's in the layout step:
https://github.com/bevyengine/bevy/blob/2b112026147a8b6780759b32f0ea04dc7d7d8548/crates/bevy_ui/src/flex/mod.rs#L294-L297
As I've said, the current layout algorithm only interact with the translation, but I can see why a UI framework would like to be able to manage the rotation and the scale of its element.
The idea of the UI is to defer transform management to flex for now, later to another algorithm. Changing the scale works for now, no guarantee it will later.

Ah right.  Makes sense in context of how this was being used.

So, I think this is a part of the "UI shouldn't use the same Transform type" problem discussed in #4213. I'm not sure if we should apply this fix; it really feels like a bandaid that enables further misuse of the API :(

Closing as part of backlog cleanup: no clear consensus, possibly superseded by newer changes to UI.


taking into account the node removal cost

In the function __one_level for each node we iterate over the possible communities. best_com and best_increase are computed to decide the best community for this node. However, best_increase is initialized with 0 which seems to be not correct since the removal of a node from its community may have positive or negative effect on modularity. We corrected this, according to the original paper by Blondel et al. "Fast unfolding of communities in large networks". On our tests it makes the relatively small difference but sometimes it's important.

Hello,
Thanks for your contribution. I will take a look, but since it changes an important part of the computation I'll need to read original paper again and it may take some time before merging it.
Best,

Sure. Feel free to ask anything, what could help.
Best regards

Hi,
This had bothered me too, but I arrived at the conclusion that the decision take will still be correct. Do correct me if I am wrong.
While looking for the best community to move the current node to, __one_level function examines all the neighbouring communities. If moving the node to any of these communities results in the most +ve increase in modularity, the node will be moved to that community.
Two points to note here:

While doing this, the total modularity of the graph is never computed, only modularity increase of the target community is computed.
The above process is repeated for all the neighbouring communities, including the community which the node originally belonged to. So, if moving the node from its community resulted in a large decrease in modularity, it will show up as a large gain when we add it back, and therefore the node will stay in its original community.

Firstly I thought about it the same way as you do.
But there are two points which make the difference, I believe.

While checking all the neighbouring communities as a candidate for addition we do not necessary check the original community of our node (since we have "if neighbor != node:" condition inside the __neighcom function, so it the community has only one node, it will not be in the "neigh_communities" dictionary). However, it doesn't seem to be a big problem right now.
We have the default values best_com = com_node, best_increase = 0 and we look only for the increasing values, starting from zero.

So I still think it is possible to have an unexpected situation:
Since the increase in modularity technically could be seen as a sum of the removal cost and the addition cost and the removal cost is the same for all community candidates, the current code checks only addition costs. But now it looks for the best positive addition cost.
Let's assume we have two community candidates for our node: our current community C1 and C2 (which is better). Now let's say removing our node from C1 gives us +10 modularity, putting it back into C1 -10 modularity and putting it into C2 gives us -5 modularity. All together it's optimal to move our node from C1 to C2 and take +10-5=+5 modularity (as staying in C1 gives us 0 change).
But since current code checks only positive addition costs options, and there are no such ones, we will end back in C1.
The one possible solution for this potentional problem could be initialization of best_increase not with 0 value but with the actual addtion_cost for current cluster (which could be negative without taking into account the removal_cost). I even think such solution will be more elegant than the one proposed in this pull-request.
But I believe the proposed one is more clear and useful for future debug of such situations :)

Oh! Got what you are saying.
This change does make the code more general and probably closer to what the original algorithm intended.

Hi, your arguments are sound. You say that sometimes the change is important, do you have some concrete examples (a bit more concrete than C1/C2 example) ?

Well, I didn't have any concrete example yet.
But as you asked for, I made a simple random bruteforce search for differences and it gives, for example, this one:
graph = [(0, 9), (0, 2), (1, 9), (1, 10), (1, 12), (2, 8), (2, 3), (2, 7), (3, 5), (4, 11), (5, 16), (5, 6), (5, 7), (7, 8), (7, 14), (8, 12), (8, 10), (9, 14), (10, 16), (11, 13), (13, 16), (14, 16), (15, 16)]
The current code gives such solution: [0, 1, 0, 0, 2, 3, 3, 0, 1, 0, 1, 2, 1, 2, 0, 3, 3] with the modularity 0.362003780718
The patched code gives this solution: [0, 1, 0, 0, 2, 0, 0, 0, 1, 0, 1, 2, 1, 2, 0, 2, 2] with the modularity 0.363894139887
To be honest, there are both situations when current code gives better or worse solutions than the patched code. But the point is (1) they are different and (2) the provided patch is closer to the paper :)

Hello,
Thanks you very much. I merge your code. I will do a release with your change in one week after my holydays.
Best

Great, thanks!


Change 0.0.5

PR: Architecture Refactor and Wallet Check Implementation
Overview
This PR establishes a new architecture for Permalaunch's wallet-related commands and implements the optimized wallet check functionality.
Architecture Changes 🏗
New Command Flow Pattern
init:           Setup → Configure → Done
check-wallet:   Verify → Validate → Report
check-balance:  Calculate → Compare → Report

Shared Utilities Structure
src/
├── utils/
│   ├── wallet.ts        # Wallet operations
│   ├── validation.ts    # Shared validation
│   └── balance.ts       # Balance operations

Key Improvements

Clear separation of concerns
Reduced code duplication
Standardized validation
Shared security practices
Consistent error handling

Wallet Check Implementation ✅
Objectives

Streamline wallet verification process
Remove duplicate functionality with init command
Enhance user feedback and guidance

Implementation Checklist

[ ] Refactor wallet checks to use init command utilities
[ ] Update wallet check flow:

[ ] Check if init has been run
[ ] Verify DEPLOY_KEY validity
[ ] Validate wallet address
[ ] Check wallet balances

[ ] Improve error messages and user guidance
[ ] Add progress indicators
[ ] Update documentation

Testing Coverage

[ ] Test after successful init
[ ] Test without running init first
[ ] Test with invalid DEPLOY_KEY
[ ] Test with valid DEPLOY_KEY but invalid wallet
[ ] Test balance checking
[ ] Test error scenarios

Security Considerations 🔒

[ ] Ensure secure handling of DEPLOY_KEY
[ ] Validate wallet address format
[ ] Protect against malformed wallet data
[ ] Handle sensitive data display appropriately

Documentation Updates 📚

[ ] Update command help text
[ ] Add examples to README
[ ] Update error message documentation
[ ] Document relationship with init command

Next Steps

Review and approve architecture
Implement wallet check changes
Add comprehensive tests
Update documentation

Changes Made

✅ Created new validation utility (validation.ts)
✅ Refactored wallet check command to use shared utilities
✅ Added comprehensive test suite for wallet validation
✅ Implemented secure DEPLOY_KEY handling

Core Implementation
validateInitStatus(): Promise<ValidationResult> {
  // Validates .env and DEPLOY_KEY setup
}

runWalletCheck(): Promise<CheckResult> {
  // Uses shared validation
  // Implements new architecture pattern
}

Testing Coverage

✅ Init validation tests
✅ Wallet address validation
✅ Error handling scenarios
✅ Mock system for clean tests

Next Steps

[ ] Complete balance checking integration
[ ] Enhance user feedback
[ ] Update documentation
[ ] Add progress indicators

Security

Secure DEPLOY_KEY validation
Proper error handling
Safe wallet address display

Breaking Changes
None.

Changes Made

✅ Set up initial test infrastructure for wallet checks
✅ Implemented clean mock system for utils and console
✅ Added first validation test case
✅ Established proper TypeScript typing for mocks

Core Implementation
// Clean mock setup with proper types
const mockValidateInitStatus = jest.fn<() => Promise<ValidationResult>>();

// Environment-aware test structure
describe('Wallet Check Command - Init Check', () => {
  beforeEach(() => {
    jest.clearAllMocks();
    delete process.env.DEPLOY_KEY;
  });
});

Testing Coverage

✅ Init status validation
✅ Environment variable handling
✅ Console output mocking
✅ Process.stdout method mocking

Next Steps

[ ] Add wallet address validation tests
[ ] Implement balance check tests
[ ] Add error scenario coverage
[ ] Test user feedback messages

Security

Clean environment between tests
Proper DEPLOY_KEY handling
Safe mock implementations

Breaking Changes
None.

Changes Made

✅ Added wallet address validation test coverage
✅ Implemented proper DEPLOY_KEY environment handling
✅ Enhanced mock system with getWalletAddress
✅ Added base64 encoding support for test environment

Core Implementation
// Clean test setup with proper environment
process.env.DEPLOY_KEY = Buffer.from(JSON.stringify({ privateKey: 'test-key' })).toString('base64');

// Comprehensive mock system
const mockValidateInitStatus = jest.fn<() => Promise<ValidationResult>>();
const mockGetWalletAddress = jest.fn<() => Promise<string>>();

Testing Coverage

✅ Init validation failure
✅ Wallet address validation failure
✅ Environment variable handling
✅ Base64 encoding validation

Next Steps

[ ] Add balance check tests
[ ] Test successful validation path
[ ] Add more error scenarios
[ ] Test warning messages

Security

Proper DEPLOY_KEY encoding
Safe mock implementations
Clean environment between tests

Breaking Changes
None.

Changes Made

✅ Focused wallet check command on core validation
✅ Implemented comprehensive test suite
✅ Added complete documentation coverage
✅ Established clear command relationships

Core Implementation
// Clear separation of concerns
export const command = 'check wallet';
export const desc = 'Validates wallet setup and configuration';

// Focused validation flow
export async function runWalletCheck(): Promise<CheckResult> {
  // 1. Init validation
  // 2. DEPLOY_KEY verification
  // 3. Wallet address validation
}

Testing Coverage

✅ Init validation tests
✅ DEPLOY_KEY validation
✅ Wallet address verification
✅ Error scenario handling
📝 TODO: Complex integration test (future PR)

Documentation Added

✅ Updated command help text
✅ Enhanced README examples
✅ Created ERROR-MESSAGES.md
✅ Added COMMAND-RELATIONSHIPS.md

Next Steps

[ ] Implement balance check command (separate PR)
[ ] Add complex integration test
[ ] Enhance deployment cost estimation

Security

Secure DEPLOY_KEY handling
Safe wallet address validation
Protected sensitive data display

Breaking Changes
None. All changes maintain backward compatibility.
Note: Balance checking functionality has been intentionally separated into its own command for better separation of concerns.


Ensure indexer doesn't return deleted entries unless requested explicitly

Summary
Explain the goal of this change and what problem it is solving. Format this cleanly so that it may be used for a commit message, as your changes will be squash-merged.
Test Plan
How did you test these changes? Please provide the exact scenarios you tested in as much detail as possible including commands, output and rationale.

So far so good.
Should a single account lookup /v2/accounts/AAAA... implicitly fetch that account even if it has been deleted?

So far so good.
Should a single account lookup /v2/accounts/AAAA... implicitly fetch that account even if it has been deleted?

Will and I discussed that and we think that the answer is no. The rationale was to keep it consistent.


Implement message logging

Deleted messages and edited messages will be reposted in a server's configured message logging channel, if configured.
Image logging is planned but not in progress yet.

Deleted message logging is done, however edited message logging is waiting on a fix from Zomatree before being implemented.

The fix I've been waiting on has been implemented (see this commit,I am now beginning work on this.

Edited message logging is completed.


middleware/kubernetes Update dns schema to support skydns replacement

https://github.com/kubernetes/kubernetes/blob/master/build/kube-dns/README.md

Yeah, we should change the default template to include the {type}. Also, I believe @mrichmon was working on A records for pods.

This should be fixed with #359? (That PR needs to be rebased to get rid of the conflicts)

My understanding is that this is an over-arching issue to make coredns a drop in >= replacement for skydns.  #359 just addresses one (very simple) item.  Its not clear to me what the full list of TODOs is.

#359 adds {type} into the default template.
Also need to add A records for pods to resolve this issue.
I assume other things need to be done as well.

See here for all the features we need to support: http://kubernetes.io/docs/admin/dns/

@aledbf in order to finalize this one, I put together a more explicit specification for DNS-based service discovery in Kubernetes, based on the docs and on some discussion with @thockin and @bowei
You may want to take a look at it here: https://docs.google.com/document/d/1B4ZA1HwprWMzyT7nUZLAZ93Fjwcdt9qs0aXfifKxpTs/edit#heading=h.ccweo4g1oxg
I will be moving it to a K8s PR probably next week for community feedback. Once that's nailed down then we can finish this issue.

Now it's here: https://github.com/kubernetes/kubernetes/pull/38408


Support transpose in autodiff

For issue https://github.com/NervanaSystems/neon/issues/169

CPUTensor.base now points to a CPUTensor for consistency
Introduces _base_tensor property for Tensor
Includes a test

Brought in internally as part of v1.2.0 release


Data gap 7.1.2

7.1.2 - Proportion of population with primary reliance on clean fuels and technology

request sent - pending

Report 100% with blurb from SDG metadata

Indicator now shows 100% from 2015-2022, but I don't know what to put in the Sources section. Currently sources is blank.

Source should be "Statistics Canada"