volume.tier.upload rpc error

Describe the bug
When I use the volume.tier.upload command, I get an error rpc error: code = Unavailable desc = error reading from server: EOF
System Setup

List the command line to start "weed master", "weed volume", "weed filer", "weed s3", "weed mount".
After the configuration is complete, restart all weed related services.
The firewall of the volume server is fully open
OS version: Linux x64 ubuntu 20.04
output of weed version : version 30GB 3.02 a4ca3ed1f0c2bcde1d36bb48f81dedc3e1924679 linux amd64
filer.toml

[postgres2]
enabled = true
createTable = """
  CREATE TABLE IF NOT EXISTS "%s" (
    dirhash   BIGINT,
    name      VARCHAR(65535),
    directory VARCHAR(65535),
    meta      bytea,
    PRIMARY KEY (dirhash, name)
  );
"""
hostname = "<IP_ADDRESS>"
port = 5432
username = "seaweedfs"
password = "seaweedfs"
database = "seaweedfs"          # create or use an existing database
schema = ""
sslmode = "disable"
connection_max_idle = 100
connection_max_open = 100
connection_max_lifetime_seconds = 0
# if insert/upsert failing, you can disable upsert or update query syntax to match your RDBMS syntax:
enableUpsert = true
upsertQuery = """INSERT INTO "%[1]s" (dirhash,name,directory,meta) VALUES($1,$2,$3,$4) ON CONFLICT (dirhash,name) DO UPDATE SET meta = EXCLUDED.meta WHERE "%[1]s".meta != EXCLUDED.meta"""

security.toml

[jwt.signing]
key = "seaweedfs"
expires_after_seconds = 30

[jwt.signing.read]
key = ""
expires_after_seconds = 30

[jwt.filer_signing]
key = "seaweedfs"
expires_after_seconds = 30

[jwt.filer_signing.read]
key = "seaweedfs"
expires_after_seconds = 30

[grpc]
ca = "/etc/seaweedfs/out/seaweedfs_CA.crt"

[grpc.volume]
cert = "/etc/seaweedfs/out/volume01.crt"
key = "/etc/seaweedfs/out/volume01.key"

[grpc.master]
cert = "/etc/seaweedfs/out/master01.crt"
key = "/etc/seaweedfs/out/master01.key"

[grpc.filer]
cert = "/etc/seaweedfs/out/filer01.crt"
key = "/etc/seaweedfs/out/filer01.key"

[grpc.client]
cert = "/etc/seaweedfs/out/client01.crt"
key = "/etc/seaweedfs/out/client01.key"

master.toml
s3 is accessible

[storage.backend]
[storage.backend.s3.default]
enabled = true
aws_access_key_id = ""         # if empty, loads from the shared credentials file (~/.aws/credentials).
aws_secret_access_key = ""     # if empty, loads from the shared credentials file (~/.aws/credentials).
region = "ap-beijing"
bucket = "test"    # an existing bucket
endpoint = "xxx.xxx.com"

Expected behavior
Screenshots
Additional context
volumeId exists collection exists
> lock
> volume.tier.upload -dest=s3 -volumeId=22 -collection=ttt
markVolumeReadonly 22 on <IP_ADDRESS>:9005 ...
error: copy dat file for volume 22 on <IP_ADDRESS>:9005 to s3: rpc error: code = Unavailable desc = error reading from server: EOF

Further trace volume logs:

panic: unaligned 64-bit atomic operation

goroutine 166 [running]:
runtime/internal/atomic.panicUnaligned()
        /usr/local/go/src/runtime/internal/atomic/unaligned.go:8 +0x24
runtime/internal/atomic.Xadd64(0x39e1ee4, 0x8000)
        /usr/local/go/src/runtime/internal/atomic/atomic_arm.s:258 +0x14
github.com/chrislusf/seaweedfs/weed/storage/backend/s3_backend.(*s3UploadProgressedReader).ReadAt(0x39e1ed8, {0x4d94000, 0x8000, 0x8000}, 0x0)
        /github/workspace/weed/storage/backend/s3_backend/s3_upload.go:86 +0x88
io.(*SectionReader).Read(0x3545fe0, {0x4d94000, 0x8000, 0x8000})
        /usr/local/go/src/io/io.go:512 +0xdc
github.com/aws/aws-sdk-go/aws/request.(*offsetReader).Read(0x3c7dc20, {0x4d94000, 0x8000, 0x8000})
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/aws/request/offset_reader.go:47 +0xf4
io.(*LimitedReader).Read(0x3755b10, {0x4d94000, 0x8000, 0x8000})
        /usr/local/go/src/io/io.go:476 +0xc4
io.copyBuffer({0xa6ba6708, 0x37ea310}, {0x217f75c, 0x3755b10}, {0x0, 0x0, 0x0})
        /usr/local/go/src/io/io.go:426 +0x1f8
io.Copy(...)
        /usr/local/go/src/io/io.go:385
io.CopyN({0xa6ba6708, 0x37ea310}, {0xa6ba66d8, 0x3c7dc20}, 0x4000000)
        /usr/local/go/src/io/io.go:361 +0x9c
github.com/aws/aws-sdk-go/aws/signer/v4.makeSha256Reader({0x2182714, 0x3c7dc20})
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/aws/signer/v4/v4.go:781 +0x204
github.com/aws/aws-sdk-go/aws/signer/v4.(*signingCtx).buildBodyDigest(0x38eecdc)
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/aws/signer/v4/v4.go:713 +0x338
github.com/aws/aws-sdk-go/aws/signer/v4.(*signingCtx).build(0x38eecdc, 0x0)
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/aws/signer/v4/v4.go:518 +0x38
github.com/aws/aws-sdk-go/aws/signer/v4.Signer.signWithBody({0x34973b0, 0x0, {0x2179c80, 0x38de478}, 0x0, 0x1, 0x1, 0x1d00ce4, 0x0}, 0x37b5980, ...)
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/aws/signer/v4/v4.go:351 +0x250
github.com/aws/aws-sdk-go/aws/signer/v4.SignSDKRequestWithCurrentTime(0x4d92000, 0x1d00ce4, {0x38de498, 0x1, 0x1})
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/aws/signer/v4/v4.go:482 +0x230
github.com/aws/aws-sdk-go/aws/signer/v4.BuildNamedHandler.func1(0x4d92000)
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/aws/signer/v4/v4.go:437 +0x3c
github.com/aws/aws-sdk-go/aws/request.(*HandlerList).Run(0x4d92104, 0x4d92000)
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/aws/request/handlers.go:267 +0x74
github.com/aws/aws-sdk-go/aws/request.(*Request).Sign(0x4d92000)
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/aws/request/request.go:445 +0x98
github.com/aws/aws-sdk-go/aws/request.(*Request).Send(0x4d92000)
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/aws/request/request.go:550 +0x118
github.com/aws/aws-sdk-go/service/s3.(*S3).UploadPartWithContext(0x38de490, {0x2188e5c, 0x34440c0}, 0x3489c20, {0x37afd28, 0x1, 0x2})
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/service/s3/api.go:11019 +0x90
github.com/aws/aws-sdk-go/service/s3/s3manager.(*multiuploader).send(0x350cc00, {{0x2183d1c, 0x3545fe0}, 0x1, 0x1cfdc24})
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/service/s3/s3manager/upload.go:718 +0x1fc
github.com/aws/aws-sdk-go/service/s3/s3manager.(*multiuploader).readChunk(0x350cc00, 0x356ffc0)
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/service/s3/s3manager/upload.go:696 +0xd8
created by github.com/aws/aws-sdk-go/service/s3/s3manager.(*multiuploader).upload
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/service/s3/s3manager/upload.go:592 +0x154

seems the volume server is not using 3.02. The trace was from 3.00 or earlier.
The specific problem, "unaligned 64-bit atomic operation", would not happen any more after the code change.

volume weed version: version 30GB 3.02 a4ca3ed linux arm

My volume server is using 3.02。
Master weed version: version 30GB 3.02 a4ca3ed1f0c2bcde1d36bb48f81dedc3e1924679 linux amd64
Volume1 weed version: version 30GB 3.02 a4ca3ed1f0c2bcde1d36bb48f81dedc3e1924679 linux arm

The line of code, /github/workspace/weed/storage/backend/s3_backend/s3_upload.go:86, does not exist in 3.02

The line of code, /github/workspace/weed/storage/backend/s3_backend/s3_upload.go:86, does not exist in 3.02

OK, thank you

seems the volume server is not using 3.02. The trace was from 3.00 or earlier.
The specific problem, "unaligned 64-bit atomic operation", would not happen any more after the code change.

volume.tier.upload is OK, but volume.tier.download still reports an error. Please help to check again.
I0511 15:11:40  7581 volume.go:364] Start Seaweed volume server 30GB 3.02 a4ca3ed1f0c2bcde1d36bb48f81dedc3e1924679 at <IP_ADDRESS>:9006
I0511 15:11:40  7581 volume_grpc_client_to_master.go:50] Volume server start with seed master nodes: [<IP_ADDRESS>:9333]
I0511 15:11:40  7581 volume_grpc_client_to_master.go:107] Heartbeat to: <IP_ADDRESS>:9333
panic: unaligned 64-bit atomic operation

goroutine 144 [running]:
runtime/internal/atomic.panicUnaligned()
        /usr/local/go/src/runtime/internal/atomic/unaligned.go:8 +0x24
runtime/internal/atomic.Xadd64(0x4d482c4, 0x2e17)
        /usr/local/go/src/runtime/internal/atomic/atomic_arm.s:258 +0x14
github.com/chrislusf/seaweedfs/weed/storage/backend/s3_backend.(*s3DownloadProgressedWriter).WriteAt(0x4d482b8, {0x4da2000, 0x2e17, 0x8000}, 0x0)
        /github/workspace/weed/storage/backend/s3_backend/s3_download.go:74 +0x88
github.com/aws/aws-sdk-go/service/s3/s3manager.(*dlchunk).Write(0x4d5a5a0, {0x4da2000, 0x2e17, 0x8000})
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/service/s3/s3manager/download.go:587 +0xc8
io.copyBuffer({0x218ad64, 0x4d5a5a0}, {0xa6a9fa60, 0x4c8c700}, {0x0, 0x0, 0x0})
        /usr/local/go/src/io/io.go:428 +0x264
io.Copy(...)
        /usr/local/go/src/io/io.go:385
github.com/aws/aws-sdk-go/service/s3/s3manager.(*downloader).tryDownloadChunk(0x3595880, 0x4d441e0, {0x218ad64, 0x4d5a5a0})
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/service/s3/s3manager/download.go:467 +0x190
github.com/aws/aws-sdk-go/service/s3/s3manager.(*downloader).downloadChunk(0x3595880, {{0x218c290, 0x4d482b8}, 0x0, 0x4000000, 0x0, {0x0, 0x0}})
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/service/s3/s3manager/download.go:428 +0x1d4
github.com/aws/aws-sdk-go/service/s3/s3manager.(*downloader).getChunk(0x3595880)
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/service/s3/s3manager/download.go:393 +0x9c
github.com/aws/aws-sdk-go/service/s3/s3manager.(*downloader).download(0x3595880)
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/service/s3/s3manager/download.go:313 +0x48
github.com/aws/aws-sdk-go/service/s3/s3manager.Downloader.DownloadWithContext({0x4000000, 0x5, {0x21af878, 0x3934558}, {0x0, 0x0, 0x0}, {0x0, 0x0}}, {0x2199e54, ...}, ...)
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/service/s3/s3manager/download.go:219 +0x2c4
github.com/aws/aws-sdk-go/service/s3/s3manager.Downloader.Download({0x4000000, 0x5, {0x21af878, 0x3934558}, {0x0, 0x0, 0x0}, {0x0, 0x0}}, {0x218c290, ...}, ...)
        /go/pkg/mod/github.com/aws/aws-sdk-go@v1.43.45/service/s3/s3manager/download.go:164 +0x70
github.com/chrislusf/seaweedfs/weed/storage/backend/s3_backend.downloadFromS3({0x21af878, 0x3934558}, {0x4bf6cc0, 0x1d}, {0x38ff4f0, 0x4}, {0x37fbb00, 0x24}, 0x4c7e060)
        /github/workspace/weed/storage/backend/s3_backend/s3_download.go:45 +0x398
github.com/chrislusf/seaweedfs/weed/storage/backend/s3_backend.(*S3BackendStorage).DownloadFile(0x37c2f80, {0x4bf6cc0, 0x1d}, {0x37fbb00, 0x24}, 0x4c7e060)
        /github/workspace/weed/storage/backend/s3_backend/s3_backend.go:103 +0x134
github.com/chrislusf/seaweedfs/weed/server.(*VolumeServer).VolumeTierMoveDatFromRemote(0x38fc7e0, 0x4c7c3c0, {0x219e3e0, 0x4c40958})
        /github/workspace/weed/server/volume_grpc_tier_download.go:61 +0x408
github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb._VolumeServer_VolumeTierMoveDatFromRemote_Handler({0x1bcdbe8, 0x38fc7e0}, {0x219d270, 0x4bfcc40})
        /github/workspace/weed/pb/volume_server_pb/volume_server_grpc.pb.go:1512 +0xdc
google.golang.org/grpc.(*Server).processStreamingRPC(0x35aac60, {0x219ff88, 0x3832700}, 0x4bee960, 0x4c66000, 0x30c2d10, 0x0)
        /go/pkg/mod/google.golang.org/grpc@v1.46.0/server.go:1542 +0xe48
google.golang.org/grpc.(*Server).handleStream(0x35aac60, {0x219ff88, 0x3832700}, 0x4bee960, 0x0)
        /go/pkg/mod/google.golang.org/grpc@v1.46.0/server.go:1624 +0xa2c
google.golang.org/grpc.(*Server).serveStreams.func1.2()
        /go/pkg/mod/google.golang.org/grpc@v1.46.0/server.go:922 +0xb0
created by google.golang.org/grpc.(*Server).serveStreams.func1
        /go/pkg/mod/google.golang.org/grpc@v1.46.0/server.go:920 +0x284

I don't know if this error is related to atomic.AddInt64(&w.written, int64(n)) in the weed\storage\backend\s3_backend\s3_download.go:74 file.
thanks

added a fix.

added a fix.

OK, thank you


RunnableWithMessageHistory does not work with ChatAnthropic - AsyncRootListenersTracer.on_chain_end error

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain rather than my code.
[X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).

Example Code
Try the following code:
from langchain_openai import OpenAIEmbeddings
from langchain_anthropic import ChatAnthropic
from langchain.agents import create_tool_calling_agent, AgentExecutor
from langchain.tools.retriever import create_retriever_tool
from langchain_core.prompts import (
    ChatPromptTemplate,
    MessagesPlaceholder,
)
from langchain.chains.query_constructor.schema import AttributeInfo
from langchain_core.runnables.history import RunnableWithMessageHistory
from langchain_community.chat_message_histories import SQLChatMessageHistory
from langchain.retrievers import SelfQueryRetriever
from langchain.schema import Document
# import asyncio
from langchain.vectorstores import Chroma

# Initialize LLM
llm = ChatAnthropic(
        model="claude-3-5-sonnet-20240620",
        max_tokens_to_sample=8192,
    )

example_doc = Document("In 2014 something very important happened")
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(documents=[example_doc], embedding=embeddings)

def create_self_query_retriever(vectorstore):
    metadata_field_info = [
        AttributeInfo(
            name="date",
            description=f"The year associated with the information.",
            type="string",
        ),
    ]

    document_content_description = "Landmark developments in AI."

    return SelfQueryRetriever.from_llm(
        llm,
        vectorstore,
        document_content_description,
        metadata_field_info,
    )

self_query_retriever = create_self_query_retriever(vectorstore)

prompt = ChatPromptTemplate.from_messages(
    [
        MessagesPlaceholder(variable_name="history"),
        ("human", "{input}"),
        MessagesPlaceholder(variable_name="agent_scratchpad"),
    ]
)

tool = create_retriever_tool(
    self_query_retriever,
    "ai_retriever",
    "Searches for information about developments in AI.",
)
tools = [tool]

# Create the agent
agent = create_tool_calling_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

# Add message history
agent_with_history_async = RunnableWithMessageHistory(
    agent_executor,
    lambda session_id: SQLChatMessageHistory(
        session_id=session_id,
        connection="sqlite+aiosqlite:///chats.db",
        async_mode=True,
    ),
    input_messages_key="input",
    history_messages_key="history",
)

async def run_agent_with_updates(agent, query, sid):
    config = {"configurable": {"session_id": sid}}

    async for event in agent.astream_events(
        {"input": query},
        config,
        version="v2",
    ):
        kind = event["event"]

        if kind == "on_chat_model_stream":
            content = event["data"]["chunk"].content
            if content:
                print(content, end="", flush=True)

await run_agent_with_updates(agent_with_history_async, "What was the main development in AI in 2014?", "123")

And then ask a question relying on context:
await run_agent_with_updates(agent_with_history_async, "Can you tell me what happened the year afterwards?", "123")

Error Message and Stack Trace (if applicable)
WARNING:langchain_core.callbacks.manager:Error in AsyncRootListenersTracer.on_chain_end callback: AttributeError("'dict' object has no attribute 'type'")

Description

I'm trying to have chat history with an Anthropic model
Nothing is getting saved to the chats.db SQLite database
There seems to be something wrong with how the ChatAnthropic class is implemented, because when I replace it with ChatOpenAI, it works fine.
See also #25223

System Info
System Information
------------------
> OS:  Linux
> OS Version:  #1 SMP PREEMPT_DYNAMIC Thu Jun 27 21:05:47 UTC 2024
> Python Version:  3.10.12 (main, Jul 29 2024, 16:56:48) [GCC 11.4.0]

Package Information
-------------------
> langchain_core: 0.3.0
> langchain: 0.3.0
> langchain_community: 0.3.0
> langsmith: 0.1.121
> langchain_anthropic: 0.2.0
> langchain_chroma: 0.1.4
> langchain_openai: 0.2.0
> langchain_text_splitters: 0.3.0
> langgraph: 0.2.22

Optional packages not installed
-------------------------------
> langserve

Other Dependencies
------------------
> aiohttp: 3.10.5
> anthropic: 0.34.2
> async-timeout: 4.0.3
> chromadb: 0.5.3
> dataclasses-json: 0.6.7
> defusedxml: 0.7.1
> fastapi: 0.114.2
> httpx: 0.27.2
> jsonpatch: 1.33
> langgraph-checkpoint: 1.0.10
> numpy: 1.26.4
> openai: 1.45.1
> orjson: 3.10.7
> packaging: 24.1
> pydantic: 2.9.1
> pydantic-settings: 2.5.2
> PyYAML: 6.0.2
> requests: 2.32.3
> SQLAlchemy: 2.0.34
> tenacity: 8.5.0
> tiktoken: 0.7.0
> typing-extensions: 4.12.2

okay I am trying to replicate this issue and see.

@selvaradov can you send the entire traceback please?

@keenborder786 Thanks! There is no further stack trace that shows up unfortunately, is there a way that I can find it apart from in the terminal / notebook output?

I was not able to replicate it but can you run the following, see if it works for you (This basically follows the old style of using memory but it might work for your use case):
from langchain_openai import OpenAIEmbeddings
from langchain_anthropic import ChatAnthropic
from langchain.agents import create_tool_calling_agent, AgentExecutor
from langchain.tools.retriever import create_retriever_tool
from langchain_core.prompts import (
    ChatPromptTemplate,
    MessagesPlaceholder,
)
from langchain.chains.query_constructor.schema import AttributeInfo
from langchain_community.chat_message_histories import SQLChatMessageHistory
from langchain.retrievers import SelfQueryRetriever
from langchain.schema import Document
import asyncio
from langchain.vectorstores import Chroma
from langchain.memory import ConversationBufferMemory
# Initialize LLM
llm = ChatAnthropic(
        model="claude-3-5-sonnet-20240620",
        max_tokens_to_sample=8192,
    )
example_doc = Document("In 2014 something very important happened")
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(documents=[example_doc], embedding=embeddings)

def create_self_query_retriever(vectorstore):
    metadata_field_info = [
        AttributeInfo(
            name="date",
            description=f"The year associated with the information.",
            type="string",
        ),
    ]

    document_content_description = "Landmark developments in AI."

    return SelfQueryRetriever.from_llm(
        llm,
        vectorstore,
        document_content_description,
        metadata_field_info,
    )

self_query_retriever = create_self_query_retriever(vectorstore)

prompt = ChatPromptTemplate.from_messages(
    [
        MessagesPlaceholder(variable_name="history"),
        ("human", "{input}"),
        MessagesPlaceholder(variable_name="agent_scratchpad"),
    ]
)

tool = create_retriever_tool(
    self_query_retriever,
    "ai_retriever",
    "Searches for information about developments in AI.",
)
tools = [tool]

# Create the agent
memory_history = SQLChatMessageHistory(
        session_id="",
        connection="sqlite:///chats.db",
        async_mode=False,
    )
memory = ConversationBufferMemory(chat_memory = memory_history,
                                  input_key = "input", memory_key = "history", return_messages = True)
agent = create_tool_calling_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True, memory=memory)

async def run_agent_with_updates(agent, query, sid):
    config = {"configurable": {"session_id": sid}}

    async for event in agent_executor.astream_events(
        {"input": query},
        config,
        version="v2",
    ):
        kind = event["event"]

        if kind == "on_chat_model_stream":
            content = event["data"]["chunk"].content
            if content:
                print(content, end="", flush=True)
async def main(session_id:str):
    agent_executor.memory.chat_memory.session_id = session_id
    await run_agent_with_updates(agent_executor, "What was the main development in AI in 2014?", "123")

asyncio.run(main('foo'))

Here is a notebook to replicate the issue precisely: https://colab.research.google.com/drive/1OIziMD6Bk9YEgVWNFycV7aGWEoWoTU8O?usp=sharing.
I'll try your solution and see if it works for my use case. One difference I can see now is that it's not using the async mode for the SQLChat history, which possibly matters

Yep, the solution you came up with is working. The main issue about the AsyncRootListenersTracer isn't fixed but this is a helpful workaround, so thanks!
Two questions about the new code:

when you're creating the memory_history, why is it that session_id gets set to '', and then manually gets modified through agent_executor.memory.chat_memory.session_id = session_id?
I tried using an async SQLChatMessageHistory with your code but this didn't work, do you know why this would be?

@selvaradov :

Session ID needs to manually updated in this case, for RunnableWithMessageHistory  it is done automatically behind the scenes (same thing is being done).
Async method for SQLChatMessageHistory are not supported when AgentExecutor is executed directly.


invalid number

Hi, I'm using your API to parse some json, hitting an error with
data like this:
"ECCENTRICITY": 8.26e-05,
the error is "invalid number at x:xxxxxx"
curious if that is an invalid number or if its a bug in the parsing?  if I'm understanding the JSON spec, I think its a valid number but really not sure.
I'm using github.com/ohler55/ojg v1.2.0
many thanks.

You are probably right. I had assumed that the exponent followed the same rules as the integer portion but looking at the spec again leading zeros are acceptable. I'll get that fixed over this weekend.

Can you try the latest version which is v1.9.3. I was not able to reproduce the issue.

seems to not parse using 1.9.3, here is some code I'm using to
get the JSON and parse it.
url := "https://api.spacexdata.com/v4/starlink"
resp, err := http.Get(url)
if err != nil {
    panic(err)
}

var body []byte
if resp.StatusCode == http.StatusOK {
    body, err = ioutil.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }

    os.Stderr.WriteString(fmt.Sprintf("read %d bytes\n", len(body)))
} else {
    panic(fmt.Errorf("invalid response code from GET %d\n", resp.StatusCode))
}

os.Stdout.WriteString(string(body))

_, parseError := oj.Parse(body)
if parseError != nil {
    panic(parseError)
}

I'll work with that and see what the issue is. Thanks.

And v1.9.4 is released with the fix!

tests out!  many thanks!  nice repo/package you are developing.


[BUG] OverlayFSWithRenders can fail abrupty on newer versions of linux

Describe the bug
Essentially, when running the tests the remount process eventually fails and the tests cannot continue. The output from mount in this case is not helpful:
/spfs: wrong fs type, bad option, bad superblock on none, missing codepage or helper program, or other error.

After some digging with strace, I found this culprit:
fsconfig(
  4,
  FSCONFIG_SET_STRING,
  "lowerdir",
  "/tmp/spfs-runtime/lower:/tmp/spk-test-spfs-reporWeqZs/repo/renders/rbottriell/NX/OLKD6FCKQUZWSXINUOQ6PHMV26WE67S36ZCCXXMWLUD2WYQ6DQ====:/tmp/spk-test-spfs-reporWeqZs/repo/renders/rbottriell/AT/2LFH4PDZSRU422OUMNPN3EVF2GT2IJLVOWCV76TTLI2DBMQGAA====:/tmp/spk"...,
  0
) = -1 EINVAL (Invalid argument)

Which lead me to this description of the same issue. Apparently, after this fsconfig logic was added, it reduced the effective limit of the overlayfs lowerdirs to 256 characters 😮
https://github.com/util-linux/util-linux/issues/2287
For now, everything is fine when using OverlayFsWithFuse. Though it seems like we will need a way to detect if fsconfig will be used and further limit the length of the args...

Sorry for not finding this bug earlier.
In case it's not obvious for others, configuring the following in spfs.toml avoids the errors for me as well:
[filesystem]
backend = "OverlayFsWithFuse"

Longer-term, do you think it'd be worth implementing the mount API calls directly so that we can follow the advice given in this commit message? https://github.com/brauner/linux/commit/aff097911207b1b941b0f1f22901b670cd3f0dc6
If we do that then we'd have to move away from the mount binary and issue the fsconfig calls directly. It's kinda unfortunate that the mount binary doesn't seem to have a way to handle this scenario so we'd have to basically implement this subset of mount ourselves. If you think that's worth it I might scratch away at it now that I know what's going on.

We should seriously consider if it makes sense to continue supporting renders. They have a fatal flaw in how hard linking shares permissions that caused us to make major compromises to the original design, and we're still constantly finding cases where the permissions of files inside renders have been changed inappropriately. Users are able to corrupt their local repo easily since they have write permissions to it. The disk usage skyrockets when multiple users share a local repo. We see local repo corruption and disk hardware errors frequently causing users to experience cryptic spfs errors when trying to launch applications.
There is a desire to still have local files but that is possible while also using fuse. We don't have a problem with excessively long mount command lines when using fuse. Fuse is the only way we were successful at using spfs on the render farm.
We're interested in using fuse everywhere once we have a mechanism to localize commonly used files or applications, for those users that want to stay isolated from network drive performance unpredictability.

That's not a bad idea. Nonetheless, I dug into this a bit and was able to improve the current behavior by switching over to the newer lowerdir+ option.
I'm not sure if this needs to be guarded behind a config option, but this PR demonstrates the minimum needed to get this working.. so at least it's not completely dire.
https://github.com/spkenv/spk/pull/1164
On the plus side, it's a pretty simple/minimal change if we don't need configuration for it.

In case it helps later, I now have a minimal proof of concept using direct Linux syscalls that does the mount operation without going through the mount command. I believe that would eliminate the PAGE_SIZE limit as well, but we can save that for later if OverlayFsWithRenders is still something worth supporting.
The lowerdir+ change alone is already an improvement so it might be worth considering as a first step. Also, FWIW, it's noticeably faster than fuse in my testing.

I have long wanted to use the mount syscall instead of the binary do I think it would be a good move if we can get it working. I can't remember what stopped me before but I think there was some cryptic error on debris that I didn't want to spend effort on at the time...

Not having to merge manifests would be a nice bonus, assuming the new append way doesn't still impose a limit. Or the limit could be more generous than before.
-------- Original Message --------
On 12/28/24 7:31 AM, Ryan Bottriell  wrote:

I have long wanted to use the mount syscall instead of the binary do I think it would be a good move if we can get it working. I can't remember what stopped me before but I think there was some cryptic error on debris that I didn't want to spend effort on at the time...
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>


Create a WCSBundle containing both astropy and galsim wcs

Remove ExpList in favor of a normal list and check each element
*** test_basic.py still runs ***
However, that's a big change, as Exposure.wcs is now an Exposure.wcs_bundle:

Exposure.wcs => Exposure.wcs_bundle.galsim
Exposure.wcs.astropy => Exposure.wcs_bundle.astropy

In the process, I saw the types are not well defined (attributes added to objects afterwards in various places). That would also need to be clarified.

I used one syntax new in Python 3.10, and another one new in Python 3.11... just related to typing, easy to change


h11._util.LocalProtocolError: Too much data for declared Content-Length - when returning dict as response, with custom status code

First check

[x] I added a very descriptive title to this issue.
[x] I used the GitHub search to find a similar issue and didn't find it.
[x] I searched the FastAPI documentation, with the integrated search.
[x] I already searched in Google "How to X in FastAPI" and didn't find any information.
[x] I already read and followed all the tutorial in the docs and didn't find an answer.
[x] I already checked if it is not related to FastAPI but to Pydantic.
[x] I already checked if it is not related to FastAPI but to Swagger UI.
[x] I already checked if it is not related to FastAPI but to ReDoc.
[x] After submitting this, I commit to one of:

Read open issues with questions until I find 2 issues where I can help someone and add a comment to help there.
I already hit the "watch" button in this repository to receive notifications and I commit to help at least 2 people that ask questions in the future.
Implement a Pull Request for a confirmed bug.

Example
Here's a self-contained, minimal, reproducible, example with my use case:

from fastapi import FastAPI
from fastapi.responses import JSONResponse
from pydantic import BaseModel
import uvicorn

app = FastAPI()

class MyModel(BaseModel):
    foo: str
    bar: int

RESPONSE = {"message": "Hello there!"}

@app.get("/get1")
def get1():
    return RESPONSE

@app.get("/get2", status_code=204)
def get2():
    return RESPONSE

@app.post("/post1")
def post1():
    return RESPONSE

@app.post("/post2")
def post2(data: MyModel):
    return RESPONSE

@app.post("/post3", status_code=204)
def post3():
    return RESPONSE

@app.post("/post4", status_code=204)
def post4(data: MyModel):
    return RESPONSE

@app.post("/post5")
def post5(data: MyModel, status_code=204):
    return JSONResponse(
        content=RESPONSE,
        status_code=204 # must define status_code here
    )

if __name__ == "__main__":
    uvicorn.run(app, port=5000)

Description
On the given code, the endpoints /get2, /post3 and /post4 fail, raising this exception:
INFO:     <IP_ADDRESS>:46692 - "POST /post4 HTTP/1.1" 204 No Content
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/uvicorn/protocols/http/h11_impl.py", line 389, in run_asgi
    result = await app(self.scope, self.receive, self.send)
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__
    return await self.app(scope, receive, send)
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/fastapi/applications.py", line 179, in __call__
    await super().__call__(scope, receive, send)
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/starlette/applications.py", line 111, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/starlette/middleware/errors.py", line 181, in __call__
    raise exc from None
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/starlette/middleware/errors.py", line 159, in __call__
    await self.app(scope, receive, _send)
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/starlette/exceptions.py", line 82, in __call__
    raise exc from None
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/starlette/exceptions.py", line 71, in __call__
    await self.app(scope, receive, sender)
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/starlette/routing.py", line 566, in __call__
    await route.handle(scope, receive, send)
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/starlette/routing.py", line 227, in handle
    await self.app(scope, receive, send)
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/starlette/routing.py", line 44, in app
    await response(scope, receive, send)
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/starlette/responses.py", line 139, in __call__
    await send({"type": "http.response.body", "body": self.body})
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/starlette/exceptions.py", line 68, in sender
    await send(message)
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/starlette/middleware/errors.py", line 156, in _send
    await send(message)
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/uvicorn/protocols/http/h11_impl.py", line 483, in send
    output = self.conn.send(event)
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/h11/_connection.py", line 469, in send
    data_list = self.send_with_data_passthrough(event)
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/h11/_connection.py", line 502, in send_with_data_passthrough
    writer(event, data_list.append)
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/h11/_writers.py", line 78, in __call__
    self.send_data(event.data, write)
  File "/home/david/.miniconda3/envs/fastapi+pydantic/lib/python3.8/site-packages/h11/_writers.py", line 98, in send_data
    raise LocalProtocolError("Too much data for declared Content-Length")
h11._util.LocalProtocolError: Too much data for declared Content-Length

It seems that this fails when returning a dict as response (without using JSONResponse), AND setting a status_code for the endpoint.
Environment

OS: Ubuntu 18.04
Python version: 3.8.5
FastAPI version: 0.61.1
Uvicorn version: 0.12.2

HTTP 204 No Content not expect to have non-empty body: https://tools.ietf.org/html/rfc7230#section-3.3.3
"Any response to a HEAD request and any response with a 1xx (Informational), 204 (No Content), or 304 (Not Modified) status code is always terminated by the first empty line after the  header fields, regardless of the header fields present in the message, and thus cannot contain a message body."
content-length forced in h11 to be equal to 0 (h11._connection.py:75) so when you return something in this endpoints there is exception raised

To make valid endpoint that returns 204 status code you should use Response object:
@app.post("/post5")
def post5(data: MyModel, status_code=HTTPStatus.NO_CONTENT):
    return Response(status_code=HTTPStatus.NO_CONTENT.value)

@SirTelemak Thanks for the clarification! Big facepalm for me haha :facepalm:

I wish we could have a clearer error message for this to help debugging.

It would really help to have two things:

An example of a standard delete router (one that returns 204) in the docs. I could find no example of a "delete" router at all.
Allow returning None, when decorated as @router.delete("/messages/{id}", status_code=204). In other words treat None as "no data" (at least when the response code suggests it, but what else would None mean?). This is how I originally wrote my delete route. For some reason that worked fine with the /docs interactive UI (with the deployment) and also (of course) my unit tests. I only realized something was wrong when users could not delete using requests or httpx to communicate with the deployment.

Changing my delete router to return fastapi.Response did fix the problem, as suggested above, so I am very grateful for this bug report.
But I am really puzzled why my old way of doing things worked at all. I would have expected the interactive docs/ UI and my unit tests to both fail.

 return Response(status_code=HTTPStatus.NO_CONTENT.value)
That's seems bad. Not simple.

That's seems bad. Not simple.
Yea, declaring custom response model seems easier, ain't thought about it. Just hardcoded status code looks little wrong for me :)


Something went wrong

Microsoft PowerToys version
0.80.1
Installation method
PowerToys auto-update
Running as admin
Yes
Area(s) with issue?
General
Steps to reproduce
Waking pc from hibernation.
PowerToys popup with "Something went wrong" and please report
✔ Expected Behavior
Clean wake up
❌ Actual Behavior
PC very slow to wake up. Lots of window problems before it settled down. Also been having some (likely driver based) BSODs recently, which might have contributed to this issue.
Text from popup below. Log file attached.
2024-05-28.txt
Other Software
No response

/dup #31226


Not working for react native 0.28

Getting:
No component found for view with name "ARTSurfaceView"
No component found for view with name "ARTShape"

How did you solve this? I encountered this issue as well


xdg-utils: add missing dependencies

Add coreutils to PATH, because the xdg scripts use other not yet provided coreutils like head.
This makes the custom 'cut' and 'sort' functions obsolete.
Remove double quotes around $out because $out contains no Bash field separators.
Replace all instances of 'which' with 'type -P'.
The previous sed command only replaced instances with a leading space.

Reproduce
firefox=$(nix-build --no-out-link '<nixpkgs>' -A firefox)
xdgUtils=$(nix-build --no-out-link '<nixpkgs>' -A xdg_utils)
env -i XDG_DATA_DIRS=$firefox/share PATH=$firefox/bin $xdgUtils/bin/xdg-mime query default x-scheme-handler/http
## Output before this patch:
# /nix/store/.../bin/xdg-mime: line 1031: head: command not found
# /nix/store/.../bin/xdg-mime: line 1031: head: command not found
# /nix/store/.../bin/xdg-mime: line 1031: head: command not found
# /nix/store/.../bin/xdg-mime: line 1031: head: command not found
# /nix/store/.../bin/xdg-mime: line 947: basename: command not found
## Output after this patch:
# firefox.desktop

/marvin opt-in
/status needs_reviewer

Result of nixpkgs-review pr 95675 run on x86_64-darwin 1

2 packages marked as broken and skipped:

far2l
fff

2 packages failed to build:

eureka-editor
manim

4 packages built:

alacritty
gitAndTools.git-open
mkvtoolnix-cli
xdg_utils

Result of nixpkgs-review pr 95675 run on x86_64-darwin 1

2 packages marked as broken and skipped:

far2l
fff

2 packages failed to build:

eureka-editor
manim

4 packages built:

alacritty
gitAndTools.git-open
mkvtoolnix-cli
xdg_utils


[3.1] [Type checker] Teach areOverrideCompatibleSimple() to look at initializers

Explanation: Swift 3.1 is crashing when a generic initializer in a subclass has the same name as a non-generic initializer in its superclass because it incorrectly decides that the subclass initializer is an override.
Scope: This will hit whenever we have a subclass with a non-generic initializer that has the same name as a superclass's generic initializer and is effectively a specialization of that initializer. It's probably not too common, but when we hit the failure, the only workaround is "rename the initializer".
SR Issue: SR-4059
Risk: Very low risk; SILGen is almost certain to crash in any such cases, and it's an isolated fix that does precisely the same thing for initializers that we'd already been doing for methods "forever".
(cherry picked from commit f74763d933e7d0710295d993c201090d5b9df17a)

@swift-ci please test

LGTM!


可以问下forbidden_roles的意义是什么吗？

我因为看到里面有authorized_roles这个字段不是可以直接判断出是否可以访问此URL了吗，想问下加一个forbidden_roles的意义是什么？

I'm sorry I'm late, it just provides a mechanism of anti selection.
For example, for some interfaces, you have 99 roles belonging to authorized_roles  and 1 role belonging to forbidden_roles (such as employees who have left), you do not have to write a large number of authorized_roles

thank you！


fix: slack message tweaks

Pull Request Test Coverage Report for Build 27
Details

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

Totals

Change from base Build 26:
0.0%

Covered Lines:
126

Relevant Lines:
133

💛  - Coveralls


RuntimeError: No suitable kernel. h_in=16 h_out=4096 dtype=Float out_dtype=Half

Your current environment
Collecting environment information...
PyTorch version: 2.3.0+cu121
Is debug build: False
CUDA used to build PyTorch: 12.1
ROCM used to build PyTorch: N/A

OS: Ubuntu 22.04.3 LTS (x86_64)
GCC version: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Clang version: Could not collect
CMake version: version 3.29.5
Libc version: glibc-2.35

Python version: 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] (64-bit runtime)
Python platform: Linux-5.4.54-1.0.0.std7c.el7.2.x86_64-x86_64-with-glibc2.35
Is CUDA available: True
CUDA runtime version: Could not collect
CUDA_MODULE_LOADING set to: LAZY
GPU models and configuration: GPU 0: NVIDIA GeForce RTX 3090
Nvidia driver version: 535.104.05
cuDNN version: Could not collect
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True

CPU:
Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Address sizes:                   46 bits physical, 48 bits virtual
Byte Order:                      Little Endian
CPU(s):                          72
On-line CPU(s) list:             0-71
Vendor ID:                       GenuineIntel
Model name:                      Intel(R) Xeon(R) Gold 6240 CPU @ 2.60GHz
CPU family:                      6
Model:                           85
Thread(s) per core:              2
Core(s) per socket:              18
Socket(s):                       2
Stepping:                        7
Frequency boost:                 enabled
CPU max MHz:                     2601.0000
CPU min MHz:                     1000.0000
BogoMIPS:                        5200.00
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cdp_l3 invpcid_single intel_ppin ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts pku ospke avx512_vnni md_clear flush_l1d arch_capabilities
Virtualization:                  VT-x
L1d cache:                       1.1 MiB (36 instances)
L1i cache:                       1.1 MiB (36 instances)
L2 cache:                        36 MiB (36 instances)
L3 cache:                        49.5 MiB (2 instances)
NUMA node(s):                    2
NUMA node0 CPU(s):               0-17,36-53
NUMA node1 CPU(s):               18-35,54-71
Vulnerability Itlb multihit:     KVM: Mitigation: Split huge pages
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Enhanced IBRS, IBPB conditional, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Mitigation; TSX disabled

Versions of relevant libraries:
[pip3] numpy==1.26.0
[pip3] nvidia-nccl-cu12==2.20.5
[pip3] torch==2.3.0
[pip3] transformers==4.41.2
[pip3] triton==2.3.0
[conda] Could not collect
ROCM Version: Could not collect
Neuron SDK Version: N/A
vLLM Version: 0.5.0.post1
vLLM Build Flags:
CUDA Archs: Not Set; ROCm: Disabled; Neuron: Disabled
GPU Topology:
GPU0	NIC0	NIC1	CPU Affinity	NUMA Affinity	GPU NUMA ID
GPU0	 X 	SYS	SYS	0-17,36-53	0		N/A
NIC0	SYS	 X 	PIX
NIC1	SYS	PIX	 X

Legend:

  X    = Self
  SYS  = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
  NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
  PHB  = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
  PXB  = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
  PIX  = Connection traversing at most a single PCIe bridge
  NV#  = Connection traversing a bonded set of # NVLinks

NIC Legend:

  NIC0: mlx5_0
  NIC1: mlx5_1

🐛 Describe the bug
when starting llama-7b with adapters, it encounter errors as follow:
[rank0]: Traceback (most recent call last):
[rank0]:   File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
[rank0]:     return _run_code(code, main_globals, None,
[rank0]:   File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
[rank0]:     exec(code, run_globals)
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/vllm/entrypoints/openai/api_server.py", line 196, in
[rank0]:     engine = AsyncLLMEngine.from_engine_args(
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/vllm/engine/async_llm_engine.py", line 398, in from_engine_args
[rank0]:     engine = cls(
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/vllm/engine/async_llm_engine.py", line 349, in init
[rank0]:     self.engine = self._init_engine(*args, **kwargs)
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/vllm/engine/async_llm_engine.py", line 473, in _init_engine
[rank0]:     return engine_class(*args, **kwargs)
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/vllm/engine/llm_engine.py", line 236, in init
[rank0]:     self._initialize_kv_caches()
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/vllm/engine/llm_engine.py", line 313, in _initialize_kv_caches
[rank0]:     self.model_executor.determine_num_available_blocks())
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/vllm/executor/gpu_executor.py", line 75, in determine_num_available_blocks
[rank0]:     return self.driver_worker.determine_num_available_blocks()
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/torch/utils/_contextlib.py", line 115, in decorate_context
[rank0]:     return func(*args, **kwargs)
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/vllm/worker/worker.py", line 162, in determine_num_available_blocks
[rank0]:     self.model_runner.profile_run()
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/torch/utils/_contextlib.py", line 115, in decorate_context
[rank0]:     return func(*args, **kwargs)
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/vllm/worker/model_runner.py", line 844, in profile_run
[rank0]:     self.execute_model(seqs, kv_caches)
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/torch/utils/_contextlib.py", line 115, in decorate_context
[rank0]:     return func(*args, **kwargs)
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/vllm/worker/model_runner.py", line 749, in execute_model
[rank0]:     hidden_states = model_executable(
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1532, in _wrapped_call_impl
[rank0]:     return self._call_impl(*args, **kwargs)
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1541, in _call_impl
[rank0]:     return forward_call(*args, **kwargs)
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/vllm/model_executor/models/llama.py", line 371, in forward
[rank0]:     hidden_states = self.model(input_ids, positions, kv_caches,
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1532, in _wrapped_call_impl
[rank0]:     return self._call_impl(*args, **kwargs)
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1541, in _call_impl
[rank0]:     return forward_call(*args, **kwargs)
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/vllm/model_executor/models/llama.py", line 284, in forward
[rank0]:     hidden_states = self.get_input_embeddings(input_ids)
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/vllm/model_executor/models/llama.py", line 271, in get_input_embeddings
[rank0]:     return self.embed_tokens(input_ids)
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1532, in _wrapped_call_impl
[rank0]:     return self._call_impl(*args, **kwargs)
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py", line 1541, in _call_impl
[rank0]:     return forward_call(*args, **kwargs)
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/vllm/lora/layers.py", line 339, in forward
[rank0]:     bgmv(full_output, full_lora_a_embeddings, self.lora_b_stacked,
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/vllm/lora/punica.py", line 51, in bgmv
[rank0]:     ops.dispatch_bgmv(y, x, w_t_all, indicies, layer_idx, scale)
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/vllm/_custom_ops.py", line 34, in wrapper
[rank0]:     return fn(*args, **kwargs)
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/vllm/_custom_ops.py", line 457, in dispatch_bgmv
[rank0]:     torch.ops._punica_C.dispatch_bgmv(y, x, w_t_all, indicies, layer_idx,
[rank0]:   File "/usr/local/lib/python3.10/dist-packages/torch/ops.py", line 854, in call
[rank0]:     return self._op(*args, **(kwargs or {}))
[rank0]: RuntimeError: No suitable kernel. h_in=16 h_out=4096 dtype=Float out_dtype=Half

@robertgshaw2-neuralmagic I had set params  --dtype float16 --lora-dtype auto or float16, but it doesn't work.

This should be resolved with the new landed Triton kernels https://github.com/vllm-project/vllm/pull/5036


[BUG] Automatically setting belongs_to fields when nil

Versions Used
Kaffy: 0.9.4
Phoenix: 1.6.15
Elixir: 1.14.2
What's actually happening?
I have a schema like this:
schema "issues" do
    ...
    belongs_to(:closed_by, User)
    ...
end

And my admin has this:
def form_fields(_) do
    [
        closed_by_id: nil,
    ]
end

This correctly renders the field as a select with all the Users as options. Until this issue is closed the closed_by field should remain nil. However, when the form loads it defaults to the first option (first User alphabetically), and without explicitly choosing a value in the select the preloaded value gets sent in the update changeset.
What should happen instead?
The field should remain nil unless explicitly changed.
Is there a way to automatically include a default nil value in the select options? It looks like I could provide a custom choices value to the field, prepending a nil value to my list of users, but that doesn't seem like a great option.
I would be happy to try to implement a fix if this is something that other people would like to see as well.

can confirm that this created a bunch of issues in my database. just plain broke some functionality of my app. took a whole day to figure out it was Kaffy.
the solution I think is to always have a nil value as first option, even for belongs_to fields. maybe unless null: false in the database itself, but the changeset would catch that anyway.
@jcelliott what workaround did you use for this? overriding each field seems like a massive pain.

@KristerV I just prepended a nil value in my admin config for the module for the fields that I absolutely needed it on. It's definitely a pain. Your solution does seem like a better option, I'll probably use that. Doesn't seem like it will cause any issues because like you said, the changeset should catch any problems with that. Also, nil seems like the right default. If someone has special logic for what the default should be in their app, that should be implemented with custom logic in their admin config.

@jcelliott @KristerV thank you both for this.
A fix has been implemented based on @KristerV's work and will be available in the next release soon.


Shouldn't the 1/8 gain be last in the gain_values arary?

To index the resolution_map array properly, which has the 1/8 gain values in the last column, the values VEML7700_GAIN_1_8 and VEML7700_GAIN_1_4 should be swapped in the gain_values array. The correct definition should be:
static const uint8_t gain_values[VEML7700_GAIN_OPTIONS_COUNT] = {
    VEML7700_GAIN_2,
    VEML7700_GAIN_1,
    VEML7700_GAIN_1_4,
    VEML7700_GAIN_1_8
};

https://github.com/kgrozdanovski/veml7700-esp-idf/blob/ffd274ab0b22e16e00a7f2ed3b9edbc5d455aeea/src/veml7700.c#L73

The datasheet clearly state 1/8 is 2 1/4 is 3.
Is the datasheet wrong?


Envoy rate limit descriptor fix

For an explanation of how to fill out the fields, please see the relevant section
in PULL_REQUESTS.md
Description: It resolves - https://github.com/envoyproxy/envoy/issues/10124 indirectly by adding an extra config flag to RequestHeaders through which it is possible for descriptors to be sent on a partial match
Risk Level: low - optional feature
Testing: unit tests added
Docs Changes: Added
Release Notes: Added
[Optional Fixes #Issue] Fixes #10124
[Optional Deprecated:]

Need to add associated documentation changes for the new configuration option. Opening PR so that @ramaraochavali can view it.

Add a version history entry https://github.com/envoyproxy/envoy/blob/master/docs/root/version_history/current.rst in alpha order

/lgtm api

LGTM. @mattklein123  @junr03 Can you PTAL?

@rohan07 please never force push. It makes reviews much more difficult. Thanks!

Thanks please merge master and force push to fix DCO.
/wait

Apologies @mattklein123 - My previous force push was also because of the DCO. I was experiencing some performance issues with my old machine so had to get a new one.

Hi @mattklein123 - Apologies again, it wasn't allowing me to sign off on my previous commit using my new machine for some reason, it worked from my previous machine. Thanks for your help!

Hi @mattklein123 - I am seeing some of the other PR's which are open facing the same issue with circleci/coverage failing (with 96.7%, lower than the 97% threshold). I believe during my earlier commits, the particular test was passing. Can you please advise the future steps I should take?

/retest


Docker remote API: support older versions

Dockercraft currently talks only the latest version of the Docker remote API (docker 1.9), so it doesn't work when using a docker daemon older than 1.9.
from discussion in PR #14

Please note in the Readme, that its currently for 1.9 only. I was on an older version and had no idea why my interactions with the containers in minecraft did not reach docker.

Yes, we will add a note in the Readme, but a clear error in the logs would be a good thing as well.


Fixed issue where flash mode was not being passed into capture settin…

…gs when capturing photos

Flash mode was not being passed into capture settings when capturing photos with device in photo mode, so flash was always disabled. This fixes the issue.

thanks @mhdemiroz ✌


Chef-13:  raise on properties redefining inherited methods

flips the deprecation warning over to a raise

@chef/client-core should be ready to review


Added ability to set 'disabled: true' for dropdown items as well as...

…disabledItemColor, selectedItemBackgroundColor, and disabledItemBackgroundColor props.
This closes #79.
You can now do something like this:
import React, { Component } from 'react';
import { Dropdown } from 'react-native-material-dropdown';

class Example extends Component {
  render() {
    let data = [{
      label: 'Banana 🍌'
      value: 'Banana'
    }, {
      value: 'Mango',
      disabled: true
    }, {
      label: 'Pear 🍐'
      value: 'Pear'
    }];

    return (
      <Dropdown
        label='Favorite Fruit'
        data={data}
        itemColor='#fff'
        selectedItemColor='#fff'
        disabledItemColor='rgba(0, 0, 0, 0.75)'
        selectedItemBackgroundColor='rgba(0, 0, 0, 0.25)'
        disabledItemBackgroundColor='rgba(255, 255, 255, 0.25)'
      />
    );
  }
}

Thanks for PR!
Starting from 0.9.0 release you can use propsExtractor to adjust individual items and pass props directly to Button component. That is a more generic way that creating dedicated props.

@n4kz Please see my comment on #79 as to why using propsExtractor does not provide the desired customizability.


Fixed the links outside card on mobile

issue no #5
Fixed card Descriptions Links on every device.

Ah you have edited off the main branch which is now significantly out of date given it's the deployment branch. Would you be able to move these changes over to the development branch?

@CanopusFalling okay so are these changes to be pushed in the development branch?


Make requested text changes

Context
Text change in Trello card https://trello.com/c/bZQcyiHL
Changes proposed in this pull request
Guidance to review
To keep the structure of the Markdown template unchanged, the heading levels are untouched. This means the headings jump immediately from h2 to h4 for the outlined options. This might be how we want it to look but is semantically incorrect.
The dashes are just plain dashes but semantically ought to be em-dashes (but our old UX has a preference for the semantically incorrect en-dashes).
Some of the hyperlinks have been removed as per the document. Someone might want to check that that's the desired behaviour.
https://docs.google.com/document/d/1mkzDbXGK77bTl3ZErSH7R7lSfgZYrBnsNgnQqUfyzCw/edit

 Redraft GOV.UK content for Device distribution and ownership.


cf-mgmt export-config does not export metadata for orgs/spaces

Describe the bug
I have orgs and spaces that have metadata for labels/annotations, but cf-mgmt export-config does not retrieve those values
To Reproduce
Steps to reproduce the behavior:

Create Org

Add labels to it

run cf-mgmt export-config and the orgConfig.yml file shows null value for metadata field

Expected behavior
metadata field should be updated to reflect the org metadata
Screenshots

Desktop (please complete the following information):

OS: macos
Browser chrome
Version cf-mgmt version: Version: [1.0.85]

Delivered in https://github.com/vmware-tanzu-labs/cf-mgmt/releases/tag/v1.0.87


Change key bindings from mod+1 to alt+mod+1

The bindings conflict with https://github.com/pengx17/logseq-plugin-tabs , which correctly uses mod+1 for selecting tabs just as in Chrome web browser.
alt+mod+1 is more commonly used for setting the heading level. See https://support.google.com/docs/answer/179738?hl=en&co=GENIE.Platform%3DDesktop#zippy=%2Cmac-shortcuts and search for "Apply heading style" to see.

Agree this too,perhaps how can i change the shortcuts to mod+opt+1/2/3... myself by edit config file?

I added a settings file now, please upgrade and test.

Works. Thanks!


Validation article updates

Fixes #10351
Fixes #9317
Fixes #10957
Fixes #7456
Fixes #6347
Fixes #10546
Internal review URL

Hope you do batch commits on most of my suggestions.

I could have, but none of your comments came through using the suggestion feature that lets you commit directly.


修复在Rails5下的冲突问题。不再重写blank?方法，而是改用新方法j_blank

试了一下这样子的确解决了冲突问题。 我觉得还是尽量不要monkey patch比较好

It's not monkey-patch,It's  Refinement. It has namespace.

Sorry for my mistake. However it affected other gems.
——Jason

在 2016年7月18日，13:18，老東&不知火<EMAIL_ADDRESS>写道：
It's not monkey-patch,It's Refinement. It has namespace.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Yep, It is my mistake. I will fix it as soon as possibe

Thank you very much.

So, thank you for your PR, but I will  not merge it


SSH/Telnet multitab

Thanks for the greate work, can you kindly implement telnet/ssh multitab instead of opening new window if you access new devices, if already addressed, on linux, how can i accomplish it.
Thanks in-advance.

reviewing this method,  using konsole and want to open new tab, can you please advise, if bolded is right? still defaults to terminal when i access new devices. can i comment out others?
def _terminal_emulator_cmd(self):
if self.override_terminal:
return self.override_terminal.split()
elif self._is_command('x-terminal-emulator'):
return ['x-terminal-emulator', '-e']
elif self._current_desktop('cinnamon', 'gnome', 'unity'):
return ['gnome-terminal', '-e']
elif self._current_desktop('kde'):
return ['konsole', '--tab', '-e']
elif self._current_desktop('lxde', 'lxqt'):
return ['lxterminal', '-e']
elif self._current_desktop('mate'):
return ['mate-terminal', '-e']
elif self._current_desktop('pantheon'):
return ['pantheon-terminal', '-e']
elif self._current_desktop('xfce'):
return ['xfce4-terminal', '-e']
elif self._is_command('urxvt'):
return ['urxvt', '-e']
else:
return ['xterm', '-e']

This https://github.com/SmartFinn/eve-ng-integration/issues/36#issuecomment-696834972 should help you.

Thank you very much, you a star, konsole working with multitab
one last request, want to use device name on tabs, tried this and not working, can you kindly advise:
konsole --new-tab -p tabtitle="%d" -e "telnet %h %p"
env OVERRIDE_TERMINAL_CMD="konsole --new-tab -e" eve-ng-integration %u
not sure how to combine into one statement, thanks

If I remember correctly in URI no device name, so no way to provide this.

Hello @SmartFinn, I have followed the installation steps and cloned your repo. Then I follow the steps in #36 comment and made the appropriate changes in the file ~/.local/share/applications/eve-ng-integration.desktop to include konsole with multi-tabs. However when I login to eve start a router and click on it to get console access, it opens konsole of my host machine in my home directory. It does not show the router console. I don't know what to do, some help will be greatly appreciated. Thank you.
I am running:  Linux 5.11.0-40-generic #44~20.04.2-Ubuntu on eve-community (vmware workstation).


request's ip address was changed

The app send a request. The ip address is http:xxxxxx,and our server do not use redirect.But "connection:  willSendRequest: redirectResponse:" was called.Then i see that the ip address from connection is not equal to request's.What amazing is that most iPhone is ok, only some iPhone has this  event.I do not know what happened, i need help.

For general help, please ask on StackOverflow.


Update API specifications for k-NN 2.17 changes

Description
This PR updates the API specifications to be consistent with changes released for k-NN in OpenSearch 2.17.
These changes include adding rescore and oversampling factor to a k-NN query, and adding mode and compression options during index creation and training models.
Issues Resolved
https://github.com/opensearch-project/opensearch-api-specification/issues/583
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@dblock Do I need to change the sha ref in the workflow file to get 3.0 to pass?

Yes, because that's main and your additions exist in a newer build.
If you have a moment, also check whether the build you're getting fixes https://github.com/opensearch-project/opensearch-api-specification/blob/4f8be9eb9a62ea86a3a864f732c6fc126e4554a6/tests/default/asynchronous_search/stats.yaml#L9 or similar checks that were disabled because main wasn't including a plugin.

Sure, I'll take a look

Looks like the asynchronous search tests are still failing on 3.0, will remove the version checks again


Copy Code Button on Dynamic Groups Filter

As ...
Ozzie - Operator
I want ...
to have a copy code button on the filter that is displayed on the upper right of the Dynamic Groups detail page. This is helpful for grabbing the query. (Low priority, maybe an option for someone new to contribute)
So that ...
I can easily get my filter in JSON
I know this is done when...
When there is a copy code button for the filter
Optional - Feature groups this request pertains to.

[ ] Automation
[ ] Circuits
[ ] DCIM
[ ] IPAM
[ ] Misc (including Data Sources)
[ ] Organization
[ ] Apps (and other Extensibility)
[ ] Security (Secrets, etc)
[ ] Image Management
[X] UI/UX
[X] Documentation
[ ] Other (not directly a platform feature)

Database Changes
No response
External Dependencies
No response

Should be easy to implement but I am curious about the use case as well.


Bump mypy to v1.1.1

Proposed change

Bump mypy to v1.1.1
Type of change

[ ] New country holidays support (thank you!)
[ ] Supported country holidays update (calendar discrepancy fix, localization)
[ ] Existing code/test/process improvement (best practice, cleanup, refactoring, optimization)
[x] Dependency upgrade (version update)
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] Breaking change (a code change causing existing functionality to break)
[ ] New feature (new python-holidays functionality in general)

Checklist

[x] I've followed the contributing guidelines
[x] This PR is filed against beta branch of the repository
[x] This PR doesn't contain any merge conflicts and has clean commit history
[x] The code style looks good (make pre-commit)
[x] I've added tests to verify that the new code works and all tests pass locally (make test, make tox)
[x] The related documentation has been added/updated (check off the box for free if no updates is required)

Coverage: 100.0%. Remained the same when pulling 229bbfa629e7aabae75e23dde888d3fba191e270 on arkid15r:upgrade-pre-commit into d34e0b3eee6720ca1be64066bec7159c5624e482 on dr-prodigy:beta.


I did update to Outlook for Microsoft 365 MSO Version 2101 (16.0.13628.20274) 64bit (current channel). WebView2 is not used to open Add-in.

I did update to Microsoft 365 MSO Version 2101 (16.0.13628.20274) 64bit (current channel). WebView2 is not used by the host (Outlook) to open Add-in. WebView (legacy Edge) is used.
According to documentation (https://docs.microsoft.com/en-us/office/dev/add-ins/concepts/browsers-used-by-office-web-add-ins) WebView2  should be used.
When will WebView2 be enabled?

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

ID: 00c430f1-bbf5-53b8-a225-4fbe8fc39c3b
Version Independent ID: 0a069a0d-4d35-71ee-53af-8c55fe8548a0
Content: Browsers used by Office Add-ins - Office Add-ins
Content Source: docs/concepts/browsers-used-by-office-web-add-ins.md
Product: non-product-specific
Technology: add-ins
GitHub Login: @o365devx
Microsoft Alias: o365devx

Bug 1931069https://o365exchange.visualstudio.com/959adb23-f323-4d52-8203-ff34e5cbeefa/_workitems/edit/1931069: [OfficeDev/office-js-docs-pr] I did update to Outlook for Microsoft 365 MSO Version 2101 (16.0.13628.20274) 64bit (current channel). WebView2 is not used to open Add-in. (#2464)
Created using VSTS Outlook add-inhttps://www.owiki.ms/wiki/VSTS_Add-In_for_Outlook
From: Rick Kirkham<EMAIL_ADDRESS>Reply to: OfficeDev/office-js-docs-pr<EMAIL_ADDRESS>Date: Saturday, 30 January 2021 at 8:54 AM
To: OfficeDev/office-js-docs-pr<EMAIL_ADDRESS>Cc: Outlook Extensibility Oncall<EMAIL_ADDRESS>Assign<EMAIL_ADDRESS>Subject: Re: [OfficeDev/office-js-docs-pr] I did update to Outlook for Microsoft 365 MSO Version 2101 (16.0.13628.20274) 64bit (current channel). WebView2 is not used to open Add-in. (#2464)
Assigned #2464https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FOfficeDev%2Foffice-js-docs-pr%2Fissues%2F2464&data=04|01|Sachin.Mishra%40microsoft.com|cc05672c5d9c47078fd808d8c4ce88c4|72f988bf86f141af91ab2d7cd011db47|0|0|637475738682274207|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=KwWR%2FO287sWONJBIDMHxcuNi82Zgssm6ZdBJQQmifOo%3D&reserved=0 to @exextochttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fexextoc&data=04|01|Sachin.Mishra%40microsoft.com|cc05672c5d9c47078fd808d8c4ce88c4|72f988bf86f141af91ab2d7cd011db47|0|0|637475738682284166|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=j3BNjkKGZ4H3XVykK%2BpGl8YmTWXs9gjWWZI%2FtbhvHEg%3D&reserved=0.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FOfficeDev%2Foffice-js-docs-pr%2Fissues%2F2464%23event-4268719121&data=04|01|Sachin.Mishra%40microsoft.com|cc05672c5d9c47078fd808d8c4ce88c4|72f988bf86f141af91ab2d7cd011db47|0|0|637475738682284166|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=T7DcPhMUAekf1Up8kFU2ejHRUpzYBzzSlXtBCb6k3Sc%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAGZ2GIO4BQYLTDAL32KGBFTS4N3WJANCNFSM4WZ2YHEA&data=04|01|Sachin.Mishra%40microsoft.com|cc05672c5d9c47078fd808d8c4ce88c4|72f988bf86f141af91ab2d7cd011db47|0|0|637475738682284166|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=kmXoklwRB%2B0p5%2FnG82QkeSAd35XRYAGS3nRhWZsQawI%3D&reserved=0.

Instructions for getting onto WebView2 can be found here.
One step you might be missing is installing the Edge WebView2 runtime (step 3).

seems similar to my issue #2521

@neville-jones thanks for linking. Yes, this is the same issue as https://github.com/OfficeDev/office-js/issues/1670


MoleculeACE datasets

https://github.com/kjappelbaum/awesome-chemistry-datasets
https://zitniklab-harvard.slack.com/archives/C01D245KML3/p1721950105908099?thread_ts=1721937746.458069&cid=C01D245KML3

added as part of mpc task repo @shenwanxiang linked above


Adding link to GloBI.

Adding link to GloBI. cc @jhpoelen

Great! A very valuable data to record species interactions. Thanks


Add cue at current time for subtitles

Adds a hotkey (Shift+Alt+e) to the subtitle editor. It allows the user to add a new subtitle segment, based on the current time of the video.
Resolves #1313.

Thanks for that. There is one small issue, every time I use a keyboard shortcut to add a subtitle segment, the special character corresponding to the shortcut is added to the new segment. I would expect it to just add a new empty segment.
This is not only true for Shift+Alt+e but also for Shift+Alt+q and Shift+Alt+a.

@snoesberger I could not reproduce it. Is it still an issue for you?

@snoesberger I could not reproduce it. Is it still an issue for you?

Yes, it is still a problem, I just tried again. It depends on the keyboard language you are using. If you're using a standard German keyboard layout (de), you won't see the problem. With a Swiss-German (de-ch) or US layout I'm able to reproduce the problem in different browsers.


Can Redis/Memcached class be used to Database cache?

After reading https://www.codeigniter.com/userguide3/database/caching.html
I've tried to :
$db['default'] = [
   ...
    'cache_on' => TRUE,
    'cachedir' => 'tcp://<IP_ADDRESS>:6379?database=50',
    ...
];

No exception produced, but database 50 remains empty.

Base on my CI experience, CI caching works only with files and stores on the disk. You've to extend core CI_DB_Cache class to work with redis or memcached which suits your project.
You should better ask on forum instead of creating issue here. This is only for bug tracking.


feat: Added dark mode to site

Description
Added Dark mode feature to the site
Linked Issues
Fixes : #25
Video
https://github.com/undistro/cel-playground/assets/109150688/01f07b93-5b6d-455c-bea3-b91eb1738759
How has this been tested?

Click on the theme toggle button and change the mode

Checklist

[x] I have labeled this PR with the relevant Type labels
[ ] I have documented my code (if applicable)
[ ] My changes are covered by tests

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thank you for opening the PR, @pateldivyesh1323!
I appreciate your contribution.
Could you please consider implementing the persistence of the user's chosen theme?
Currently, it reverts to the default light theme upon page refresh, and having theme persistence would greatly enhance the user experience. One approach to achieve this could be using localStorage.
Sorry for not including this in the issue description.
We will also provide you with the color palette for the dark theme next Monday (October 9th), as soon as our Designer returns.

Hi @pateldivyesh1323,
We've prepared a Figma design with precise color details and improvements for our dark mode. You can access it here: https://www.figma.com/file/pasjtGKiZws9pkiVK9Gzp3/Playground?type=design&node-id=0-1&mode=design
Here are the key changes:

Adjusted the shade of purple.
For dark mode, textareas should use the Tomorrow Night Ace theme.
The output textarea should be a disabled Ace editor to ensure we can use the Tomorrow Night theme in text mode.
Please ensure that the user's chosen theme (dark or light) persists, as discussed in the previous comment.

You can interact with the Figma prototype here: https://www.figma.com/proto/pasjtGKiZws9pkiVK9Gzp3/Playground?type=design&node-id=29-836&scaling=min-zoom&page-id=0%3A1&starting-point-node-id=29%3A836&hide-ui=1
Could you please implement these changes?
Thank you for your patience.

Hi @marcelloale
Thank you for this PR! I appreciate your contribution.
Could you please include the other fields in the input data of the example?
I see that you've included only response.code and xds.cluster_name, but there are several other fields documented here.

@matheusfm I am confused with

The Output text area, as it currently does not use ace-editor, and implementing ace-editor on it breaks
some things.
Also I want to ask, should text color of input text areas should be changed as shown in figma?

@pateldivyesh1323
If using ace-editor on the output textarea doesn't work, you can try setting the same background color to match the 'tomorrow night' theme.

@matheusfm ok, I will do that.

@matheusfm Updated.

Awesome, @pateldivyesh1323!
Thank you very much for your contribution and collaboration.
We really appreciate it.

Impressive, guys! @matheusfm @pateldivyesh1323


PyQt5 version error

I just noticed this when importing PyQt5.
  File "/usr/local/lib/python2.7/site-packages/Qt.py", line 127, in <module>
    _init()
  File "/usr/local/lib/python2.7/site-packages/Qt.py", line 110, in _init
    sys.modules["Qt"] = available[preferred]()
  File "/usr/local/lib/python2.7/site-packages/Qt.py", line 35, in _pyqt5
    PyQt5.__binding_version__ = PyQt5.__version__
AttributeError: 'module' object has no attribute '__version__'

I'm not getting that.
$ python -c "import Qt;print Qt.__binding__"
PyQt5

$ python -c "import Qt;print Qt.__version__"
0.2.0

Hm. Is it possible that my version of PyQt5 does not come with the __version__ attribute?
❯ python
Python 2.7.11 (default, Jan 22 2016, 08:29:18)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import PyQt5
>>> PyQt5.__version__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute '__version__'
>>> from PyQt5.Qt import PYQT_VERSION_STR
>>> print PYQT_VERSION_STR
5.5.1

Ah, I see what's going on. I'm using python-qt5 and it's got those attributes.
I'll fix this.

i got similar error when using pyinstaller
'''
File "/home/chandragupta/anaconda3/envs/pytorch/lib/python3.8/site-packages/PyInstaller/compat.py", line 632, in importlib_load_source
return mod_loader.load_module()
File "", line 522, in _check_name_wrapper
File "", line 1027, in load_module
File "", line 852, in load_module
File "", line 265, in _load_module_shim
File "", line 702, in _load
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/home/chandragupta/anaconda3/envs/pytorch/lib/python3.8/site-packages/PyInstaller/hooks/hook-PyQt5.py", line 11, in
from PyInstaller.utils.hooks.qt import pyqt5_library_info,
File "/home/chandragupta/anaconda3/envs/pytorch/lib/python3.8/site-packages/PyInstaller/utils/hooks/qt.py", line 162, in
pyqt5_library_info = QtLibraryInfo('PyQt5')
File "/home/chandragupta/anaconda3/envs/pytorch/lib/python3.8/site-packages/PyInstaller/utils/hooks/qt.py", line 54, in init
if hooks.is_module_satisfies("PyQt5 >= 5.15.4"):
File "/home/chandragupta/anaconda3/envs/pytorch/lib/python3.8/site-packages/PyInstaller/utils/hooks/init.py", line 502, in is_module_satisfies
version = get_module_attribute(module_name, version_attr)
File "/home/chandragupta/anaconda3/envs/pytorch/lib/python3.8/site-packages/PyInstaller/utils/hooks/init.py", line 352, in get_module_attribute
raise AttributeError(
AttributeError: Module 'PyQt5' has no attribute 'version'
'''

@chandragupta0001 I have the same error.  When using the pyinstaller.
resulted in the AttributeError: Module 'PyQt5' has no attribute 'version'
By installing pip install python-qt5. I did not have this any more in the terminal python:
import PyQt5 PyQt5.__version__
But the error still existed when using the pyinstaller. Have you found any solution?

I get the same error as well, also when using pyinstaller.

@studentWUR @chandragupta0001
I am also having the issue using pyinstaller via auto-py-to-exe v2.9.0 but not on a computer running v2.7.11. I haven't yet been able to find a fix. Let me know if either of you find a solution.

@chandragupta0001 I have the same error. When using the pyinstaller.
resulted in the AttributeError: Module 'PyQt5' has no attribute 'version'
By installing pip install python-qt5. I did not have this any more in the terminal python:
import PyQt5 PyQt5.__version__
But the error still existed when using the pyinstaller. Have you found any solution?

Hi all,
I had the same issue with pyinstaller.
Once I saw this line:
File "/home/chandragupta/anaconda3/envs/pytorch/lib/python3.8/site-packages/PyInstaller/utils/hooks/qt.py", line 54, in init if hooks.is_module_satisfies("PyQt5 >= 5.15.4"):
I was able to proceed with pyinstaller by downgrading PyQt5 to version 5.15.3 with:
pip install --user PyQt5==5.15.3

@studentWUR @chandragupta0001
I am also having the issue using pyinstaller via auto-py-to-exe v2.9.0 but not on a computer running v2.7.11. I haven't yet been able to find a fix. Let me know if either of you find a solution.

Hi @Damol22,
I was having the very same issue this today while trying to package my code with Pyinstaller on a different machine to what i normally use. I checked the versions of several key packages that created this conflict. I downgraded the relevant packages to how I had them on my main machine and it solved the problem. It worked again for me with the following pkg versions and Python upgrade (I use conda and for some reason, the default python for new environments is v3.7.10: for me. So I created a new conda env with python 3.8.8 and installed the following packages and that fixed it for me.
pyqt=5.9.2
qt=5.9.7
pyinstaller=4.3
pyinstaller-hooks-contrib=2020.11
numpy=1.20.1
prompt-toolkit=3.0.17

pyqt5=5.9.2

I had the same issue with pyinstaller.
Fixed it easy with: pip install pyqt5
I think it was just a bug in the version i've had before.
Wished it would be always that easy.

Hello, I have the same problem.
Using "pip install pyqt5" did not help for me.
I also have the latest version.

Could this be an issue with pyinstaller? Since it bundles pyqt5 with your application, I fail to see why Qt.py is necessary? Why not call on pyqt5 directly? I’ll reopen this and haven’t taken a closer look yet, but from a glance it appears both unrelated to Qt.py and avoidable by simply not using it.

Hi all,
I fixed this issue on my system by making a new anaconda env
Python 3.8.8
With the following pkgs
pyqt=5.9.2
qt=5.9.7
pyinstaller=4.3
pyinstaller-hooks-contrib=2020.11
numpy=1.20.1
prompt-toolkit=3.0.17

Hi all,
I fixed this issue on my system by making a new anaconda env
Python 3.8.8
With the following pkgs
pyqt=5.9.2
qt=5.9.7
pyinstaller=4.3
pyinstaller-hooks-contrib=2020.11
numpy=1.20.1
prompt-toolkit=3.0.17

I have tried to create a new anaconda environment with the packages you listed, but that did not work either. Still got the same problem.
Additionally, I tried with an older version of pyinstaller that anaconda uses by default (3.6) which managed to create a .exe file, however, when run, it closed itself straight away. The same happens with pyinstaller version 4.3 as you use.
To take a closer look, i ran the .exe file through a terminal and saw this error message: "ValueError: source code string cannot contain null bytes".
Not sure how to proceed.
This is the traceback:
Traceback (most recent call last):
  File "wind_to_nh3_jupyter.py", line 7, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
  File "matplotlib\pyplot.py", line 43, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
  File "matplotlib\figure.py", line 18, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
  File "matplotlib\projections\__init__.py", line 4, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
ValueError: source code string cannot contain null bytes
[26756] Failed to execute script wind_to_nh3_jupyter

Seems like pyinstaller is having trouble finding your modules. You could check if pyinstaller works properly on a simple demo app to rule out your installation problems.
If that works try putting this line at the top of your main.py file you are trying to run pyinstaller on..
import os
import sys

if getattr(sys, 'frozen, False) and hasattr(sys, '_MEIPASS'):
    os.chdir(sys._MEIPASS)

Ok, this doesn't appear related to Qt.py and is unrelated to the original issue.
Please confirm this issue only happens with Qt.py, in a demo app such as @Srinivas-Ganti suggested and open a new issue if it cannot be reproduced without Qt.py.


chore(client): retry api version discovery for at least 30 seconds

During debugging with joschisan, we've spotted a case where in a test the Federation was not yet fully up (peer api servers were down), yet the test Client was already attempting to join with a pre-prepared config.
Normally in this case fetching the config would fail, but that was passed straight from the server fixture, so api discovery call was actually the first call. It queried all peers, all were down, the request logic would re-attempt connection but only once, which instantly failed as well, failing the whole initial api version discovery and disabling all client modules.
While in this case it seems like a problem of test failing to setup Federation before attempting to run client code, it makes me think that in real life there might be cases where the client is joining new Federation, gets a config, and then e.g. switches from wifi to GSM, etc. and has a brief period of being offline.
Again - this is only ever a problem on a first time client is joining. But to prevent such a hiccups, in this change, I'm making it so the client will attempt at least for a certain period to discover the version before giving it up, to lower the chances of such an unfortunate UX.

Will this fix  #5286?

Will this fix https://github.com/fedimint/fedimint/issues/5286?

I believe something else already fixed it in @joschisan's PR. But if it had been there, it would probably also prevented it.

@dpc I did not fix this in general, just prevented this by awaiting the api  to come online.

@dpc I did not fix this in general, just prevented this by awaiting the api to come online.

Yeah. Waiting for api to come online was the reason of the problem. The client can't join federation if it's not online yet.


When would anyOf() be supported with optimistic updates?

Optimistic updates might be quite helpful in our scenarios, since  a great amount of records might be loaded within a single liveQuery(), which might be up to hundreds of thousands, and even up to millions. However, optimistic updates do not support anyOf(), as well as some other queries but anyOf() is widely used in our codes.
So, would you please share the schedule on when more queries will be supported?

Hi Zhao,
I'm glad you had use for the optimistic updates! Optimistic updates needed some time to become stable before I would extend it to more queries. I now consider it stable after having gone through a bunch of patch-releases before finally working well, so it would be perfect time to extend it now, but focus of all development is currently to get Dexie Cloud into official production before end of summer (at last). Plan is to focus on optimistic updates again after that and also continue on some other parts of the 4.0 roadmap in parallell with further Dexie Cloud development.
Until anyOf() supports optimistic updates, it can be implemented using a function that uses Promise.all() with several equal queries (which might be an optimization in itself, and probably the solution that will go into dexie):
import { type Table from 'dexie' };

export async function anyOf<T,K,I>(table: Table<T,K,I>, index: string, keys: any[]): Promise<T[]> {
  const resultArrays = await Promise.all(
    keys.map(key => table.where(index).equals(key).toArray())
  );
  return resultArrays.flat(1);
}

Got it, and your solution sounds working for our scenarios. Thanks!

Well, some other questions,

with the anyOf() implemented above, some records might meet more than one equal queries at the same time. So, will the records be loaded and instantiated for multiple times, or for only once with the help of optimistic updates?
if unsubscribed the observable returned by liveQuery(), and launching another liveQuery() after that, will the second liveQuery() benefit from the cache initialized by the first one? I mean, will the cached records be released once after the corresponding liveQuery() has been unsubscribed and finished?

Good questions and yes, as you've noticed, there's a difference in the results if the keys passed to anyOf have duplicates. There's also a difference in sorting. Sorting can be fixed by sorting (array.sort()) and eliminating duplicates keys (for example passing keys into a set and back) before Promise.all(). If keys are non-strings or non-numbers (arrays, binary or Dates), sorting has to be made using Dexie's cmp() function and set won't work. You could then import { RangeSet } from dexie and use addKeys() into it and extracting them to array again using [...rangeSet].map(treeNode => treeNode.from).

with the anyOf() implemented above, some records might meet more than one equal queries at the same time. So, will the records be loaded and instantiated for multiple times, or for only once with the help of cache and optimistic updates?

If the liveQuery performs a number of queries within it, as in this case using Promise.all(), each one of them will utilize the cache and respond immediately if the query has been queried before.

if unsubscribed the observable returned by liveQuery(), and launching another liveQuery() after that, will the second liveQuery() benefit from the cache initialized by the first one? I mean, will the cached records be released once after the corresponding liveQuery() has been unsubscribed and finished?

The cache is kept alive as long as there are subscriptions going on - be it one or multiple. When the last subscription of a query is released, there's a grace period of 3000 milliseconds before the cache is cleared out. If any more subscription is started against the same query during that grace period, it will be kept alive, but if not, it will be released from the cache.

So, though duplicates will be returned, they will only be loaded once. And the returned are the same instance from the cached, no matter they are loaded within the same query or from different queries. Is this right?

So, though duplicates will be returned, they will only be loaded once. And the returned are the same instance from the cached, no matter they are loaded within the same query or from different queries. Is this right?

True if using ’{ cache: 'immutable' }’ in options to Dexie constructor. Otherwise if using default ’{ cache: 'cloned' }’, also true except that every returned result from cache with be a cloned unique instance, but loaded directly from cache.

Quite clear, thanks so much! Nice feature:)


Add ids for tracking and move html to separate file

This change is

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/ece1821434ad9df5096a6355411a2b3487a2653a/


[flagd-web-provider] ERROR: Cannot find module './schema_pb.js' or its corresponding type declarations.

Hello everyone! I have a problem with typescript type.
I try user npm library @openfeature/flagd-web-provider in angular application but when I am importing
import {FlagdWebProvider} from '@openfeature/flagd-web-provider';
I have this error:
Error: node_modules/@openfeature/flagd-web-provider/src/proto/ts/schema/v1/schema_connect.d.ts:1:315
error TS2307: Cannot find module './schema_pb.js' or its corresponding type declarations.

import { EventStreamRequest, EventStreamResponse, ResolveAllRequest, ResolveAllResponse, ResolveBooleanRequest, ResolveBooleanResponse, ResolveFloatRequest, ResolveFloatResponse, ResolveIntRequest, ResolveIntResponse, ResolveObjectRequest, ResolveObjectResponse, ResolveStringRequest, ResolveStringResponse } from "./schema_pb.js";

Hey @doocaat . I'm looking into this. I can't fully reproduce it, but I think I have some ideas about what's happening.
As a temporary workaround, I'm 99% sure if you add skipLibCheck to your tsConfig and bypass this with relatively low risk. That's not really a proper fix though, so I'll keep investigating.

Hey @doocaat ... I've released 0.4.1 which I think should fix this. Please confirm.


expose the token in the application cache

One import something is that, storing the user info in the localStorage will leak the user into out, you can get user info easily by web browser debug tool.
Any suggestion for this problem?

@GitHubsteven This is just an example, normally you would store just your auth token and maybe some basic user information (ex. name), but no sensitive information is saved in local (no password, no email etc) so there is no problem. You can search how jwt tokens work to get basic idea :)


feat(random): add random level command

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


v4: Add example for ArchiveFS library usage

Please include lines https://github.com/mholt/archiver/blob/10c5080fa78f78d10e28abdf11fa6d4abb7f999f/fs.go#L40 - https://github.com/mholt/archiver/blob/10c5080fa78f78d10e28abdf11fa6d4abb7f999f/fs.go#L53 as an example for library use (handle archive as an io.FS) - it took me an hour to find out how to do it, and it is essentially VERY easy, but this information was hard to find.

Good question, so you're basically looking for an example of how to use Identify() -- isn't that basically what is already here? https://github.com/mholt/archiver#identifying-formats

Ok, I revise my thinking, and now I don't see an easy way to create an ArchiveFS for an in-memory io.ReadSeeker.
Which is strange, as ArchiveFS have everything, just needs a File member, and use that if not empty, and work as now if it is.
It has a lot of nice logic, that would be a shame to have duplicated several times...

A file system over a stream? Like I asked on Twitter, I'm not sure how that would work. Can you explain how it would work and what it should do?

Couple of random thoughts...

The zip format can't use io.Reader, it needs io.ReaderAt, which is not part of the io.ReadSeeker interface. We already kind of hedge this by returning an error from Extract() if the input is not an io.ReaderAt and an io.Seeker. The interfaces are, unfortunately, disjoint.
I could maybe see a FS that works on a stream only if all the operations are mutex'ed - can't seek to one place for one operation, then seek to another for another operation, at the same time. Currently ArchiveFS doesn't have this limitation because it opens multiple read-only handles to the files, one for each operation.

I have an io.SectionReader (over []byte of memory (maybe mmap'd)), which is an io.ReadSeekCloser and can create a SectionReader of it easily.
Maybe a GetReader func() (io.ReadSeekCloser, error) (like net/http.Request.GetBody) that is just os.Open(a.Path) if nil ?

Hmm, I'm not sure if that gets us around the mutex requirements; and we might as well just have a field on the struct that lets you specify the stream directly rather than a path on disk from which to create the stream for you.
Will think on this and maybe try some things when I have a chance, and get back about it.

@tgulacsi Can you tell me, how would Open() work? ReadDir()? Stat()? If all we have is a ReadSeeker, how do we know where to seek to in order to open a file, how to read directories, and what does a FileInfo from a stream only look like?

Ok, so thinking on this more, maybe ArchiveFS could have a field called Stream io.ReadSeeker that, if set, will just use that as the archive's input stream, rather than calling os.Open() on the Path field. While that might work, I'm wondering what the actual utility of this is.
If you already have a stream of the archive, and you know its type/format, then why not call the Extract() method directly?

@tgulacsi I don't know if this is what you have in mind, but I pushed a quick, spikey implementation to https://github.com/mholt/archiver/tree/archivefs-stream just for fun.
Note that I haven't tested it at all, and it's not safe for concurrent use. Basically set Stream instead of Path. But don't try to access . as that won't work (since there's no top-level file this time).
Is that what you have in mind? Does that even work? I'm still curious why this is useful to you if you have the input as a stream and you know the format, why not just use Extract().

https://github.com/mholt/archiver/issues/307#issuecomment-1010286266 : An io.ReaderAt wouldn't require mutexes at all.
https://github.com/mholt/archiver/issues/307#issuecomment-1013719124 :
"While that might work, I'm wondering what the actual utility of this is."
io.FS gives us the ability write an extractor, zipper, walker, copier, reader etc once, and use it on anything that implements io.FS. So you could able to implement Extract as a Walk on an ArchiveFS + copy to a DirFS.
(Of course such implementation is inferior to the current optimized one - just more general).
"If you already have a stream of the archive, and you know its type/format, then why not call the Extract() method directly?"
I don't want Extract, just Read some files, maybe embed.FS a zip, and use it as an io.FS (as rakyll/statik done before embed).

Why doesn't a ReaderAt require mutexes? 🤔  Not saying you're wrong, I just don't have much experience with the type.

I don't want Extract, just Read some files, maybe embed.FS a zip, and use it as an io.FS

Hmm, so you have an embed.FS that opens a zip file? That's fine, but I still don't see why you wouldn't want to use Extract since the FS is already implemented for you by package embed.

Nevermind, I just found this in the docs:

Clients of ReadAt can execute parallel ReadAt calls on the same input source.

ReaderAt docs
I hadn't known that / noticed that before. Very cool.
Anyway, what do you think of the implementation on the archivefs-stream branch?

https://github.com/mholt/archiver/issues/307#issuecomment-1014131073 : archivefs-stream is what I'm here for, but with a io.ReaderAt instead of io.ReadSeeker :)

It's so awkward that ReaderAt is not also a Reader. :(
I'll have to give this more thought, since most APIs require a Reader.
You said you could use SectionReader too, right? Would that be acceptable instead of ReaderAt?

ReaderAt + Size <=> *io.SectionReader.
For aesthetics, I prefer the interface (ReaderAt), but for usability, I think *io.SectionReader is better (one variable, neither you forget to check both f.Stream and f.StreamSize, nor the users forget to set both).
So yes, *io.SectionReader totally does it - just each time you need to pass an io.Reader, you have to create a new *io.SectionReader (io.NewSectionReader(f.Stream, 0, f.Stream.Size())) to isolate f.Stream's position from the reader's.

@tgulacsi Ok, that makes more sense. Thanks. I pushed the io.SectionReader change to that branch. Want to give it a try? I have not tested it.


Pt translation

Closes #

What I did

How to test

Checklist

[ ] Make sure your changes are tested (stories and/or unit, integration, or end-to-end tests).
[ ] Make sure to add/update documentation regarding your changes.
[ ] You are NOT deprecating/removing a feature.

@Lrmdom thanks for the contribution.
Unfortunately your PR still misses some required configuration to make the localization working, but I used your localized JSON to open a new one with all the required setup.
Closing this in favour of https://github.com/commercelayer/mfe-cart/pull/83

My first Pr ever....so


Missing git tag for 6.4

According to https://pypi.org/project/system-calls/ latest version is 6.4 however here there is no corresponding git tag for that version.
Not pushed local git repo to github? 🤔

Thanks for noticing. Pushed 5.19.0 and 6.4.0 tags (no code changes).
I wonder is there anyone using it ;D

Thank you 👍 😄
If I can choose between sdist or autogenerated from git tag tar ball I'm always choosing tagged resources because it guarantees that I would be able to apply patches downloaded from git commits 😋
IIRC Arch linux ATM has kind of similar policy.


Regex to match pattern

Hey! This repository is awesome 🚀
Do you happen to know any way to convert the regex to the match pattern?

Glad you like it! Unfortunately that's basically impossible, I led you expect a very specific regex format. Regex is much more capable than globs so a single . somewhere would already throw off any converter.