epistatis test error

Hi everyone,
I am trying to run the epistasis function
bed_fn = Bed("my_bed_file")
pheno_fn = Pheno("my_pheno_file")
G0 = bed_fn
results_df = epistasis(bed_fn, pheno_fn, G0)
But I am getting this error:
of pairs is<PHONE_NUMBER>5226
filling in the cache_file and log_delta, as needed
Precomputing eigen
Saving precomputation to .working\cache_file.npz
searching for internal delta
Traceback (most recent call last):
File "C:/Users/x/PycharmProjects/x/lmm/lmm01.py", line 40, in
results_df = epistasis(bed_fn, pheno_fn, G0)
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\fastlmm\association\epistasis.py", line 114, in epistasis
epistasis.fill_in_cache_file()
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\fastlmm\association\epistasis.py", line 450, in fill_in_cache_file
lmm.sety(self.pheno['vals'])
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\pysnptools\snpreader\snpreader.py", line 525, in getitem
iid_indexer, snp_indexer = iid_indexer_and_snp_indexer
ValueError: too many values to unpack (expected 2)
I am using
fastlmm 0.5.5 on Windows 10 and Python 3.7.
single_snp with the same data works as expected. Any ideas what I did wrong? BTW, the links to the Notebooks on the GitHub page are not working,would be nice to have them again :)
Thanks a lot
Stefanie

Stefanie,
Thanks for your note!
I think the first thing to think about is the number of pairs you would like it to evaluate. It is saying that there are           90,831,968,705,226 pairs (that is, 91 trillion). Even if it could evaluate 1 million pairs per second, 91 trillion pairs would take 3 years. Also, your pvalue would need to be roughly 1e-16 to be significant.
I think this is the number of pairs from about 10M SNPs. Does that sound right? (We once did all pairs from about 400,000 SNPs, but that required a cluster and many days.)
If you want to see what happens when you run on fewer pairs, you can use the sid_list_0 and sid_list_1 inputs to restrict the number of SNPs used to make pairs. See https://fastlmm.github.io/FaST-LMM/#epistasis
Yours,
Carl
From: snowformatics @.>
Sent: Saturday, April 02, 2022 3:17 AM
To: fastlmm/FaST-LMM @.>
Cc: Subscribed @.***>
Subject: [fastlmm/FaST-LMM] epistatis test error (Issue #29)
Importance: High
Hi everyone,
I am trying to run the epistasis function
bed_fn = Bed("my_bed_file")
pheno_fn = Pheno("my_pheno_file")
G0 = bed_fn
results_df = epistasis(bed_fn, pheno_fn, G0)
But I am getting this error:
of pairs is<PHONE_NUMBER>5226
filling in the cache_file and log_delta, as needed
Precomputing eigen
Saving precomputation to .working\cache_file.npz
searching for internal delta
Traceback (most recent call last):
File "C:/Users/x/PycharmProjects/x/lmm/lmm01.py", line 40, in
results_df = epistasis(bed_fn, pheno_fn, G0)
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\fastlmm\association\epistasis.py", line 114, in epistasis
epistasis.fill_in_cache_file()
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\fastlmm\association\epistasis.py", line 450, in fill_in_cache_file
lmm.sety(self.pheno['vals'])
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\pysnptools\snpreader\snpreader.py", line 525, in getitem
iid_indexer, snp_indexer = iid_indexer_and_snp_indexer
ValueError: too many values to unpack (expected 2)
I am using
fastlmm 0.5.5 on Windows 10 and Python 3.7.
single_snp with the same data works as expected. Any ideas what I did wrong? BTW, the links to the Notebooks on the GitHub page are not working,would be nice to have them again :)
Thanks a lot
Stefanie

Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ffastlmm%2FFaST-LMM%2Fissues%2F29&data=04|01||b669c56e304c43bebd7e08da1491f177|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637844914294667850|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=tKHM3dqQLh2dhmkMk3EWxSWdP51R4d6arH4JMlrjJg0%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABR65P55I4HHIMUYZ5K3Z5LVDANCHANCNFSM5SKXKV6A&data=04|01||b669c56e304c43bebd7e08da1491f177|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637844914294667850|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=vp4sl63kfVeaG%2FyfH7jVZ6q%2BdMT6kmSHoBLF%2FACiN3o%3D&reserved=0.
You are receiving this because you are subscribed to this thread.Message ID<EMAIL_ADDRESS>

Thanks Carl! Ok that makes of course sense, I have >10 Mil SNPs. I will try to reduce the number by filtering the p-value from the lmm results. One more question, do I have to set both,  sid_list_0 and sid_list_1?
Thanks

I created a new bed file with about 300 SNPs but I still getting the same error:
of pairs is 50403
filling in the cache_file and log_delta, as needed
Precomputing eigen
Saving precomputation to .working\cache_file.npz
searching for internal delta
vals
Traceback (most recent call last):
File "C:/Users/x/PycharmProjects/BCC_Experiments/lmm/lmm01.py", line 40, in
results_df = epistasis(bed_fn, pheno_fn, G0)
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\fastlmm\association\epistasis.py", line 114, in epistasis
epistasis.fill_in_cache_file()
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\fastlmm\association\epistasis.py", line 452, in fill_in_cache_file
lmm.sety(self.pheno['vals'])
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\pysnptools\snpreader\snpreader.py", line 526, in getitem
iid_indexer, snp_indexer = iid_indexer_and_snp_indexer
ValueError: too many values to unpack (expected 2)
Do I have to prepare the bed and pheno file in a different format (single_snp  works)?
Thanks

I think I found the solution to this problem. The epistatis function is older than
From: snowformatics @.>
Sent: Sunday, April 03, 2022 5:22 AM
To: fastlmm/FaST-LMM @.>
Cc: Carl Kadie @.>; Comment @.>
Subject: Re: [fastlmm/FaST-LMM] epistatis test error (Issue #29)
Importance: High
I created a new bed file with about 300 SNPs but I still getting the same error:
of pairs is 50403
filling in the cache_file and log_delta, as needed
Precomputing eigen
Saving precomputation to .working\cache_file.npz
searching for internal delta
vals
Traceback (most recent call last):
File "C:/Users/x/PycharmProjects/BCC_Experiments/lmm/lmm01.py", line 40, in
results_df = epistasis(bed_fn, pheno_fn, G0)
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\fastlmm\association\epistasis.py", line 114, in epistasis
epistasis.fill_in_cache_file()
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\fastlmm\association\epistasis.py", line 452, in fill_in_cache_file
lmm.sety(self.pheno['vals'])
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\pysnptools\snpreader\snpreader.py", line 526, in getitem
iid_indexer, snp_indexer = iid_indexer_and_snp_indexer
ValueError: too many values to unpack (expected 2)
Do I have to prepare the bed and pheno file in a different format (single_snp works)?
Thanks

Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ffastlmm%2FFaST-LMM%2Fissues%2F29%23issuecomment-1086856183&data=04|01||f2fd4a909baa46618b2708da156c9e8a|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637845853501014275|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=x2LoIzN2wkHL8MkGluCksJ6%2BIPBq9vS5C71UQEqupIs%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABR65P6F6HLPDLP6C5G5HZLVDGEQJANCNFSM5SKXKV6A&data=04|01||f2fd4a909baa46618b2708da156c9e8a|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637845853501014275|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=wv23xiXW8kR8M4JFVCH1kPIOsgjBl%2B0fyOjy75r0RnE%3D&reserved=0.
You are receiving this because you commented.Message ID<EMAIL_ADDRESS>

[whoops. Sent too early. Trying again.]
I think I found the solution to the "ValueError: too many values to unpack (expected 2)" problem. The epistasis function is older than single_snp. It does not accept a Pheno reader as its phenotype input. Instead, the input must either be a phenotype file or special Python dictionary. Here is some sample code that shows how to convert a Pheno reader into the special dictionary:
from pysnptools.snpreader import Pheno
pheno = Pheno(pheno_fn)
pheno_dict = {'iid':pheno.iid, 'vals':pheno.read().val[:,0]}
run epistasis analysis
results_df = epistasis(test_snps, pheno_dict, G0=G0, covar=cov_fn)
From: snowformatics<EMAIL_ADDRESS>Sent: Sunday, April 03, 2022 5:22 AM
To: fastlmm/FaST-LMM<EMAIL_ADDRESS>Cc: Carl Kadie<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [fastlmm/FaST-LMM] epistatis test error (Issue #29)
Importance: High
I created a new bed file with about 300 SNPs but I still getting the same error:
of pairs is 50403
filling in the cache_file and log_delta, as needed
Precomputing eigen
Saving precomputation to .working\cache_file.npz
searching for internal delta
vals
Traceback (most recent call last):
File "C:/Users/x/PycharmProjects/BCC_Experiments/lmm/lmm01.py", line 40, in
results_df = epistasis(bed_fn, pheno_fn, G0)
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\fastlmm\association\epistasis.py", line 114, in epistasis
epistasis.fill_in_cache_file()
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\fastlmm\association\epistasis.py", line 452, in fill_in_cache_file
lmm.sety(self.pheno['vals'])
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\pysnptools\snpreader\snpreader.py", line 526, in getitem
iid_indexer, snp_indexer = iid_indexer_and_snp_indexer
ValueError: too many values to unpack (expected 2)
Do I have to prepare the bed and pheno file in a different format (single_snp works)?
Thanks

Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ffastlmm%2FFaST-LMM%2Fissues%2F29%23issuecomment-1086856183&data=04|01||f2fd4a909baa46618b2708da156c9e8a|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637845853501014275|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=x2LoIzN2wkHL8MkGluCksJ6%2BIPBq9vS5C71UQEqupIs%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABR65P6F6HLPDLP6C5G5HZLVDGEQJANCNFSM5SKXKV6A&data=04|01||f2fd4a909baa46618b2708da156c9e8a|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637845853501014275|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=wv23xiXW8kR8M4JFVCH1kPIOsgjBl%2B0fyOjy75r0RnE%3D&reserved=0.
You are receiving this because you commented.Message ID<EMAIL_ADDRESS>

Here is some sample code that shows the example from the notebook https://nbviewer.org/github/fastlmm/FaST-LMM/blob/master/doc/ipynb/FaST-LMM.ipynb
except that first it runs single_snp and then it keeps only SNPs with a PValue < 1e-7 for epistasis.
(I picked the cutoff arbitrarily and it's creating G0 and testing on SNPs from the same chromosome, so you may not want to something different.)

Carl

set some ipython notebook properties
%matplotlib inline
set degree of verbosity (adapt to INFO for more verbose output)
import logging
logging.basicConfig(level=logging.WARNING)
set figure sizes
import pylab
pylab.rcParams['figure.figsize'] = (10.0, 8.0)
#pylab.plot([1,2,3],[4,5,6])
set display width for pandas data frames
import pandas as pd
pd.set_option('display.width', 1000)
import the algorithm and reader
import numpy as np
from fastlmm.association import epistasis, single_snp
from pysnptools.snpreader import Bed
from fastlmm.util import example_file # Download and return local file name
from pysnptools.snpreader import Pheno
define file names
bed_fn = example_file('tests/datasets/synth/all.','.bed')
bed_reader = Bed(bed_fn, count_A1=True)
pheno_fn = example_file("tests/datasets/synth/pheno_10_causals.txt")
cov_fn = example_file("tests/datasets/synth/cov.txt")
pheno = Pheno(pheno_fn)
df_single = single_snp(test_snps=bed_reader, pheno=pheno, covar=cov_fn)
print(df_single)
pvalue_cutoff = 1e-7
snp_list = list(df_single[df_single.PValue<pvalue_cutoff].SNP)
print(snp_list)
G0 = bed_reader
test_snps = bed_reader
pheno_dict = {'iid':pheno.iid, 'vals':pheno.read().val[:,0]}
run epistasis analysis
results_df = epistasis(test_snps, pheno_dict, G0=G0, covar=cov_fn, sid_list_0=snp_list, sid_list_1=snp_list)
qq plot
from fastlmm.util.stats import plotp
plotp.qqplot(results_df["PValue"].values, xlim=[0,5], ylim=[0,5])
print head of results data frame
pd.set_option('display.width', 1000)
results_df.head(n=10)
From: Carl K
Sent: Sunday, April 03, 2022 5:30 PM
To: 'fastlmm/FaST-LMM' @.>; 'fastlmm/FaST-LMM' @.>
Cc: 'Comment' @.>; @.' @.***>
Subject: RE: [fastlmm/FaST-LMM] epistatis test error (Issue #29)
[whoops. Sent too early. Trying again.]
I think I found the solution to the "ValueError: too many values to unpack (expected 2)" problem. The epistasis function is older than single_snp. It does not accept a Pheno reader as its phenotype input. Instead, the input must either be a phenotype file or special Python dictionary. Here is some sample code that shows how to convert a Pheno reader into the special dictionary:
from pysnptools.snpreader import Pheno
pheno = Pheno(pheno_fn)
pheno_dict = {'iid':pheno.iid, 'vals':pheno.read().val[:,0]}
run epistasis analysis
results_df = epistasis(test_snps, pheno_dict, G0=G0, covar=cov_fn)
From: snowformatics<EMAIL_ADDRESS>Sent: Sunday, April 03, 2022 5:22 AM
To: fastlmm/FaST-LMM<EMAIL_ADDRESS>Cc: Carl Kadie<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [fastlmm/FaST-LMM] epistatis test error (Issue #29)
Importance: High
I created a new bed file with about 300 SNPs but I still getting the same error:
of pairs is 50403
filling in the cache_file and log_delta, as needed
Precomputing eigen
Saving precomputation to .working\cache_file.npz
searching for internal delta
vals
Traceback (most recent call last):
File "C:/Users/x/PycharmProjects/BCC_Experiments/lmm/lmm01.py", line 40, in
results_df = epistasis(bed_fn, pheno_fn, G0)
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\fastlmm\association\epistasis.py", line 114, in epistasis
epistasis.fill_in_cache_file()
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\fastlmm\association\epistasis.py", line 452, in fill_in_cache_file
lmm.sety(self.pheno['vals'])
File "C:\Users\x\AppData\Local\Continuum\anaconda3\envs\gwas_flow\lib\site-packages\pysnptools\snpreader\snpreader.py", line 526, in getitem
iid_indexer, snp_indexer = iid_indexer_and_snp_indexer
ValueError: too many values to unpack (expected 2)
Do I have to prepare the bed and pheno file in a different format (single_snp works)?
Thanks

Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ffastlmm%2FFaST-LMM%2Fissues%2F29%23issuecomment-1086856183&data=04|01||f2fd4a909baa46618b2708da156c9e8a|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637845853501014275|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=x2LoIzN2wkHL8MkGluCksJ6%2BIPBq9vS5C71UQEqupIs%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABR65P6F6HLPDLP6C5G5HZLVDGEQJANCNFSM5SKXKV6A&data=04|01||f2fd4a909baa46618b2708da156c9e8a|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637845853501014275|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=wv23xiXW8kR8M4JFVCH1kPIOsgjBl%2B0fyOjy75r0RnE%3D&reserved=0.
You are receiving this because you commented.Message ID<EMAIL_ADDRESS>

Hi Carl.
I have no idea how to express my deep gratitude, it works now ;) Let's cross fingers to find something interesting,
Thanks again Carl!
Stefanie


Make the logo a bit smaller :)

Maybe add a nice header?

👍
Do you mean a banner or sort of "menu links"?  Or what does a nice header look like 😅

Ah I meant like a cool graphic, like for the summit :) something visually pleasing!


Move pack test from crypto3::detail to this module

At the moment, pack algorithm is part of long-running backlog. It is placed in the crypto3::detail namespace. We must substitute it by the marshalling pack. To be sure, that we made correct substitution, we need to move pack tests to marshalling and ensure, that there is no probplems with that.

All pack old tests for big-endian and little-endian work. little-endian and big-endian tests are to be finished after closing #8


Migrating seeded torrents

Easiest way to migrate seeded torrents to Pico when .torrent files are in folder A and torrent datas in folder B, possible without recheck or popup windows etc?
Made this an issue since couldn't find anything in the documentation.

You'd need a recheck at least, and I don't think there's an easy way to do this for multiple torrents. Perhaps if you change the default download directory to where your downloaded data is, then add all your torrents. This should add them with the default save path to where their data is.


Add docs to the project

Similar to #2 I want to create docs early on in the project to make sure that all parts are well documented.
I want my documentation to be partly automated (reading from doc_strings) but also allow for custom documentation around the automated part, written in Markdown.
Todos

find out whether such a tool exists
use the tool to create first docs

So I decided to use Sphinx to semi-automatically generate docs from sphinx-style docstrings.
Also I will be using Read the Docs to deploy the docs.

I used sphinx napoleon extension to enable numpy style docstrings.
Will close this issue now as the general doc structure is now there and the build process is working.


Add first-class support for binary crates

fixes #1630
Essentially, "if nothing was tagged #[wasm_bindgen(start)] and there is an exported fn main(i32, i32) -> i32 then process it as though it were tagged that way."
open questions before i'm confident this implementation is ready:

[ ] should it refuse to autodiscover a main that is already tagged for wasm_bindgen in some other way?
[ ] can the shim_idx field on the function descriptor be safely set to 0?
[x] can the arg names be justifiably set to argc and argv?
[x] should there be an automated test for this behavior somewhere? if so, how and where should that test be written?

Thanks for this! I agree that pattern matching and using inference here is the way to go. I think though what we need to do here is to perhaps inject a new function to be start which calls main with zero'd out arguments?
Currently this I believe will export a binding for main but we want to be sure to hook it up to all the start infrastructure to make sure it's started automatically

considering that #[wasm_bindgen(start)] emits a scary warning if applied to a function with arguments, hacking the planet to get the same effect attached to a function with two arguments is probably not ideal.
if i manually write #[wasm_bindgen(start)] pub fn start() { main(); } in Rust and then ask walrus what its body is, i get
function Id { idx: 22 } (Some("start"))
  GlobalGet(GlobalGet { global: Id { idx: 0 } })
  LocalSet(LocalSet { local: Id { idx: 182 } })
  Const(Const { value: I32(16) })
  LocalSet(LocalSet { local: Id { idx: 183 } })
  LocalGet(LocalGet { local: Id { idx: 182 } })
  LocalGet(LocalGet { local: Id { idx: 183 } })
  Binop(Binop { op: I32Sub })
  LocalSet(LocalSet { local: Id { idx: 184 } })
  LocalGet(LocalGet { local: Id { idx: 184 } })
  GlobalSet(GlobalSet { global: Id { idx: 0 } })
  Call(Id { idx: 21 } (Some("bin_crate_without_a_bundler::start::h2a2091f59a0e039a")))
  Call(Id { idx: 888 } (Some("<T as wasm_bindgen::convert::traits::ReturnWasmAbi>::return_abi::h4fdec286c4868b5e")))
  Const(Const { value: I32(16) })
  LocalSet(LocalSet { local: Id { idx: 185 } })
  LocalGet(LocalGet { local: Id { idx: 184 } })
  LocalGet(LocalGet { local: Id { idx: 185 } })
  Binop(Binop { op: I32Add })
  LocalSet(LocalSet { local: Id { idx: 186 } })
  LocalGet(LocalGet { local: Id { idx: 186 } })
  GlobalSet(GlobalSet { global: Id { idx: 0 } })
  Return(Return)
function Id { idx: 21 } (Some("bin_crate_without_a_bundler::start::h2a2091f59a0e039a"))
  Call(Id { idx: 20 } (Some("bin_crate_without_a_bundler::main::ha40db6ddc3c404a3")))
  Return(Return)

so hopefully replicating that verbatim is not actually necessary (especially bc a few pieces would be difficult or impossible to reliably replicate). zeroing out the arguments and dropping the return value is, unsurprisingly, far easier.

I think you'll want to avoid calling self.program here and synthesize a new function to place in the start function with walrus, and I think that'd help cut down on the verbosity here as well?
Additionally can you be sure to add some tests for this change?

I'm already synthesizing a replacement with walrus, but per your suggestion I've skipped program and gone straight to export since that's the only part of program that actually runs anyway.
i wasn't quite sure where to write tests, but https://github.com/rustwasm/wasm-bindgen/blob/2e03961ca10ae80622d7a6012c25abbd4de19a0a/crates/cli/tests/wasm-bindgen/main.rs#L8-L9 pointed me in the right direction.

Oh right sorry good point! I think though that none of export or program should be needed here, it should be possible to just directly modify the state of the local context to reflect that the main function was found? Either that or this could share infrastructure with the detection of #[wasm_bindgen(start)]?
And yeah that tests directory should be good to house tests!

export is the detection of #[wasm_bindgen(start)], but it turns out only one line from export is actually needed for the new test to pass, so just using that one line cleans up a lot of other stuff.

Perfect, thanks!


Expression for converting a date to epoch time in an indexing statement

Hello vespa team.
I would like to create a derived field with an indexing statement.
I would need to convert a date to epoch time.
Checking the documentation at https://docs.vespa.ai/en/reference/advanced-indexing-language.html, it seems there are no expressions for converting a date to epoch time.
A workaround would be using a docprocessor to populate the field.
However, everytime a similar situation takes place, a document reindexing would be needed to populate this field in all documents affected, increasing running costs in vespa cloud.
It would be really handy to have a new indexing expression that would convert from a date to epoch time.
This expression could be similar to fromdateiso8601 from the jq tool (https://jqlang.github.io/jq/manual/v1.6/#dates).
Thank you.

This will be available in a release =>  8.214.6. Details on the feature https://github.com/vespa-engine/documentation/pull/2818

This feature is available in 8.215.17


Some parsing confuses

Promise*Error — it produces structure for Promise|*|Error. Is it right?

@zxqfox Thanks for reporting.
I think it should throw SyntaxError.
How about you?

Definitely! :+1: to SyntaxError

OK, I'll try to fix it.

I'm trying to use PEG (Parser Expression Grammar) to prevent this kind of bug on #10.
But I have a hard time with left recursion...
It may take a little time... :persevere:

Resoved on #10.


[FEATURE] Add failed claims transactions tracking.

Pull Request Test Coverage Report for Build 1010

13 of 14 (92.86%)  changed or added relevant lines in 2 files are covered.
7 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-1.7%) to 77.231%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/Actions/Actions.ts
2
3
66.67%

Files with Coverage Reduction
New Missed Lines
%

src/EconomicStrategy/EconomicStrategyHelpers.ts
1
50.0%

src/Actions/Actions.ts
2
23.13%

src/Actions/Pending.ts
4
36.42%

Totals

Change from base Build 992:
-1.7%

Covered Lines:
499

Relevant Lines:
613

💛  - Coveralls


Fix 87: Webpack (production) FavIcon, plus sorta-404 page

PR Overview

This PR fixes #87 - or at least, it should. Testing the PR is a rather testing endeavour as I need to push things to production.
Webpack now properly packs font files and the favicon.ico.

ONGOING: Still no idea why the Abe Lincoln font isn't being used correctly on production.

ONGOING: investigating why project data isn't being pulled from Panoptes.

Status
WIP, do not merge.

Update: the font issue can only be solved with this PR: https://github.com/zooniverse/static/pull/25
Please see the discussion on #87 for further details and an accurate stream of thought realisation of what the problem was.

Update: Project data visibility required two solutions:

The Project duck needs to be updated to not use the Temporary Hardcoded Project ID, which only works on staging.
In the PFE Project Builder, Project Visibility must be set from Private to Public.

PR Update

This PR now (correctly) chooses Project ID based on the environment, instead of using a hardcoded Project ID. Hello, Project Duck!

External requirement (DONE): PFE project 4973 has had its Visibility set to Public. (It's still in Development, not Live, mode.)

External requirement: PR zooniverse/static#25 needs to be merged & deployed before the Abraham Lincoln font can be served properly on antislaverymanuscripts.org

Status
Ready for review!

Addendum
Forgot to mention two more things.

If you try to access an invalid page, you actually see the website instead of just a blank white page. This helped with the debugging of the production stuff greatly, but that new * route in index.js is a good candidate for a 404 page.
I've created a new Panoptes App and added its corresponding ID to the project. This should allow sign in on production.

Ahh. The visibility! Of course!

LGTM


Please don't hide non zero amounts while blind signing

Please don't hide non zero amounts! It is usually zero, but I want to know when it is not. This way you hiding when some rogue smart contact want to steal ETH!
Originally posted by @0x398 in https://github.com/LedgerHQ/app-ethereum/pull/692#issuecomment-2540205455

You're right @0x398 , the purpose of the PR https://github.com/LedgerHQ/app-ethereum/pull/692 has two objectives:

Introduce the transaction hash to highlight that some data hasn't been decoded in this transaction.
Hide the ETH amount when it's 0 as it give a false sense of safety -> other tokens might be transferred for instance.

But it's true that when ETH amount isn't 0, it doesn't make sense to hide it.
The team is currently working on preparing a PR to fix this.


Style xAxisTitle and yAxisTitle on the XYGraph

First of all, thank you for this awesome Kotlin Multiplatform library.
Currently, I can only pass the String title, but I don't have the capability to style the text to my liking.
It would be nice if xAxisTitle and yAxisTitle could be content slots so that I can pass whatever I want, e.g.,
public fun <X, Y> XYGraph(
    ...
    xAxisTitle: @Composable (() -> Unit)? = null,
    ...
    yAxisTitle: @Composable (() -> Unit)? = null,
    ...
) {
    ...
}

There is an overloaded version of XYGraph that lets you do that. Around line 69 in XYGraph.kt.


Fix label masking length when setting add_eos_token=True and train_on_inputs=False

If add_eos_token=True and train_on_inputs=False are set, the first token of response will be masked by -100. Assuming we tokenize the following sample：
### Instruction:

I cannot locate within the FAQ whether this functionality exists in the API although its mentioned in a book as something that is potentially available. Has anyone had any experience implementing this feature?

### Response:
As an AI language model, I do not have access to the specific details of the book or the API you are referring to. Please provide more context or information so I can assist you better.</s>

After tokenization, we decode the input_ids masked by -100  and get the following text：
### Instruction:

I cannot locate within the FAQ whether this functionality exists in the API although its mentioned in a book as something that is potentially available. Has anyone had any experience implementing this feature?

### Response:
As

The non-masked input_ids decoded are:
 an AI language model, I do not have access to the specific details of the book or the API you are referring to. Please provide more context or information so I can assist you better.</s>

Ah, missed this — thank you!


🌱 Use https with heartbeating

Ironic by default require TLS from agent https://github.com/openstack/ironic/blob/f182c33b4d2c8a15b167896f0565c0c8dd667912/ironic/conf/agent.py#L155
Slack discussion https://kubernetes.slack.com/archives/CHD49TLE7/p1721659136820069

/cancel lgtm

/remove lgtm

/approve

/lgtm


temporalite homebrew

Is your feature request related to a problem? Please describe.
I think we need to give alternative ways for installation temporalite. There is an easy way to use temporalite binary like homebrew for mac users. is there any obstacle to it?
Describe the solution you'd like
We can integrate brew release mechanism with goreleaser in an autonomous way and people can install temporalite easily on their macs.
Describe alternatives you've considered
I don't have alternative
Additional context
if it's acceptable I can work on it. Temporalio project has already homebrew repository. I can easily integrate with it in an autonomous way .

Temporalite is available via the temporal start-dev, part of the Temporal CLI which is installable via homebrew: https://github.com/temporalio/cli

thanks @robholland I didn't know I can use temporalite via temporal cli. But people might want use directly temporalite without temporal cli in this case home-brew good alternative for installation.
Also there is a similar issue I hadn't noticed it when I opened that issue. You can close too
https://github.com/temporalio/temporalite/issues/106


Generated create mutation template doesn't use modelObjectKey for conditions

Before opening, please confirm:

[X] I have installed the latest version of the Amplify CLI (see above), and confirmed that the issue still persists.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
v16.0.0
Amplify CLI Version
4.50.2
What operating system are you using?
MacOS
Amplify Categories
api
Amplify Commands
push
Describe the bug
A schema with a model containing two fields in the primary index not using id does not generate a create mutation with a condition that returns an  error when creating an item with duplicate values in the primary index.  You can run the create mutation multiple times with the same primary index values and it reports success.
Expected behavior
Attempting to create a new record when the primary key values collide with an existing record should fail.
Reproduction steps
A model below allows you to invite the same user to the same organization multiple times without error.  Duplicate database entries are not actually created.
GraphQL schema(s)

# Put schemas below this line

type UserInvite
@model
@key( fields[ 'organizationId', 'email' ] )
{
  organizationId: ID!
  email: String!
  note: String!
}

Log output

# Put your logs below this line

Additional information
The generated resolver template for Mutation.createUserInvite.req.vtl contains this logic:
## [Start] Prepare DynamoDB PutItem Request. **
$util.qr($context.args.input.put("__typename", "UserInvite"))
#set( $condition = {
  "expression": "attribute_not_exists(#id)",
  "expressionNames": {
      "#id": "id"
  }
} )

Using AppSync's query interface, you can run the createUserInvite mutation with the same organizationId and email and it returns successfully.  Note that it does not actually create multiple items in the database.  If you subscribe to onCreateUserInvite it will trigger the subscription as if it had created a new UserInvite.  What actually appears to happen, if you pass an alternate value for other fields, is it actually updates the existing record in the database.
By contrast, if you attempt to use updateUserInvite with the same model and pass non-existent values for the primary keys, it will fail the conditional check.  Looking at the Mutation.updateUserInvite.req.vtl, we see it generates the correct conditions if modelObjectKey is set.
  #if( $modelObjectKey )
    #foreach( $entry in $modelObjectKey.entrySet() )
      $util.qr($condition.put("expression", "$condition.expression AND attribute_exists(#keyCondition$velocityCount)"))
      $util.qr($condition.expressionNames.put("#keyCondition$velocityCount", "$entry.key"))
    #end
  #else
    $util.qr($condition.put("expression", "$condition.expression AND attribute_exists(#id)"))
    $util.qr($condition.expressionNames.put("#id", "id"))
  #end

I believe the fix is to use branching logic to generate the condition for the create template in the same way it works with update.

@pagameba thanks for reporting the issue and it is an existing bug between @model and @key. One correction to your observation:
This mutation will not create duplicate items as the same PutItem request with same PK and SK will end up updating the same item:
mutation C1 {
  createUserInvite(input: {
    organizationId: "O1"
    email:"E1"
    note: "N1"
  }) {
    organizationId
    email
    note
    createdAt
    updatedAt
  }
}

Executing the mutation times and then the following query will only return 1 item:
query Q1 {
  listUserInvites {
    items {
      organizationId
      email
      note
      createdAt
      updatedAt
    }
  }
}

If we'd generate this expression, it would work as you expect:
#set( $condition = {
  "expression": "attribute_not_exists(organizationId) and attribute_not_exists(email)"
} )

Yes I noted that it does not actually create additional records, however it does update existing records at least that is what I observed. It also triggers an onCreate subscription event even though no new record is actually created

The onCreate fires because the create mutation - regardless of its functionality - was successfully invoked, if you have a NOOP type resolver the subscription can still fire, that is one of the use cases I utilized None data source before.

@pagameba I got back to this issue Today and when rebased my branch noticed some changes in the code, verified and this issue is already fixed, connected to a different bug report in PR: https://github.com/aws-amplify/amplify-cli/pull/7419 since 4.51.2 so if you try the latest CLI it will be fixed.

Awesome, thanks for the update.  Can confirm that this does solve our problem, great work :)


lock_early not a valid option for door lock rule

Describe the bug
'lock_early' is not a valid value for the door lock rule
Which Hub are you using

Unifi Access Hub

Screenshots

Versions:

Home Assistant Version: 2024.11.3
Unifi Access version: 2.5.2
Unifi Access Integration version: v1.2.5

Home Assistant DEBUG logs (MANDATORY)
2024-11-25 17:06:41.453 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [546995976608] Option lock_early is not valid for entity select.office_door_none, valid options are: , keep_lock, keep_unlock, custom, reset

I tried it with select.office_door_none empty. I also tried it with the door both on and off a scheduled unlock with the same error


Add support for redis as a datastore

Fixes: #388

@seiflotfy :heart:

@jmank88 you lovely person ❤


measure strength/flexibility per-attribute

seems like "caricatures" are actually more felxible with respect to having their age changed than identities that seem closer to "picture perfect" understanding of the face. the latter is probably more a sign of "training image memorization" or some other form of overfit. age is a fairly holistic modifier, might impact things like facial expression (emotion?), hair color, hair style, skin color, setting, attire, etc. differently
need to contrast my findings with that paper that mined for "memorized" images

skin tone measuring

https://github.com/josephdrahos/sreds
https://github.com/hanxumartin/color-invariant-skin-segmentation

https://github.com/seymayucer/facialphenotypes


Add support for Systemd

@retr0h I think it would be useful to support Systemd by default because we would be able to test services.

If users wish to use systemd they are free to configure it.  Not everyone who uses Molecule uses systemd containers.  Molecule has a nice doc on enabling this if one desires.  However, for now it shouldn't be a default.


implemented response caching

This PR implements reponse caching:

add a CacheBackendProtocol, which specifies a simple cache backend protocol. This should allow users to use whatever implementation they prefer, including stuff like Redis and Memcached.
add a CacheConfig, which sets the cache backend for the app and the default expiration.
update handlers to have the cache kwarg - this part is still WIP and we need to make some decisions regarding the desirable setup. The usual pattern is to cache only GET responses - but I am not sure whether or not we should simply leave this to the user
update the HTTPRoute.handle method to handle the caching of responses. The Response instance is "pickled" - which is somewhat security sensitive but I think its OK in this context - the only vector for code injection is if an attacker controls the cache backend already, which basically means he or she has access to the environment.
the caching keys are currently derived from the URL only - i.e. path + query params.

Significantly more testing is required before this feature is done - this is simply a draft at this stage, but I am opening it here for discussion as well as early review of the code.
P.S. This PR also includes splitting the Router from the Routes - i.e. move Router out of routes.py to router.py. In hindsight it pollutes the DIFF and makes review harder, so apologies.

I think adding a config to cache content for each IP address would be great too.

I think adding a config to cache content for each IP address would be great too.

I don't follow, can you explain?


Cant Inject for some reason

i've tried to inject it using processhacker but it doesnt even open up the console window, i've tested it in a other windows instance in the same pc and it works. i want to debug it but i dont know how, can anyone help me?

ok so i figured it out, i couldn't debug it but i just deleted all regisrty entries in "\HKEY_CURRENT_USER\SOFTWARE\Innersloth\Among Us" and deleted all files in "\AppData\LocalLow\Innersloth\Among Us" and it finally worked


Filip/update to 1.0.0

Summary of changes
Changes introduced in this pull request:

Update to 1.0.0 and update fixtures

Codecov Report

Merging #178 (fae22dd) into main (4a2cd54) will increase coverage by 0.11%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #178      +/-   ##
==========================================
+ Coverage   60.84%   60.95%   +0.11%
==========================================
  Files         105      106       +1
  Lines        7444     7465      +21
==========================================
+ Hits         4529     4550      +21
  Misses       2915     2915

Impacted Files
Coverage Δ

node/src/main.rs
0.00% <0.00%> (ø)

primitives/src/utils.rs
70.00% <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 4a2cd54...fae22dd. Read the comment docs.


Editor not at latest version of TypeScript

Describe the bug
The StackBlitz editor's TypeScript version has two problems (or maybe one problem, depending on perspective):

It lags behind the latest stable TypeScript version
It does not use the installed TypeScript version

Link to the blitz that caused the error
https://stackblitz.com/edit/vitejs-vite-faphes?file=src%2Fmain.ts,package.json&terminal=dev
Steps to reproduce

Go to main.ts
Observe the TypeScript errors

Expected behavior
There are no TypeScript errors, since the editor should be running on the latest stable version of TypeScript
Parity with Local

[X] I have run the project in my local machine and I could not reproduce the issue.

Screenshots

Platform
Browser name  = Chrome
Full version  = <IP_ADDRESS>
Major version = 125
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
performance.memory = {
  "totalJSHeapSize": 203022543,
  "usedJSHeapSize": 193694363,
  "jsHeapSizeLimit":<PHONE_NUMBER>
}
Hash = 70dbe416

Additional context
No response

Hey @davidkpiano 👋 ! Thanks for reaching out. This is now fixed and it is using the latest TypeScript 5.5.3.

Thank you! I'm still seeing the type error though: https://stackblitz.com/~/edit/vitejs-vite-faphes?file=src/main.ts:L30!,package.json&terminal=dev

Oh gotcha. I noticed now that you are using Codeflow which uses 5.4.5 as the default. If you do > Select TypeScript version and pick Use workspace version, that should address the issue (at least it did that for me).
The version we now updated was on the classic editor.


Connection Error

When I try to connect to the printer the error happens:
Offline (Error: TypeError: 'write() argument must be str, not bytes' @ comm.py:_do_send_without_checksum:3593)

octoprint.log

I have almost no Python skills.
I replaced the 'subprocess' with 'pexpect' and managed to make it work. I also comment StepdServiceLogger.
Then, I increase 'devStettingsTimeout' in 'pipeline/config_handler.go', because my printer have a slow initialization.
So, now, I got the following error in terminal tab:
Recv: M420V1                                                                                │
Recv: error: failed parsing gcode (strconv.Atoi: parsing "420V1": invalid syntax)
Then loss of connection to printer.

I got work.
This 'M420V1' gcode is sent by ABL Expert Plugin. I edited to send with space: 'M420 V1'

good catch! there should definitely be more graceful handling for general parsing errors like that

Hey, i got the same problem, can you describe the steps you´ve done to fix this?
I honestly got no idea.
Best

@Kannix2005 what g-code is it failing on? you should be able to find that g-code (or the source of it) and modify it to correct the gcode.

@Kannix2005 what g-code is it failing on? you should be able to find that g-code (or the source of it) and modify it to correct the gcode.

This should be fixed in the latest commit. If you're using OctoPrint, you'll need to grab the new plugin (URL listed on the README) as the new version requires the newer plugin. Let me know if its still causing issues!

This should be fixed in the latest commit. If you're using OctoPrint, you'll need to grab the new plugin (URL listed on the README) as the new version requires the newer plugin. Let me know if its still causing issues!


Issue #35: Bug Fix for toggle

https://user-images.githubusercontent.com/37747717/153059605-fd007e0d-ee52-43cb-96c1-11b0fe8feac5.mov

Dont know why it is not linking the issue. @capedcrusader23 can you add the description here as well?


Realme Website Clone

Description
Description of the project here:
I want to add Realme Website Clone , which will be made using HTML,CSS,JS
Code of Conduct

[X] I follow Contributing Guidelines of this project.

/assign


v3 - ParticleContainer does not set the blend mode correctly when using CanvasRenderer.

The blend mode of ParticleContainers is not set when using canvas rendering. As a result, the containers take on the blend mode of whatever was previously rendered. To fix the issue, I have added the following code (from the Sprite class) to its renderCanvas function:
    var compositeOperation = renderer.blendModes[this.blendMode];
    if (compositeOperation !== renderer.context.globalCompositeOperation)
    {
        renderer.context.globalCompositeOperation = compositeOperation;
    }

Is there any reason why this wasn't set for the ParticleContainer?

It looks correct, can you please make a pull request?

closing due to inactivity


add oss support

What do these changes do?

Related issue number

Fixes #1473

LGTM!

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: tianliplus:x: varinicYou have signed the CLA already but the status is still pending? Let us recheck it.

Codecov Report

Merging #1481 (442a278) into main (d784b25) will decrease coverage by 32.99%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main    #1481       +/-   ##
===========================================
- Coverage   73.61%   40.61%   -33.00%
===========================================
  Files          88       88
  Lines        9680     9680
===========================================
- Hits         7126     3932     -3194
- Misses       2554     5748     +3194

Impacted Files
Coverage Δ

python/graphscope/tests/unittest/test_java_app.py
0.00% <0.00%> (-100.00%)
:arrow_down:

...ython/graphscope/tests/unittest/test_cython_ast.py
0.00% <0.00%> (-100.00%)
:arrow_down:

...ython/graphscope/tests/unittest/test_serailaize.py
0.00% <0.00%> (-100.00%)
:arrow_down:

python/graphscope/analytical/udf/patch.py
3.47% <0.00%> (-96.53%)
:arrow_down:

python/graphscope/tests/unittest/test_lazy.py
0.00% <0.00%> (-96.30%)
:arrow_down:

...thon/graphscope/tests/unittest/test_scalability.py
0.00% <0.00%> (-96.16%)
:arrow_down:

python/graphscope/tests/unittest/test_app.py
0.00% <0.00%> (-95.66%)
:arrow_down:

...hon/graphscope/tests/unittest/test_create_graph.py
0.00% <0.00%> (-92.00%)
:arrow_down:

python/graphscope/tests/unittest/test_graph.py
0.00% <0.00%> (-84.93%)
:arrow_down:

python/graphscope/tests/unittest/test_context.py
0.00% <0.00%> (-81.04%)
:arrow_down:

... and 38 more

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 d784b25...442a278. Read the comment docs.


PIMBench: VGG warning issue cleanup

Is it possible to change "unsigned long int" and "long unsigned int" to uint64_t as well..

Thank you @KumareshN93! That's a very good suggestion. Updated!


Not working with Docker

I tried using the starter template with a docker container.  I know the docker config is ok, left the port at 3000 and also tried 80 but no luck in browser.  Console has no info.
Any ideas?

      HOST: '<IP_ADDRESS>'
      PORT: 80

That was easy, hope it helps

Hey @bryaan, you can help-me?

@bryaan Can you share the Dockerfile of the nuxt project?

@RobvanGastel
FROM node:7.8

ADD . /app
WORKDIR /app

RUN npm install

ARG APP_NODE_ENV=production
ENV NODE_ENV ${NODE_ENV}
RUN npm run build

EXPOSE 3000

CMD ["npm", "run", "start"]

Important is to configure <IP_ADDRESS> as host. See https://nuxtjs.org/faq/host-port/

This is great! If you are using docker-compose you can define the HOST using environment variables as specified in tillkolter's link above.
    environment:
      - HOST=<IP_ADDRESS>


Unclear how to use merge with expression condition

this used to work with older version of delta :
val data = Seq((1, 1, 1), (2, 2, 2)).toDF("part", "id", "x")
data.write
  .format("delta")
  .partitionBy("part")
  .save(tempPath)
val table = io.delta.tables.DeltaTable.forPath(spark, tempPath)
val tableDf = table.toDF
val data1  = Seq((2, 2, 4), (2, 3, 6), (3, 3, 9)).toDF("part", "id", "x")
table.merge(
  data1,
  tableDf("part") === data1("part") && tableDf("id") === data1("id")
)
  .whenMatched.updateAll
  .whenNotMatched.insertAll
  .execute()

now it produces error:
org.apache.spark.sql.AnalysisException: cannot resolve `part` in UPDATE clause given columns `_1`, `_2`, `_3`;

this is because something seems to have changed in table.toDF i think?
i can get it work again like this:
val data = Seq((1, 1, 1), (2, 2, 2)).toDF("part", "id", "x")
data.write
  .format("delta")
  .partitionBy("part")
  .save(tempPath)
val table = io.delta.tables.DeltaTable.forPath(spark, tempPath)
val tableDf = table.toDF
val data1  = Seq((2, 2, 4), (2, 3, 6), (3, 3, 9)).toDF("part", "id", "x")
table.alias("old").merge(
  data1.alias("new"),
  "old.part = new.part AND old.id = new.id"
)
  .whenMatched.updateAll
  .whenNotMatched.insertAll
  .execute()

so this relies on the merge condition being a string which is maybe a little less nice i think. does that mean there is no nice way anymore to have the merge condition be an expression (unambiguously referencing dataframes)?
thanks

Which versions are you talking about?

its broken with master. it used to work with 0.4.x

@koertkuipers Thanks for reporting this and the great reproducer. Confirmed that this is broken in 0.6.0.

@koertkuipers we are fixing this, and we should make a 0.6.1 release soon with this fix.

Fixed in the following commits

master - 8da5df0421ab159d74ae5d65d5d1d9c03dc48b74 and 8ddb49ab86c7417938fde0bfb74dedeb7e6ae59d
Branch 0.6 (to be released in 0.6.1) - 88ffb1d4069317131f5ba7c29894c4c82cb817d5 and 3aad9890e3e8596947db430e52e8142811b2bc59


Command line interface

Is there any command line interface to interact with litetree database?

Off course. The SQLite shell.
After compiling and installing LiteTree you can open the SQLite shell:
sqlite3

I created a database from the C interface but when I'm trying to open it using the CLI it prints Error: file is not a database (e.g. when using the command pragma journal_mode). I'm using the executable created by make.

The database file that supports branching is not compatible with regular SQLite database. So an error will appear when we try to open a LiteTree database in normal SQLite mode and when we try to open a normal SQLite database with branching enabled.
To create or open a database with branching enabled we must use the following format:
file:name.db?branches=on