:read-only and :read-write

An element whose contents are not user-alterable is :read-only.

I think read-only should look at the contenteditable attribute and whether or not the element is an input element. Also: a disabled text input could be considered read-only.

 ':read-only': function(el) {
    var nodeName = el.nodeName;
    return (nodeName !== "INPUT" && nodeName !== "TEXTAREA" || el.disabled) && el.getAttribute("contenteditable") === null;
  }

A quick test of the function: http://jsfiddle.net/nG6bu/1/embedded/result/

I can open a pull request if you think this is a good idea

Looks good to me.


Why not use bge reranker model which is more common in reranking phase

Thanks for the great paper on providing practice performance on RAG in each phase.
And I have a question: why not include bge reranker model which is more common in the reranking phase?
The comparison between this model and other models will be instructive.
https://huggingface.co/BAAI/bge-reranker-large

Code for reranking with 'bge-reranker-v2-m3' is added to the repository (named as "BGE" in retrieval_config["rerank_model"])


Windows bug: Update the window theme without taking into account the preferred theme.

Issue
If the preferred system theme is lightMode, it is impossible to switch to darkMode, on Windows.
await windowManager.setBrightness(Brightness.light);
await windowManager.setBrightness(Brightness.dark);

Solution
The preferred theme should not be taken into account, like the MacOS implementation.
In the swift file for MacOS, the theme is simply updated by passing an argument :
public func setBrightness(_ args: [String: Any]) {
    let brightness: String = args["brightness"] as! String
    if (brightness == "dark") {
        mainWindow.appearance = NSAppearance(named: NSAppearance.Name.vibrantDark)
    } else {
        mainWindow.appearance = NSAppearance(named: NSAppearance.Name.vibrantLight)
    }
    mainWindow.invalidateShadow()
}

But in the file for Windows, the system preferred theme is retrieved, and utilized incorrectly. Instead of doing:
BOOL enable_dark_mode = light_mode == 0 && brightness == "dark";

It should be:
BOOL enable_dark_mode = brightness == "dark";

(Apologies, English isn't my first language.)

My apologies, after some tests I concluded the initial method is also valid. It didn't work at first in my tests because I didn't take into account that flutter changes automatically the title bar when the MaterialApp theme changes. That's another issue. Thank you

If anyone is wondering how I managed to work around my problem, I put a debouncing in my stream listener to let the flutter engine do its change before mine. My stream is activated on themeMode changes, or platformBrightness if themeMode is ThemeMode.system.


Won't paste in terminal while vim is suspended

Thank you for writing this!
It works for me on Ubuntu 22, except I'm running into a weird issue where I can't paste the selection while Vim is suspended:

Copy a line in vim using .+y$
Ctrl-Z to suspend vim and go to terminal
Paste via Ctrl-Shift-V

Instead of pasting the line into the terminal, nothing happens. Then when I unsuspend vim with fg, I see that it's pasted another copy of the line into vim, instead! Do you have any idea why this might be happening?

From what I can tell, this behavior is a side-effect of the way that wl-copy works. By default it forks and runs in the background, serving the copied data for any other process that tries to paste. If the wl-copy process is killed, the data is lost. It seems that when wl-copy is suspended (e.g. with Ctrl-Z), it prevents the copied data from being accessed until wl-copy resumes. Try this out:

Run wl-copy -f sometext. This will run in the foreground without forking due to the -f flag.
In another terminal, use Ctrl-Shift-V to paste. You should see sometext.
Use Ctrl-Z to suspend the wl-copy ... command from step 1.
In another terminal, use Ctrl-Shift-V to paste. Nothing should be pasted.
Use fg to resume the wl-copy ... command from step 1. sometext should be printed where you tried to paste it in step 4.

Anyway, long story short, when you suspend Vim it is also suspending the wl-copy command that was run when you yanked the text. Currently, the plugin runs wl-copy with system(), but using job_start() instead seems to prevent wl-copy from suspending when Vim is suspended.
Can you try out this patch to replace system() with job_start() and let me know if it fixes your issue?
diff --git a/plugin/wayland_clipboard.vim b/plugin/wayland_clipboard.vim
index 1f71072..f48b5d8 100644
--- a/plugin/wayland_clipboard.vim
+++ b/plugin/wayland_clipboard.vim
@@ -41,7 +41,10 @@ endif
 " pass register contents to wl-copy if the '+' (or 'w') register was used
 function! s:WaylandYank()
     if v:event['regname'] == '+' || (v:event['regname'] == 'w' && s:plus_to_w)
-        silent call system('wl-copy', getreg(v:event['regname']))
+        silent call job_start(['wl-copy', getreg(v:event['regname'])], {
+            \   "in_io": "null", "out_io": "null", "err_io": "null",
+            \   "stoponexit": "",
+            \ })
     endif
 endfunction

This fixes it! Thank you so much for the quick reply. (I got distracted by other things and didn't test your fix immediately, but I really appreciate it.)


Identification of tandem duplications

Hi Maria,
thanks for this wonderful tool.
I was just wondering , would it be possible to interpret tandem expensions as tandem duplications?
Because basically it should look like an insertion event in query sequence between alignments.
Best Regards,
Mehmet

Yes a tandem duplication would fall under the category of a tandem expansion. I used "tandem expansion" because it is more general. Since the delta file uploaded to Assemblytics doesn't actually contain the base sequences, Assemblytics doesn't have the power to analyze the repeat structure directly. In the paper in figure 1A, the diagram for "tandem expansion" includes some sequence in the middle, which could be an insertion of new sequence in between the duplicated sequence. In that kind of example, calling it a tandem duplication might oversimplify it a bit, so I went with a more general term to encompass those cases as well.


PDF names fixed

It would be nice if you can separate in folder by hostname

Also

My last commit add the folders, but if there are not pathname, save the pdf as index, do you think that is fine? @AngelGallegosE


5.0.2 BUG for repeat: MONTHLY and INTERVAL

Event
'01-07-2018' : [{content: 'Monthly And Yearly', repeat: 'MONTHLY', allDay: true, endDate: '02-07-2019'}],
not work MONTHLY (work as YEARLY). The event is shown only on January 1, 2018 and January 1, 2019.

When I put an event that goes over the next month:
'03-02-2018' : [{content : 'Graduation Exams', repeat: 'INTERVAL', allDay: true, endDate: '04-20-2018'}],
show the events in the first month March (03), but not in another April (04).

This events work good and as expected in 5.0.0 and 5.0.1 version.

Now it's working

Please make a pr and I'll merge it


0.32.1 - Inappropriate value for attribute "tags": map of string required

What happened?

Creating AWS resources with Provider-AWS 0.32.1 fails on EKS 1.23
How can we reproduce it?

Using example from:
https://marketplace.upbound.io/providers/upbound/provider-aws/v0.32.1/resources/iam.aws.upbound.io/Role/v1beta1
`Last Transition Time:  2023-04-12T15:14:50Z
Message:               observe failed: cannot run refresh: refresh failed: Incorrect attribute value type: Inappropriate value for attribute "tags": map of string required.
Reason:                ReconcileError
Status:                False
Type:                  Synced
Events:
Type     Reason                           Age                  From                                           Message

Warning  CannotInitializeManagedResource  37m                  managed/iam.aws.upbound.io/v1beta1, kind=role  Operation cannot be fulfilled on roles.iam.aws.upbound.io "jo-test-role": the object has been modified; please apply your changes to the latest version and try again
Warning  CannotObserveExternalResource    118s (x41 over 37m)  managed/iam.aws.upbound.io/v1beta1, kind=role  cannot run refresh: refresh failed: Incorrect attribute value type: Inappropriate value for attribute "tags": map of string required.`
Same manifest applied to a cluster running 0.31.0 results in
`Events:
Type     Reason                           Age   From                                           Message

Normal   CreatedExternalResource          47s   managed/iam.aws.upbound.io/v1beta1, kind=role  Successfully requested creation of external resource`
What environment did it happen in?

Crossplane Version: 1.11.3-up.1
Provider Version: 0.32.1
Kubernetes Version: v1.23.17-eks-ec5523e
Kubernetes Distribution: EKS

I used the example from marketplace and I could not reproduce the issue in my environment in the 0.32.1 version. Could you please send the entire manifest that you used while observing the issue?

apiVersion: iam.aws.upbound.io/v1beta1
kind: Role
metadata:
annotations:
meta.upbound.io/example-id: sagemaker/v1beta1/app
labels:
testing.upbound.io/example-name: example
name: jo-test-role
spec:
forProvider:
assumeRolePolicy: |
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "sagemaker.amazonaws.com"
},
"Effect": "Allow",
"Sid": ""
}
]
}
providerConfigRef:
name: provider-config-aws-ets-shared-np

@jason-odess could you show the apiVersion you are using?

Apologies for the cut/paste miss there:
apiVersion: iam.aws.upbound.io/v1beta1

I am unable to duplicate this issue on my local Kind cluster.
kubectl version --short
Client Version: v1.26.3
Kustomize Version: v4.5.7
Server Version: v1.25.3

kubectl get provider.pkg
NAME            INSTALLED   HEALTHY   PACKAGE                                                    AGE
provider-aws    True        True      xpkg.upbound.io/upbound/provider-aws:v0.32.1               3h59m

manifest:
apiVersion: iam.aws.upbound.io/v1beta1
kind: Role
metadata:
  annotations:
    meta.upbound.io/example-id: sagemaker/v1beta1/app
  labels:
    testing.upbound.io/example-name: example
  name: jo-test-role
spec:
  forProvider:
    assumeRolePolicy: |
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Principal": {
              "Service": "sagemaker.amazonaws.com"
            },
            "Effect": "Allow",
            "Sid": ""
          }
        ]
      }

result:
kubectl get -f role1.yaml
NAME           READY   SYNCED   EXTERNAL-NAME   AGE
jo-test-role   True    True     jo-test-role    11m

After some digging, I found that the issue was not actually with the tags on the managed resource I was trying to deploy, but rather the tags on the providerConfig that I was referencing in the claim.
---
apiVersion: aws.upbound.io/v1beta1
kind: ProviderConfig
metadata:
  name: provider-config-aws-test
spec:
  assumeRoleChain:
  - externalID: crossplane-deployment-role
    roleARN: arn:aws:iam::191135509750:role/caas-crossplane-eks/caas-iam-eks-deploy-role
    tags:
      - key: deployment_guid
        value: 40b4c6b5-14c6-47a4-92c9-b7e4eeef7ef5
    transitiveTagKeys:
      - deployment_guid
  credentials:
    secretRef:
      key: creds
      name: crossplane-iam-user
      namespace: uxp-system
    source: Secret

This provider config has not changed between 0.31.0 and 0.32.1, so we'll need to understand why those tags are causing the problem.


Error while loading knowledge base from url

Describe the bug
When I add knowledge base from url it adds few pages after that it keeps rolling but no further progress.
It shows few error on backend logs
To Reproduce
Steps to reproduce the behavior:

Clone the repository
Get the servers up using make install
Open the portal http://localhost:8888
Create a copilot
Go to 'Knowledge Base'
Click on 'Add Data Source->URL(s)'
Enter url as https://gamechange.com
Click on 'Add'

Expected behavior
All the pages/subpages (around 40 in total) should have been added.
 Id: 8e6a396c-c5d3-458e-a66a-4121b110a53f, Caps: Capabilities {acceptInsecureCerts: true, browserName: firefox, browserVersion: 119.0, moz:accessibilityChecks: false, moz:buildID:<PHONE_NUMBER>2658, moz:debuggerAddress: <IP_ADDRESS>:21699, moz:geckodriverVersion: 0.33.0, moz:headless: false, moz:platformVersion: 6.5.0-14-generic, moz:processID: 249, moz:profile: /tmp/rust_mozprofileJD2MMj, moz:shutdownTimeout: 60000, moz:webdriverClick: true, moz:windowless: false, pageLoadStrategy: normal, platformName: linux, proxy: Proxy(), se:bidiEnabled: false, se:cdp: ws://<IP_ADDRESS>:4444/sessio..., se:cdpVersion: 85.0, se:noVncPort: 7900, se:vnc: ws://<IP_ADDRESS>:4444/sessio..., se:vncEnabled: true, se:vncLocalAddress: ws://<IP_ADDRESS>:7900, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify}
opencopilot-selenium-1    | 07:11:51.768 INFO [LocalDistributor.newSession] - Session created by the Distributor. Id: 8e6a396c-c5d3-458e-a66a-4121b110a53f
opencopilot-selenium-1    |  Caps: Capabilities {acceptInsecureCerts: true, browserName: firefox, browserVersion: 119.0, moz:accessibilityChecks: false, moz:buildID:<PHONE_NUMBER>2658, moz:debuggerAddress: <IP_ADDRESS>:21699, moz:geckodriverVersion: 0.33.0, moz:headless: false, moz:platformVersion: 6.5.0-14-generic, moz:processID: 249, moz:profile: /tmp/rust_mozprofileJD2MMj, moz:shutdownTimeout: 60000, moz:webdriverClick: true, moz:windowless: false, pageLoadStrategy: normal, platformName: linux, proxy: Proxy(), se:bidiEnabled: false, se:cdp: ws://<IP_ADDRESS>:4444/sessio..., se:cdpVersion: 85.0, se:noVncPort: 7900, se:vnc: ws://<IP_ADDRESS>:4444/sessio..., se:vncEnabled: true, se:vncLocalAddress: ws://<IP_ADDRESS>:7900, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify}
opencopilot-qdrant-1      | 2024-01-16T07:12:13.063651Z  INFO actix_web::middleware::logger: <IP_ADDRESS> "PUT /collections/knowledgebase/points?wait=true HTTP/1.1" 200 92 "-" "python-httpx/0.25.0" 0.343635
opencopilot-workers-1     | [2024-01-16 07:12:13,068: INFO/ForkPoolWorker-7] HTTP Request: PUT http://qdrant:6333/collections/knowledgebase/points?wait=true "HTTP/1.1 200 OK"
opencopilot-qdrant-1      | 2024-01-16T07:12:15.284872Z  INFO actix_web::middleware::logger: <IP_ADDRESS> "PUT /collections/knowledgebase/points?wait=true HTTP/1.1" 200 91 "-" "python-httpx/0.25.0" 0.049263
opencopilot-workers-1     | [2024-01-16 07:12:15,285: INFO/ForkPoolWorker-7] HTTP Request: PUT http://qdrant:6333/collections/knowledgebase/points?wait=true "HTTP/1.1 200 OK"
opencopilot-qdrant-1      | 2024-01-16T07:12:17.125837Z  INFO actix_web::middleware::logger: <IP_ADDRESS> "PUT /collections/knowledgebase/points?wait=true HTTP/1.1" 200 91 "-" "python-httpx/0.25.0" 0.065460
opencopilot-workers-1     | [2024-01-16 07:12:17,126: INFO/ForkPoolWorker-7] HTTP Request: PUT http://qdrant:6333/collections/knowledgebase/points?wait=true "HTTP/1.1 200 OK"
opencopilot-qdrant-1      | 2024-01-16T07:12:19.221687Z  INFO actix_web::middleware::logger: <IP_ADDRESS> "PUT /collections/knowledgebase/points?wait=true HTTP/1.1" 200 91 "-" "python-httpx/0.25.0" 0.113664
opencopilot-workers-1     | [2024-01-16 07:12:19,222: INFO/ForkPoolWorker-7] HTTP Request: PUT http://qdrant:6333/collections/knowledgebase/points?wait=true "HTTP/1.1 200 OK"
opencopilot-qdrant-1      | 2024-01-16T07:12:21.388306Z  INFO actix_web::middleware::logger: <IP_ADDRESS> "PUT /collections/knowledgebase/points?wait=true HTTP/1.1" 200 91 "-" "python-httpx/0.25.0" 0.064480
opencopilot-workers-1     | [2024-01-16 07:12:21,390: INFO/ForkPoolWorker-7] HTTP Request: PUT http://qdrant:6333/collections/knowledgebase/points?wait=true "HTTP/1.1 200 OK"
opencopilot-selenium-1    | 07:12:25.081 WARN [ExternalProcess$Builder.lambda$start$0] - failed to copy the output of process 239
opencopilot-selenium-1    | java.io.IOException: Stream closed
opencopilot-selenium-1    |     at java.base/java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:176)
opencopilot-selenium-1    |     at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:342)
opencopilot-selenium-1    |     at java.base/java.io.InputStream.transferTo(InputStream.java:704)
opencopilot-selenium-1    |     at org.openqa.selenium.os.ExternalProcess$Builder.lambda$start$0(ExternalProcess.java:209)
opencopilot-selenium-1    |     at java.base/java.lang.Thread.run(Thread.java:829)
opencopilot-selenium-1    | 07:12:25.202 INFO [LocalSessionMap.lambda$new$0] - Deleted session from local Session Map, Id: 8e6a396c-c5d3-458e-a66a-4121b110a53f
opencopilot-selenium-1    | 07:12:25.205 INFO [GridModel.release] - Releasing slot for session id 8e6a396c-c5d3-458e-a66a-4121b110a53f
opencopilot-selenium-1    | 07:12:25.207 INFO [SessionSlot.stop] - Stopping session 8e6a396c-c5d3-458e-a66a-4121b110a53f
opencopilot-workers-1     | [2024-01-16 07:12:25,223: INFO/ForkPoolWorker-7] Task workers.tasks.web_crawl.web_crawl[efa251ad-1594-4400-b353-cd1b706ead54] succeeded in 64.27358841899877s: None
opencopilot-llm-server-1  | {"error": "<NotFound '404: Not Found'>", "event": "Internal Server Error", "level": "error", "timestamp": "2024-01-16T07:13:41.405414Z", "exception": [{"exc_type": "NotFound", "exc_value": "404 Not Found: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.", "syntax_error": null, "is_cause": false, "frames": [{"filename": "/usr/local/lib/python3.9/site-packages/flask/app.py", "lineno": 867, "name": "full_dispatch_request", "line": "", "locals": {"self": "<Flask 'app'>", "rv": "None", "e": "<NotFound '404: Not Found'>"}}, {"filename": "/usr/local/lib/python3.9/site-packages/flask/app.py", "lineno": 841, "name": "dispatch_request", "line": "", "locals": {"self": "<Flask 'app'>", "req": "<Request 'http://llm-server:8002/healthcheck' [GET]>"}}, {"filename": "/usr/local/lib/python3.9/site-packages/flask/app.py", "lineno": 450, "name": "raise_routing_exception", "line": "", "locals": {"self": "<Flask 'app'>", "request": "<Request 'http://llm-server:8002/healthcheck' [GET]>"}}, {"filename": "/usr/local/lib/python3.9/site-packages/flask/ctx.py", "lineno": 353, "name": "match_request", "line": "", "locals": {"self": "<RequestContext 'http://llm-server:8002/healthcheck' [GET] of app>"}}, {"filename": "/usr/local/lib/python3.9/site-packages/werkzeug/routing/map.py", "lineno": 624, "name": "match", "line": "", "locals": {"self": "<werkzeug.routing.map.MapAdapter object at 0x7fa01dee1bb0>", "path_info": "/healthcheck", "method": "GET", "return_rule": "True", "query_args": "{}", "websocket": "False", "domain_part": "", "path_part": "/healthcheck"}}]}]}
opencopilot-llm-server-1  | <IP_ADDRESS> - - [16/Jan/2024 07:13:41] "GET /healthcheck HTTP/1.1" 500 -
opencopilot-llm-server-1  | {"error": "<NotFound '404: Not Found'>", "event": "Internal Server Error", "level": "error", "timestamp": "2024-01-16T07:18:42.053351Z", "exception": [{"exc_type": "NotFound", "exc_value": "404 Not Found: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.", "syntax_error": null, "is_cause": false, "frames": [{"filename": "/usr/local/lib/python3.9/site-packages/flask/app.py", "lineno": 867, "name": "full_dispatch_request", "line": "", "locals": {"self": "<Flask 'app'>", "rv": "None", "e": "<NotFound '404: Not Found'>"}}, {"filename": "/usr/local/lib/python3.9/site-packages/flask/app.py", "lineno": 841, "name": "dispatch_request", "line": "", "locals": {"self": "<Flask 'app'>", "req": "<Request 'http://llm-server:8002/healthcheck' [GET]>"}}, {"filename": "/usr/local/lib/python3.9/site-packages/flask/app.py", "lineno": 450, "name": "raise_routing_exception", "line": "", "locals": {"self": "<Flask 'app'>", "request": "<Request 'http://llm-server:8002/healthcheck' [GET]>"}}, {"filename": "/usr/local/lib/python3.9/site-packages/flask/ctx.py", "lineno": 353, "name": "match_request", "line": "", "locals": {"self": "<RequestContext 'http://llm-server:8002/healthcheck' [GET] of app>"}}, {"filename": "/usr/local/lib/python3.9/site-packages/werkzeug/routing/map.py", "lineno": 624, "name": "match", "line": "", "locals": {"self": "<werkzeug.routing.map.MapAdapter object at 0x7fa01de0d3a0>", "path_info": "/healthcheck", "method": "GET", "return_rule": "True", "query_args": "{}", "websocket": "False", "domain_part": "", "path_part": "/healthcheck"}}]}]}
opencopilot-llm-server-1  | <IP_ADDRESS> - - [16/Jan/2024 07:18:42] "GET /healthcheck HTTP/1.1" 500 -
opencopilot-llm-server-1  | {"error": "<NotFound '404: Not Found'>", "event": "Internal Server Error", "level": "error", "timestamp": "2024-01-16T07:23:42.557059Z", "exception": [{"exc_type": "NotFound", "exc_value": "404 Not Found: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.", "syntax_error": null, "is_cause": false, "frames": [{"filename": "/usr/local/lib/python3.9/site-packages/flask/app.py", "lineno": 867, "name": "full_dispatch_request", "line": "", "locals": {"self": "<Flask 'app'>", "rv": "None", "e": "<NotFound '404: Not Found'>"}}, {"filename": "/usr/local/lib/python3.9/site-packages/flask/app.py", "lineno": 841, "name": "dispatch_request", "line": "", "locals": {"self": "<Flask 'app'>", "req": "<Request 'http://llm-server:8002/healthcheck' [GET]>"}}, {"filename": "/usr/local/lib/python3.9/site-packages/flask/app.py", "lineno": 450, "name": "raise_routing_exception", "line": "", "locals": {"self": "<Flask 'app'>", "request": "<Request 'http://llm-server:8002/healthcheck' [GET]>"}}, {"filename": "/usr/local/lib/python3.9/site-packages/flask/ctx.py", "lineno": 353, "name": "match_request", "line": "", "locals": {"self": "<RequestContext 'http://llm-server:8002/healthcheck' [GET] of app>"}}, {"filename": "/usr/local/lib/python3.9/site-packages/werkzeug/routing/map.py", "lineno": 624, "name": "match", "line": "", "locals": {"self": "<werkzeug.routing.map.MapAdapter object at 0x7fa03c48a400>", "path_info": "/healthcheck", "method": "GET", "return_rule": "True", "query_args": "{}", "websocket": "False", "domain_part": "", "path_part": "/healthcheck"}}]}]}

@suresh-saini please take a pull from main
and run
docker compose up -d --build --no-deps llm-server
docker compose up -d --build --no-deps worker

Alternatively you can run make install or make install-arm

Thanks @codebanesr. It proceeded further.
But now it stuck after loading 15 pages. Though I don't see any error in backend logs this time

Thanks @codebanesr
Awesome, thanks so much!
I appreciate your quick response.
This is similar to the OpenChat issue where I mentioned that I updated the ./backend-server/app/Http/Listeners/StartRecursiveCrawler.php to increase the max amount of pages OpenChat can index. I was unsure how OpenChat compared to OpenCopilot; thanks for your message. It has helped me understand how OpenCopilot works.

I will close this issue now, feel free to reopen if something has not been answered

Just curious to learn if an alternative for updating the database, as suggested above, can be to update the python file instead?
vi llm-server/models/repository/copilot_settings.py

For example, update the get_chatbot_settings function's limit argument  from 100 to 1000:
  def get_chatbot_settings(skip: int = 0, limit: int = 1000):


Replace TrimBeginningAndEndingSlashes with str.strip

The str built-in type has a method just for the same kind of munging as TrimBeginningAndEndingSlashes: str.strip('/'). It also has methods for removing leading (lstrip) or ending (rstrip) characters.
Furthermore, it's a more performant and idiomatic approach than the current one.

 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.:x: nuno-andre sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Manually started CI on this PR: https://cosmos-db-sdk-public.visualstudio.com/cosmos-db-sdk-public/_build/results?buildId=1279


I would like to work on a progress component, which can be either in line or circular shape

I would like to work on a progress component, which can be either in line or circular shape

@jjaijg
Awesome idea.
Go for it 💪🏻


Put in the context menu a ""copy line above into new line below"" option

Put in the context menu a "copy line above into new line below" option, so if you have more complex objects on lines it will be very easy to replicate the data in a next line that I create!

I have updated the code and the feature is available now.


[FLINK-27315] Fix the demo of MemoryStateBackendMigration

What is the purpose of the change
JobManagerStateBackend changed to JobManagerCheckpointStorage
Brief change log
JobManagerStateBackend changed to JobManagerCheckpointStorage
Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

@EchoLee5 I think the patch is good. However, this PR cannot be merged due to current commits in your EchoLee5:master branch. You should let your commit on top of the latest master branch without any commit like Merge branch 'apache:master' into master, in general, we would use different branch instead of the master branch in your forked repo to create the pull request.

@EchoLee5 I think the patch is good. However, this PR cannot be merged due to current commits in your EchoLee5:master branch. You should let your commit on top of the latest master branch without any commit like Merge branch 'apache:master' into master, in general, we would use different branch instead of the master branch in your forked repo to create the pull request.

@Myasuka Thanks for the suggestion, I will change the pr and resubmit

It seems you still did not get what I mean, I think you'd better create another PR based on your another forked branch instead of EchoLee5:master branch.

It seems you still did not get what I mean, I think you'd better create another PR based on your another forked branch instead of EchoLee5:master branch.

Sorry, I misunderstood your point, I closed this pr first


pspg: 4.3.1 -> 4.4.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/okbob/pspg/releases.
meta.description for pspg is: "Postgres Pager"
meta.homepage for pspg is: "https://github.com/okbob/pspg"
meta.changelog for pspg is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 4.4.0 with grep in /nix/store/ams677nx49blj0pmljcxp9s9vlvb6nxn-pspg-4.4.0

directory tree listing: https://gist.github.com/34f5416e521fc71563809d41fe278701

du listing: https://gist.github.com/950721ae51cda44a4e11e093f4a4e0aa

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
1 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
pspg

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/ams677nx49blj0pmljcxp9s9vlvb6nxn-pspg-4.4.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A pspg https://github.com/r-ryantm/nixpkgs/archive/61a4e0eb0c29738d8da979f43cb0b5f4062e9fe3.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/ams677nx49blj0pmljcxp9s9vlvb6nxn-pspg-4.4.0
ls -la /nix/store/ams677nx49blj0pmljcxp9s9vlvb6nxn-pspg-4.4.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

pspg

Maintainer pings
cc @jlesquembre for testing.

Result of nixpkgs-review pr 117238 run on x86_64-linux 1

1 package built:

pspg


Port Remove reference to Microsoft.AspNetCore.Mvc.Razor.ViewCompilation from desktop templates to 2.1.1

cc @mkArtakMSFT

Commit to port: https://github.com/aspnet/templating/commit/c6b5001149fb39e2d030f564385ebd05b5de6f2d


Improve rendering of filing text and markdown

The latest improvements to rendering text and markdown

Tests pass. Should be merged

Merging htmlfixes branch


⚠ SceneTime has degraded performance

In 30cfa72, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1035 ms

Resolved: SceneTime performance has improved in 24b0fcf after 6 minutes.


Added project section

Related Issue
fixes #188 and #189
Description
I have added a new page where users can enhance their learning experience by creating projects and immersing themselves in the language. This hands-on approach allows for a more practical and interactive learning environment, providing users with an opportunity to apply their knowledge in real-world scenarios.
Type of PR

[ ] Bug fix
[✅] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)
[Attach any relevant screenshots or videos demonstrating the changes]

Checklist:

[✅ ] I have performed a self-review of my code
[✅ ] I have read and followed the Contribution Guidelines.
[✅ ] I have tested the changes thoroughly before submitting this pull request.
[✅ ] I have provided relevant issue numbers, screenshots, and videos after making the changes.
[✅ ] I have commented my code, particularly in hard-to-understand areas.

Additional context:
Also added improved the learning grid section

@Vijayaa21 Please resolve the conflicts in your PR.

conflict resolved

This PR is approved by my side @Muskansahuincredible please review it once on and merge it.

@Vijayaa21
Can you please share more relevant videos to your work?

@Vijayaa21 Are you active?

@Vijayaa21 Are you active?
yes, I am attaching video

https://github.com/user-attachments/assets/4c8a2aab-19ef-4b2e-a744-d33d38a5f1e3


[1.3.5-prepare][ui][cherry-pick]#4557 Repair the workflow instance, click the browser to return to the previous page, always start the query from the first page

issues #4556

Codecov Report

:exclamation: No coverage uploaded for pull request base (1.3.5-prepare@d3bf2ee). Click here to learn what that means.
The diff coverage is n/a.

@@               Coverage Diff                @@
##             1.3.5-prepare    #4647   +/-   ##
================================================
  Coverage                 ?   37.24%
  Complexity               ?     2591
================================================
  Files                    ?      448
  Lines                    ?    20292
  Branches                 ?     2456
================================================
  Hits                     ?     7557
  Misses                   ?    12019
  Partials                 ?      716

Continue to review full report at Codecov.

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


deployment_failed custom windows vm from image

deployment_failed vm:

operations :
Error message: ╷ │ Error: Code="VMExtensionProvisioningError" Message="VM has reported a failure when processing extension 'windowsvmaf02-vmextension' (publisher 'Microsoft.Compute' and type 'CustomScriptExtension'). Error message: "Command execution finished, but failed because it returned a non-zero exit code of: '1'. The command had an error output of: 'conda : The term 'conda' is not recognized as the name of a cmdlet, function, script file, or operable program. Check \r\nthe spelling of the name, or if a path was included, verify that the path is correct and try again.\r\nAt C:\azuredata\configure.ps1:32 ch...' For more information, check the instance view by executing Get-AzVmssVm or Get-AzVm (https://aka.ms/GetAzVm). These commands can be executed using CloudShell (https://aka.ms/CloudShell)". More information on troubleshooting is available at https://aka.ms/VMExtensionCSEWindowsTroubleshoot.

steps:
create image:
1:create vm in azure portal login successfully using rdp.
2:create image using capture method .place image in compute gallery which image name is :   windows10image
3:create vm from image which is successfully login using rdp
create custom template:
1.copy  guacamole-azure-windpwsvm rename name to guacamole-azure-windpwsvm-gpu

2.make changes in  guacamole-azure-windpwsvm-gpu porter.ymal

define default value compute gallery

3.make chnages in  template_schema.json

4.make chnages in .github/workflows/deploy_tre_resuable.yml

5.make chnages in config.yaml

Azure TRE release version (e.g. v0.14.0 or main):
Deployed Azure TRE components - click the (i) in the UI:

@basitrehman531997  looks like your base VM image has not got conda installed.
You can see here:
https://github.com/microsoft/AzureTRE/blob/0f12981a51eadfd51ac14734e23da977ddf0f1ec/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm/porter.yaml#L24-L37
that we only configure conda on the DSVM as it has conda preinstalled. If you want to run the conda configuration you will need to have conda installed on your VM image.
I will close the case, but feel free to reopen if you do have conda installed on your VM image.


Fix various bugs found with Bicep testing

Fixes for various issues noticed with integrating type library in Bicep:

Perform case-insensitive parameter matching (https://github.com/Azure/autorest/issues/4211).
Do not register discriminated object sub-type elements as globally-namespaced types.
Ensure additionalProperties are handled correctly.
Don't display discriminated object elements as top-level types in markdown.

Codecov Report

Merging #302 (3cadd1b) into main (a5862b7) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #302   +/-   ##
=======================================
  Coverage   95.23%   95.23%
=======================================
  Files          17       17
  Lines         252      252
=======================================
  Hits          240      240
  Misses         12       12

Flag
Coverage Δ

dotnet
95.23% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.


randOctal

Description
randOctal number
Proposed solution
No response
Alternatives considered
No response
Do you want to create a pull request?
No

I can take this, if possible.

Sure


Anchor docs restructure

Something went wrong with PR preview build please check

Something went wrong with PR preview build please check

Preview is available here:http://developers-pr121.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr121.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr121.previews.kube001.services.stellar-ops.com

Preview is available here:http://developers-pr121.previews.kube001.services.stellar-ops.com

LGTM


Add ellipsis to overflowing layer item name #559

If I understand well your last comment on the issue, you want a tooltip when the layer name is overflowing ?
It's going to be hard to have tooltip only in case of overflowing (not impossible though) and lost native CSS performance.

This change is

If I understand well your last comment on the issue, you want a tooltip when the layer name is overflowing

I don't think we need the usual jquery tooltip here. Simply set the title attribute on the layer element to have the default HTML tooltip displayed after some time. No need to make it depend on the overflow either.

Sorry for the spam :roll_eyes:, but it can be JQuery tooltip (init on the fly).
I see that it's never done in the code base. Is that on purpose or it just never had the need ?

I think we never had to dynamically add / remove tooltips yet.
In this case I'm just leaning towards the default HTML tooltip, because I want it to be less intrusive than the jquery one. At least I would prefer if it was not displayed immediately (since it's a redundant information in case there is no ellipsis).
If you have a solution in mind using the jquery tooltip, feel free to update the PR, I'll test it and give you my feedback.

Thanks, merging!


Search for language doesn’t work

Running 0.8.2-5291832e-docker-vaapi 0.8.2-c3fe2639-docker-vaapi and trying to search for movies/episodes in certain languages:
language:eng

All my videos have the language(s) tagged, and the doc says "language: The movie audio stream language".
All I get is an empty results page.
Searching for other language variants like de, deu or ger also has zero results.
Just for proof, here is the data for a random movie (The Pink Panther):
{
  "Id": 2613,
  "Kind": "JellyfinMovie",
  "LibraryKind": "JellyfinLibrary",
  "ServerName": "media",
  "LibraryName": "Filme",
  "State": "RemoteOnly",
  "Duration": "01:50:23.4799999",
  "SampleAspectRatio": "0:0",
  "DisplayAspectRatio": "16:9",
  "RFrameRate": "25.00",
  "VideoScanKind": "Interlaced",
  "Width": 720,
  "Height": 576,
  "Streams": [
    {
      "Index": 0,
      "Kind": "Video",
      "Codec": "mpeg2video",
      "Profile": "main",
      "Language": "eng",
      "Default": true,
      "PixelFormat": "yuv420p",
      "ColorRange": "",
      "ColorSpace": "",
      "ColorTransfer": "",
      "ColorPrimaries": ""
    },
    {
      "Index": 1,
      "Kind": "Audio",
      "Title": "English DD 5.1",
      "Codec": "ac3",
      "Profile": "",
      "Language": "eng",
      "Channels": 6,
      "Default": true
    },
    {
      "Index": 2,
      "Kind": "Audio",
      "Title": "Deutsch DD 5.1",
      "Codec": "ac3",
      "Profile": "",
      "Language": "ger",
      "Channels": 6
    },
    {
      "Index": 3,
      "Kind": "Audio",
      "Title": "French DD 5.1",
      "Codec": "ac3",
      "Profile": "",
      "Language": "fre",
      "Channels": 6
    },
    {
      "Index": 4,
      "Kind": "Audio",
      "Title": "Italian DD 2.0",
      "Codec": "ac3",
      "Profile": "",
      "Language": "ita",
      "Channels": 2
    },
    {
      "Index": 5,
      "Kind": "Audio",
      "Title": "Spanish DD 2.0",
      "Codec": "ac3",
      "Profile": "",
      "Language": "spa",
      "Channels": 2
    },
    {
      "Index": 6,
      "Kind": "Audio",
      "Title": "Czech DD 2.0",
      "Codec": "ac3",
      "Profile": "",
      "Language": "cze",
      "Channels": 2
    },
    {
      "Index": 7,
      "Kind": "Audio",
      "Title": "English Commentary Blake Edwards (director)",
      "Codec": "ac3",
      "Profile": "",
      "Language": "eng",
      "Channels": 2
    },
    {
      "Index": 8,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "eng"
    },
    {
      "Index": 9,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "ger"
    },
    {
      "Index": 10,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "fre"
    },
    {
      "Index": 11,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "ita"
    },
    {
      "Index": 12,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "spa"
    },
    {
      "Index": 13,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "dut"
    },
    {
      "Index": 14,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "swe"
    },
    {
      "Index": 15,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "fin"
    },
    {
      "Index": 16,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "nor"
    },
    {
      "Index": 17,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "dan"
    },
    {
      "Index": 18,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "por"
    },
    {
      "Index": 19,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "gre"
    },
    {
      "Index": 20,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "tur"
    },
    {
      "Index": 21,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "cze"
    },
    {
      "Index": 22,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "eng"
    },
    {
      "Index": 23,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "ger"
    },
    {
      "Index": 24,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "fre"
    },
    {
      "Index": 25,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "ita"
    },
    {
      "Index": 26,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "spa"
    },
    {
      "Index": 27,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "dut"
    },
    {
      "Index": 28,
      "Kind": "Subtitle",
      "Codec": "dvdsub",
      "Language": "eng"
    }
  ]
}

(Index 22 and up subtitles appear duplicates but are actually the subtitles for the audio commentary track at index 7. Unfortunately, ETV doesn’t (yet?) evaluate "commentary", "original language", "hearing impaired" or "visual impaired" tags, so it is not shown in media info.) The "title" (description) of the subtitles is also not shown, it would have a textual description like "English Commentary Blake Edwards (director)", which I put there for software that doesn’t handle the tags. Media container is MKV, of course.

Most of the metadata displayed on etv details pages are clickable for searching, including language. The distinction here is that searches use English language names, not tagged values.

Hm, what are you trying to say? I should use something like "German" or "English"? And are these always the English names? (I wouldn’t be able to type Russian or Chinese, for instance.)

Search for a movie in etv, click on the poster to see the details, then click on a language from that page. It will take you to a search for all items with that language.

Yeah, fantastic, that works! Thanks!

@jasongdove It actually shows the language only on show seasons, neither on movies nor episodes.
Here is the page for "The Pink Panther" from above:

Possible bug: If a show has more than one language, the language isn’t shown anymore, not even on the show page!
Most of my videos have more than one language (I usually rip all audio and subtitle tracks). The Pink Panther movie has several, but the Pink Panther show I only have in English.

To be clear, searching for languages is not broken and works correctly in the latest release builds (and develop builds). I pointed you to the pages in the UI to clarify what I meant by "English language names" - that is, the UI displays the names as they are indexed.
With that said, you are correct that the language display for items with more than one language was broken. Good catch! This bug should now be fixed in the latest develop build with #1474.

Yep, we are in agreement: Not broken, but not much documentation, so I assumed one has to input language codes instead of (English) language names.
In 0.8.2-17bed524-docker-vaapi, language is now shown for movies and shows. Can we expect this also for episodes?
Reason being: You might have bought a series/season on DVD/Blu-Ray that has episodes that never aired in your country, and thus are not dubbed. Would be nice to be able to spot these in an episode list.

Sometimes difficult adding yet another translation layer in your head. How do I search for:

zxx (tried: instrumental, "no linguistic content", none)
mul (tried: multiple, "multiple languages")
und (tried: undetermined, undefined, unknown
no language tagged (tried: "", none, empty)

And yes, of course there is media tagged like that.

The latest develop build updates the search index to include language_tag which is the raw value from the metadata, excluding null/empty values.
The syntax to search for an item that is indexed without this particular field is: NOT _exists_:language_tag.

Wow, that’s a good enhancement, thanks! I’m now on 0.8.2-714f68a8-docker-vaapi and searching existing tags works fine.
_exists_ seems to return zero results in both these searches, though:
NOT _exists_:language_tag
_exists_:language_tag

No, you don't have to rescan for it to work. Are you combining those searches with something else? I can copy and paste those lines individually into the search box in ETV and get results.
Deep scan will ignore etag checks (which are used to quickly ignore unchanged items in a library) and scan all items, even those that haven't changed. It's mostly there to work around any potential etag bugs; if you find that you need to use deep scan to detect changes in a library it would be considered a bug.

Thanks for the explanation!
You’re right: I don’t have Elasticsearch enabled. What would be the advantage, and would we lose Lucene syntax when doing that?

It's just one more service to maintain. I added it to see if it would be more performant than Lucene, but it hasn't been for me.
It's supposed to use the same Lucene syntax; I hadn't realized Elasticsearch extended it with some custom capabilities.

I think I found a solution using pure Lucene:
Search for existing language_tag:
language_tag:*

Search for movies that have no language_tag (must use something before NOT because a query can’t start with NOT):
type:movie NOT language_tag:*

Using this, I actually found 29 movies in my collection where I forgot to tag the language!
Could you please verify that this is correct and works? If so, we can close this issue, hooray!

Good find, NOT language_tag:* gives the same results as NOT _exists_:language_tag on my system, and it works with Lucene, as you describe. Even type:* NOT language_tag:*.

Great, thanks for checking. Another one solved :-)


Move transaction download and verify stream into the mempool service

Motivation
We need to add transactions to the download and verify stream from two different places: the inbound service and the mempool crawler. The stream only existed in the inbound service, and it would be awkward to reuse it.
Therefore, move the stream into the mempool service and make other components interact with it using a new mempool service Request.
Closes #2728
Specifications

Designs

Solution

Move the stream into the mempool service
Add a new Request::DownloadAndVerify and Response::DownloadActions
Refactor callers to accomodate that. In particular, it was required to change the Mempool::new to receive the peer set and state services.
Move the check to see if tx needs to be downloaded. Now it's split into two places, which was easier to implement: checking if already in the state was kept inside the stream, since it already has a handle to the state service and it's already async. Checking if already in the mempool was moved to the mempool service itself, synchronously, before calling the stream.
Actually add the verified transactions in the mempool. This was particularly easy with the new design. (I had to change the stream to actually return the transaction instead of just its ID). Note that this is different from the block downloader, which sends verified blocks to the state by itself.

Review
@oxarbitrage and/or @dconnolly will probably want to review it
I tested it by running zebra and checking if transactions are being verified (through grafana, but you can also grep the log)
This refactors a chunk of the mempool and its tests, so it's better to review it soon so that remaining mempool work can start from it.
Reviewer Checklist

[ ] Code implements Specs and Designs
[ ] Tests for Expected Behaviour
[ ] Tests for Errors

Follow Up Work
This does not wait for the state to be near the tip before accepting transactions, which we must do. But it's probably better to leave to a separate PR.

Ah, two things that I was not sure of and I forgot to comment:

In inbound.rs, when processing AdvertiseTransactionIds, we need to convert a HashSet of txids into a Vec of GossipedTxs. This can be avoided by splitting the DownloadAndVerify mempool Request into Verify (for tx) and DownloadAndVerify (for txids). Should we do it?
What should we do with the result of storage.insert() inside poll_ready()?

In inbound.rs, when processing AdvertiseTransactionIds, we need to convert a HashSet of txids into a Vec of GossipedTxs. This can be avoided by splitting the DownloadAndVerify mempool Request into Verify (for tx) and DownloadAndVerify (for txids). Should we do it?

It looks like just a refactor, we can do it later if we want.

What should we do with the result of storage.insert() inside poll_ready()?

Maybe the id of the transaction inserted if successful or just true/false. We have a TODO comment in the code for it so i think we can decide if a return is needed and with what later on.

Addressed comments and revamped error handling, it seems much better now.
One thing I was not sure of was the Queue response. I went for Queued(Vec<Result<(), MempoolError>>) which is a bit ugly. We don't currently use the result value so it could be just Queued, or we could make Queue take a single Gossip which would allow returning the error using the regular way, but it would be a bit less efficient (since we'd need to queue each transaction individually)

I'm good with leaving it as-is for now 👍


chore(package): explicitly declare js module type

See https://github.com/fastify/fastify-rate-limit/pull/332

Checklist

[x] commit message and code follows the Developer's Certification of Origin
and the Code of conduct

Test failures unrelated.


Alter Hello message format in ripple.proto to send explicit unpacked version numbers

protoVersion and protoVersionMin fields currently pack both major and minor versions into each unint32 field.  This is undocumented and non-obvious, there should simply be 4 (possibly smaller uint16) bit fields instead.
See
https://github.com/ripple/rippled/blob/develop/modules/ripple_data/protocol/ripple.proto?source=c#L65

Has this been fixed in the meantime?


make config and metadata visible

"write molecule config to metadata path" is important to be able to trace an event that points at a failed DM Verity volume, through its molecule mountpoint, to an OCI image and potentially to a container running that image that we then need to stop.
"move metadata path to /run" is handy for testing, but is not strictly required, since it only changes the behavior of the atomfs binary. Other programs using atomfs as a package are free to set the metadata path however they want, if they need it to be accessible while the molecule is mounted.
Fixes #21

Error: cmd/atomfs/umount.go:10:2: "machinerun.io/atomfs/log" imported and not used

Otherwise looks fine to me, thanks

derp! thanks, fixed

thanks for the review, I was wondering if there was a reason to object to moving away from the nice neat tucked-under-the-mountpoint approach. I didn't look too hard but didn't think of a nice way to get at the meta of a still-mounted molecule with the previous scheme..

Well, now that you mention it, there is reason :)  If different users (or different root logins) each try to mount to the same mountpoint in different namespaces, which is perfectly legitimate, then there will now be conflicts, right?

that's a good point, do you have a scheme in mind that fixes that? Is there a way to get a unique string that maps to a given mount namespace?
Or alternately maybe we should keep the old behavior as default and add a --use-central-meta flag (bad name) that does what I added here?

Yeah, you should be able to use:
serge@honeybadger:~$ ls -l /proc/self/ns/mnt
lrwxrwxrwx 1 serge serge 0 Oct  2 13:39 /proc/self/ns/mnt -> 'mnt:[4026531841]'

For the mounter.  That mntns name will be unique as long as that mntns exists, so if it created the mount, it'll live as long as the mount does.

closing this for a new PR with this change but also more. My earlier assertion that "Other programs using atomfs as a package are free to set the metadata path however they want, if they need it to be accessible while the molecule is mounted." may have been true but it meant duplicating a lot of atomfs code in those programs, so my new PR has a different approach where the mount code moves into the atomfs package and everything using it to mount a molecule will get the metadata at /run/atomfs/meta. It will incorporate the suggestion to use the mount nsname.


Integrate the angular github wiki with the official docs

The https://github.com/angular/angular.js/wiki contains quite a bit of material. Some of it can also be found in the official docs (not 1:1 though), some of it can only be found there. I think it makes sense to incorporate what's good into the official doc, and either close the wiki, or keep it focussed only on the unique info. Why?

the info is not curated regularly or strictly. It might be outdated or incomplete
it looks official, whereas the core team involvement is basically zero
the wiki is obscure - there's basically no indication that it even exists (maintaining it benefits very few people)
It's better to centralize the docs efforts in one place. For that, we should make it easier for people to contribute to the official docs

That said, I'd like to get https://github.com/angular/angular.js/wiki/Writing-AngularJS-Documentation into the official docs to make it easier for people to contribute to the angular docs. Likewise, we can see what info we can include from the https://github.com/angular/angular.js/wiki/FAQ - actually, will we have license problems with moving this?
Upcoming events and training courses are the only things that might stay there, although they are probably better organized in a mailing list etc.
We could also close the wiki for participation, freeze the current state and put a big fat disclaimer on the homepage.

I like this idea. I think most of the wiki was written before we started generating guide docs.
We would need to go around the site/web and look for links to these pages.
@Narretz - would you like to put together some PRs?

Hi Narretz and petebacondarwin,
I would like to help with this 'fix'.  I'm new to angularJS and somewhat new to GitHub.
I'm thinking, I can put a couple of hours a week into the effort.
Please let me know - how to get started.

@cayuseDev - that is great news.
First, please sign the CLA: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#cla
Then have a read through the rest of that CONTRIBUTING document.
You will need to clone the repository and setup the environment
git clone https://github.com/angular/angular.js
yarn install

Then you can build and host the documentation via
yarn run grunt -- package webserver

Finally the place where the documentation needs to go is in the guide, or maybe misc, folders:
https://github.com/angular/angular.js/tree/master/docs/content
Let us know if you need any help.


Feat: added kubernete secrets

added kubernetes deployment file using secrets
Issue #120

@krol3
should we use it as default example?

To create the secret we dont need to update the yaml:
kubectl create secret generic db-user-pass \
  --from-literal=username=devuser \
  --from-literal=password='xxxx'

The username in the email could be different from the Service now, and in the other outputs samples.

closing in favour of #227


Update scala-library to 2.12.16

Updates org.scala-lang:scala-library from 2.12.15 to 2.12.16.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang", artifactId = "scala-library" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "org.scala-lang", artifactId = "scala-library" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Waiting for #58, as Scoverage 1.x will not see new releases

@scala-steward I wonder, why this PR isn't rebased?

Superseded by #69


Select a UI framework (by March 6)

Because we want it to be easy for people to jump in and contribute, we’d like to re-style the UI on a well-documented CSS framework. We also want to do this very soon, so can all get moving on making improvements! I’m posting this issue so we can put up options and discuss pros and cons, then come to a decision on Monday, 6th of March.
Here are our main requirements:

have good documentation
minimal styling
ideally postcss based

Let’s get some suggestions up and discuss!

Just want to throw out tachyon as an option http://tachyons.io. It is used in the TodoMVC pretty heavily and Algolia's site. http://tachyons.io/components/

I occurs to me, does it matter what CSS pre/post-processor the framework uses if we just include their minified CSS and then process our own additional CSS however we like? Do we plan to make direct changes to the framework itself?

@verythorough I'm not as familiar with PostCSS as other preprocessors, but in when using other proprocessors you'd want to be working with the uncompiled version - it gives your CSS access to functions and definitions from the framework's source that aren't available in the minified CSS code.
If that doesn't apply to PostCSS, I can't see a reason why not to use the minified CSS. If it does apply, I'd definitely recommend using the source code of whatever framework we use.

Ah, of course, that makes sense. I'm also not familiar with PostCSS yet, so don't know if it's different in that way.

I'm not familiar with tachyon but, after a quick look at their documentation, if making a link look like a button requires adding f6 link dim br1 ph3 pv2 mb2 dib white bg-navy, that would tie the components too much to the styling, imo.
Maybe something a bit more "styled", like Foundation (but not as heavy as Bootstrap) might serve us better.

Disclaimer: I haven't used the very newest version of Foundation, but I have used several others extensively and the changes don't look transformative from what I can see.
Modern Foundation has very opinionated tooling (their docs assume you use their CLI tool) with poor support for doing it another way, in my experience. It's also not much lighter than Bootstrap - I wouldn't describe it as "lighter" so much as "less complete" - it's still 60-200kb depending on your package. Its typography is fairly poor IMO (why are all the headers so enormous?) and its grid system adds pretty little if you're already using Flexbox. It has a number of JS components that won't mesh well with the React codebase which we'd have to strop out, and is in general more designed for sites (which benefit from styling rules having large scope) than apps (whose main CSS concern is generally isolating components from each other). Finally, it uses SASS, not PostCSS (idk how tied we are to PostCSS, but that was the preference expressed the topic) - being SASS, it's globally scoped, so you have to name everything uniquely.
Foundation is at best a slightly better/smaller Bootstrap, in my opinion, and I don't think either of those frameworks are appropriate for this project. I'd rather find something with the following properties:

Fairly minimal
Mostly or exclusively used at compile-time (that is, it doesn't have a bunch of boilerplate CSS - ideally, if you use none of its components, it should not add anything).
Either a very simple grid system or delegates grid layout entirely to flexbox/calc.
Uses PostCSS so we get the major advantage of automatically restricted scope.

What do you guys think about those guidelines?

Totally agree with you, Benaiah, on using Foundation. By "heavy" I meant more from a design point of view than from a file weight point of view – it's easier to override Foundation styles that Bootstrap styles. But I would very very much like to find a lighter alternative, in every way.

@benaiah, I think those are all good points. Now we have to see if we can find such a thing!
One thing I also wonder is if we should look at React component libraries, or really just a super-focused CSS-only framework.

Here are a few component libraries I've come across:

http://react.semantic-ui.com/
http://blueprintjs.com/
http://elemental-ui.com/
http://jxnblk.com/rebass/

The first three use LESS, and the last uses inline CSS. Elemental UI says they're transitioning toward inline. Inline would certainly meet the "exclusively used at compile time" preference, but I'm still not totally sold on the whole JS-makes-inline-styles thing.
On the flipside, for a tiny CSS-only framework, there's https://www.cutestrap.com/. It leverages flexbox for grids and is very simple and small, but not exactly feature-rich.

It seems that a very small, very simple CSS framework may be the way to go, giving some easy building blocks with good docs, without limiting future development too much. Here are a few we've found:

https://picnicss.com
https://purecss.io
http://getskeleton.com/

Hi I was invited to this conversation as I'm looking for ways to contribute to Netlify CMS.
I definitely agree with the above about Bootstrap and Foundation. When working with either of them I found myself rewriting a lot of the default styles. So I think it's worth considering how much custom UI styles are going to be written anyway and how much should a framework already come with.
If you use postCSS, preCSS, SASS etc. and have access to variables and mixins it might even be an option not to use any framework at all. Maybe worth a thought.
If you like the minimal approach but don't want to go all Vanilla, Suit CSS might be an interesting option. It offers a library of helper classes, called utilities which handle lots of common cases such as flexbox. The downside of the utilities is similar to Tachyons as it might result in an HTML element having lots of classes.
Other interesting options:

I've heard very good things about pure.css (as mentioned by @verythorough)
I like the simple look and feel of milligram and how small it is!

Personally, I'm very hesitant of relying on JS to handle my CSS (but this might just be because I miss the good old days when Web Development was simple). But I see that there are huge benefits and very good arguments! For example the size of the framework doesn't matter as you only import what's needed. Also, you save a lot of energy writing very specific CSS as it's probably covered by the framework.
Semantic UI (as suggested by @verythorough) appears to have good theming options and looks pretty nice.
Personally I like the Material Design but that's obviously extremely opinionated in terms of design and doesn't fit to every project.
Ok that was a lot but maybe it helps?

@jimbroski, thanks of the great write up!
One of the problems I see in the current UI is the lack of design direction.  Like you very well point out

it's worth considering how much custom UI styles are going to be written anyway and how much should a framework already come with

The minimal approach would be great if we had a design style guide to build on. I believe that's the desired ultimate goal –to be able to have a custom-design UI– but that'll obviously take quite some time and effort.
So the more impending issue I see is how to fix the currently very rough UI in a short time, without creating such a tight coupling with the UI framework that it'll be impossible to change later.
Maybe that discussion should go in a separate issue?

I second Tachyons, mentioned above. I think it's particularly well suited to an environment with multiple contributors.

Thanks for all of the discussion!
As it turns out, on March 6, we received a new deadline from a content partner that puts Netlify CMS in a very much wider release on Wednesday, March 16. With this short timeframe, we're thinking it's better to make some very simple style improvements for now, and re-visit the possibility of a custom style guide in later weeks.
If you're curious about what we're hoping to achieve and areas where you can help, check out the project board.


Added Sprint 1 project details.

Sorry I didn't realize that this PL was for the main repo, not the one that I forked. :(


@juliemr : Please help me in setting up AutoIT with protractor for Uploading file

WinWaitActive("Open")
Sleep(1000)
Send("C:\test data\sampleIne\positions_ineMec.csv")
Send("{ENTER}")


Factor various things out of the app delegate.

This is mostly just factoring and adding some tests. Right now the code has a lot of circular dependencies and so I'm starting an organizational effort by breaking them apart.  There's no reason most of this stuff needs to live in a central location like the app delegate. There will be more where this comes from to finish breaking much of the global state of there.

@rohan-dhamal-clarice @jotiram @abhra-clarice please review
cc @nasthagiri


AllowNull(false) on foreign key

Hi
if I have two models
@Table({timestamps: true, tableName: 'patient'})
export class Patient extends Model<Patient> {
    @PrimaryKey
    @AutoIncrement
    @Column({primaryKey: true})
    public patientId: number;
    @AllowNull(false)
    @Column
    public firstName: string;
    @AllowNull(false)
    @Column({type: DataType.ENUM, values: ['id', 'passport']})
    public idType: string;
    @AllowNull(false)
    @Column
    public id: string;
    @Column
    public lastName: string;
    @ForeignKey(() => Clinic)
    public clinicId: Clinic;
}

@Table({timestamps: true, tableName: 'clinic'})
export class Clinic extends Model<Clinic> {
    @PrimaryKey
    @AutoIncrement
    @ForeignKey(() => Patient)
    @Column({primaryKey: true})
    public clinicId: number;
    @Column
    public name: string;
    @Column
    public phone: string;
    @BelongsToMany(() => Doctor, () => DoctorClinic)
    public doctors: Doctor[];
    @HasMany(() => Patient)
    public patients?: Patient[];

}

if I try to set @AllowNull(false) on
@ForeignKey(() => Clinic)
    public clinicId: Clinic;

in order to constraint the creation of a Patient only wiht clinic I get
throw new Error("@Column annotation is missing for "" + propertyName + "" of class "" + target.constructor.name + """ +
^
Error: @Column annotation is missing for "clinicId" of class "Patient" or annotation order is wrong.
in sequalize I could set {allowNull: false} on the foreign key itself - what is the correct way to do it in Sequalize-Typescript?

Hey @dkuida, to achieve this, you either need to use Column annotation on your foreign key like:
  @AllowNull(false)
  @ForeignKey(() => Clinic)
  @Column
  public clinicId: number;

or set allowNull: false on the relation annotation
  @HasMany(() => Patient, {
    foreignKey: {
      allowNull: false
    }
  })
  public patients?: Patient[];

well the first approach is the one I tried fro the start but it returns
@Column annotation is missing for "clinicId" of class "Patient" or annotation order is wrong.
but the second one worked like a charm
thank you


docs($animate): include docs for on, off, enabled and cancel

@matsko - Looks like @gkalpak has given this a good seeing to. Feel free to merge once you've dealt this his comments.

Merged in as https://github.com/angular/angular.js/commit/4d437ba9f7e48b1b2c1ef00958510cc8f1c093b1. Thank you guys.


Add React To A Website Translation

Hey, @arshadkazmi42 I have completed the translation, can you please review the changes.

Thanks @Anishpras
I will get to is ASAP.

Thankyou!

Thanks @Anishpras
I will get to is ASAP.

@arshadkazmi42 Can I translate other pages while you review or should I wait for this PR to be merged?

@Anishpras
Lets get this PR merged first, as sometimes we get overwhelmed by too many pending PRs :P

@arshadkazmi42 Okay sure. Thank you 😊.

@arshadkazmi42  I have changed as you requested and replaced a few common words. Thank you for your valuable feedback.

@Anishpras thank you for quickly working on this.
I think you missed comments added on line 13 you can find those at this link https://github.com/reactjs/hi.reactjs.org/pull/172/files#r780633931
There are 3 comments on that line. Can we get those also fixed.

@Anishpras thank you for quickly working on this.
I think you missed comments added on line 13 you can find those at this link https://github.com/reactjs/hi.reactjs.org/pull/172/files#r780633931
There are 3 comments on that line. Can we get those also fixed.

@arshadkazmi42  I have fixed those lines.

@arshadkazmi42 I have done till line number 87.

@Anishpras  There was a typo I have unresolved that comment its at line 77 can you check that. गए गए is added two times

@Anishpras There was a typo I have unresolved that comment its at line 77 can you check that. गए गए is added two times

@arshadkazmi42 I have removed the redundant words.

@arshadkazmi42 I have updated till 209.

@Anishpras You missed one and at one line of part got deleted, I have marked those two as unresolved. can you resolved those before continuing further

@arshadkazmi42 Sorry. I have resolved those lines.

@arshadkazmi42 I have done all the changes. Thank you for the wonderful reviews.

Great work. 🎉
All are resolved. Lets get this merged.

@arshadkazmi42 Hurray! Thank you for this seamless review process 🚀.


Bluetooth OTS asserts or fail on runtime depending on configuration options

Describe the bug
Currently OTS code asserts or fails depending on configuration selected in Kconfig.
Eg enabling CONFIG_BT_OTS_OACP_CHECKSUM_SUPPORT results in assert on init for instances that doesn't implement obj_cal_checksum callback.  Similarly bt_ots_obj_add() may fail if added object has unsupported (ie. disabled in Kconfig) feature.
Since Kconfig is global configuration this leads to confusion where multiple OTS instances are created (eg some might be internal like in MCS case) user might not have control over what is implemented/required by OTS instance...
Either optional features should be made mandatory (ie no kconfig option to disable or always require to implement all callbacks) or some runtime disablement (eg masking out disabled features) could be added.   Otherwise one may end up in case where is it impossible to use multiple OTS instances with contradicting features enabled.
note: There are also few other issues with OTS  API (ie no userdata for callbacks) so maybe this issue should cover more overhaul as enhancement instead of bug?

CC @sjanc @Thalley @joerchan @asbjornsabo

Looking a bit more into this, this is not a bug, but a (poor) design choice. Checksum, like supporting object creation, deletion, etc. is per the spec an optional feature

It gets a bit more complicated than that, since the only way an OTS instance can have any object is by creating them, and thus the creation and deletion of objects as local operations are mandatory, similar to read and write.
So while
	__ASSERT(ots_init->cb->obj_created,
		 "Callback for object creation is not set");
	__ASSERT(ots_init->cb->obj_deleted ||
		 !BT_OTS_OACP_GET_FEAT_CREATE(ots_init->features.oacp),
		 "Callback for object deletion is not set and object creation is enabled");
#if defined(CONFIG_BT_OTS_OACP_CHECKSUM_SUPPORT)
	__ASSERT(ots_init->cb->obj_cal_checksum,
		 "Callback for object calculate checksum is not set");
#endif
	__ASSERT(ots_init->cb->obj_read ||
		 !BT_OTS_OACP_GET_FEAT_READ(ots_init->features.oacp),
		 "Callback for object reading is not set");
	__ASSERT(ots_init->cb->obj_write ||
		 !BT_OTS_OACP_GET_FEAT_WRITE(ots_init->features.oacp),
		 "Callback for object write is not set");

Makes sense in terms of the OACP (remote procedures), we probably shouldn't treat Checksum similar to the others, as we treat local and remote procedure the same.
I'll create a PR to optionally support these callbacks, but for all them so they are continued to be treated similar.

Looked further into it, and think I found the issue. The checks for callbacks should be conditional on the ots_init->features.oacp which weren't properly done. The callbacks are actually checked to be non-NULL before calling them, so they are allowed to be NULL.


Fixing Sound Glitch by Padding Numpy Array for Sound Play

I want to transition a morse code generator that  works using pygame sndarray to using sounddevice play.  However sd.play is clipping or glitching the end of the letter sounds often making dahs sound like dits.  Based on earlier comments about glitches I am pretty sure the problem is a mismatch between the length of the Numpy array and the buffer size for Sd.play.  Sd.play did not seem to have a buffer clear command that I could use so sometimes the buffer appears to be carried over to next letter.  The code uses a dictionary to convert letters to the the morse code dit and dah pattern.  That pattern as shown below is built into a letter numpy array.   This is done by merging numpy arrays containing sine wave data of the appropriate length for the dit, dah, and spaces for a desired letter,  given a tone frequency and sound card sampling rate. There are many examples for doing this on github.   In pygame the numpy letter was sent to pygame.sndarray.make.sound  before playing and that worked but sending the letter arrary directly to sd.play{} is not reliable.
I think I need to pad or vary the numpy array size to match what sd.play wants.  I can do this by padding the intraspace delays but I am not sure how to calculate and hope one of you experts can advise.
[sd_play_morse_glitches.zip](https://github.com/spatialaudio/python-sounddevice/files/5251058/sd_play_morse_glitches.zip
So how do I convert a Numpy arrary to a perfect match for sd.play?

Can you please paste the contents of the linked file as a comment (with proper formatting)?
See also https://python-sounddevice.readthedocs.io/en/0.4.0/CONTRIBUTING.html#reporting-problems.
Not having looked at the code, it might also be interesting to see your list of devices and it might be interesting to try different host APIs to see whether the glitches appear in all of them.

The following is playing wrong, more so on the Windows machine than the Raspberry Pi.  I am developing code on both a raspberry pi 4 and a win10 computer.  The latter is running anaconda and spyder.  The device list on the Windows machine looks like this.  I sometimes add a USB sound device which is required to add a microphone input on the Pi.  Output is generally with the HDMI connected Samsung monitor but the clip problem occurs with the other output options.  The word "Hello" or "50" is good for a test.
0 Microsoft Sound Mapper - Output, MME (0 in, 2 out)
<  1 1 - SAMSUNG (AMD High Definitio, MME (0 in, 2 out)
2 Digital Audio (S/PDIF) (High De, MME (0 in, 2 out)
3 Headphones (High Definition Aud, MME (0 in, 2 out)
4 Primary Sound Driver, Windows DirectSound (0 in, 2 out)
5 1 - SAMSUNG (AMD High Definition Audio Device), Windows DirectSound (0 in, 2 out)
6 Digital Audio (S/PDIF) (High Definition Audio Device), Windows DirectSound (0 in, 2 out)
7 Headphones (High Definition Audio Device), Windows DirectSound (0 in, 2 out)
8 Digital Audio (S/PDIF) (High Definition Audio Device), Windows WASAPI (0 in, 2 out)
9 1 - SAMSUNG (AMD High Definition Audio Device), Windows WASAPI (0 in, 2 out)
10 Headphones (High Definition Audio Device), Windows WASAPI (0 in, 2 out)
11 SPDIF Out (HD Audio SPDIF out), Windows WDM-KS (0 in, 2 out)
12 Microphone (HD Audio Microphone), Windows WDM-KS (2 in, 0 out)
13 Headphones (HD Audio Headphone), Windows WDM-KS (0 in, 2 out)
14 Output (AMD HD Audio HDMI out #0), Windows WDM-KS (0 in, 2 out)
-- coding: utf-8 --
"""
Created on Tue Sep 15 18:31:57 2020
The Coded is GNU license 3 with no warranty implied. Use at own risk.
@author: waszee
"""
import sounddevice as sd
import sys
import numpy as np
import time
#from time import sleep
#import matplotlib.pyplot as plt
CODE = {'A': '.-',     'B': '-...',   'C': '-.-.',
'D': '-..',    'E': '.',      'F': '..-.',
'G': '--.',    'H': '....',   'I': '..',
'J': '.---',   'K': '-.-',    'L': '.-..',
'M': '--',     'N': '-.',     'O': '---',
'P': '.--.',   'Q': '--.-',   'R': '.-.',
'S': '...',    'T': '-',      'U': '..-',
'V': '...-',   'W': '.--',    'X': '-..-',
'Y': '-.--',   'Z': '--..',
    '0': '-----',  '1': '.----',  '2': '..---',
    '3': '...--',  '4': '....-',  '5': '.....',
    '6': '-....',  '7': '--...',  '8': '---..',
    '9': '----.',

    ',':'--..--',  '.':'.-.-.-',  '?':'..--..',
    '/':'-..-.',   '-':'-....-',  '!':'-.-.--',
    '(':'-.--.',   ')':'-.--.-',  '&':'.-....',
    ':':'---...',  ';':'-.-.-.',  '=':'-...-',
    '+':'.-.-.',   '_':'..--.-',  '"':'.-..-.',
    '$':'...-..-', '@':'.--.-.',

    '<':'.-...',  '>':'.-.-.',
    '%':'...-.-',
    '{':'....--',  '}':'...-.',

    "'":'.----.',

    '\n':'-...-.-', #line feed = <BK>  same as \x0a

    '\u00c4':'.-.-', #a umlat
    '\u00d6':'---.', #o umlat
    '\u00dc':'..--', #u umlat
    '\u03b2':'...--..', # beta
    }

def verify(string):
keys = CODE.keys()
for char in string:
if char.upper() not in keys and char != ' ':
sys.exit('Error - a character ' + char + ' in the msg cannot be translated to Morse Code')
def beat(tlen,samrate,tone):
t = np.arange(0,tlen,1/samrate)
asnd = 0.4 * np.sin(2np.pitonet)   # 0.5 is arbitrary to avoid clipping sound card DAC
asnd  = (asnd32768).astype(np.int16)
return asnd
def main():
samrate = 44100 # audio sampling rate
T = 0.06 # .08=10wpm, 0.07=14wpm. 0.06=17wpm, 0.05=20 wpm,
T3 = 3*T #
#farn=1.0 #  a modifier like Farnsworth  to lengthen space between sounds or letters
tone = 750 # audio tone freq
sd.default.samplerate = samrate
sd.default.channels = 1
sd.default.dtype = np.int16

#pygame.mixer.pre_init(samrate, size=-16, channels=1)
#pygame.mixer.init()
#pygame.init()

#createHi  dit, day and intraspace as numpy array values
dit = beat(T,samrate,tone)
dah = beat(T*3,samrate,tone)
space = np.zeros(dit.size,np.int16)
print ('Welcome to Python Code Out ver 0.2\n')
print('Types exit to exit message loop or ^C to abort')
try:

    while True:

        msg = input('Enter Message: ')

        verify(msg)
        print ()

        if msg == 'exit': break
        for char in msg:
            if char == ' ':
                    print (' '*7)
                    time.sleep(T*7) #word space delay
            else:
                print (char + ' ' + CODE[char.upper()])
                c=space
                for char in CODE[char.upper()]:

                    if char == '.':
                        b=dit
                    else:
                        b=dah
                    c = np.concatenate((c,space,b))

                sd.play(c, blocking = True)

            time.sleep(T3)
                #pygame.time.wait(int(T3*1000)) #ketter spacing interval

except KeyboardInterrupt:
    print('interupt by keyboard control c detected')

except Exception as e:
    print('Exception: ' and e)

print ('\n\nGoodbye!')

if name == "main":
main()

Matthias,
Hope you can take a look at the code.  I updated the post.  The direct cut and paste resulted in some form of auto clustering but I think should be easy to correct if someone wants to download.  I can send more details including sound capture or the pygame version if needed but was trying to keep post reasonable.
Thanks,
Bill Spencer, [posted as waszee]
Aiken, SC
From: Matthias Geier<EMAIL_ADDRESS>Sent: Wednesday, September 23, 2020 6:41 AM
To: spatialaudio/python-sounddevice<EMAIL_ADDRESS>Cc: waszee<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [spatialaudio/python-sounddevice] Fixing Sound Glitch by Padding Numpy Array for Sound Play (#282)
Can you please paste the contents of the linked file as a comment (with proper formatting)?
See also https://python-sounddevice.readthedocs.io/en/0.4.0/CONTRIBUTING.html#reporting-problems.
Not having looked at the code, it might also be interesting to see your list of devices and it might be interesting to try different host APIs to see whether the glitches appear in all of them.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/spatialaudio/python-sounddevice/issues/282#issuecomment-697282374, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARAKYG44E2LTLHL4R26WNBLSHHGDHANCNFSM4RTLQLNA.

I updated the post.

Thanks, it is still not quite readable.

The direct cut and paste resulted in some form of auto clustering but I think should be easy to correct if someone wants to download.

You should correct that.
Can you try to insert ``` in a separate line before and after each code (and terminal output) block?
An example is shown in https://python-sounddevice.readthedocs.io/en/0.4.0/CONTRIBUTING.html#reporting-problems.

I can send more details including sound capture or the pygame version if needed but was trying to keep post reasonable.

If you think there are too many details, you can hide them with the <details> tag, which is also explained in https://python-sounddevice.readthedocs.io/en/0.4.0/CONTRIBUTING.html#reporting-problems.

I still didn't really look at your code, but I've seen that you use sd.play(). As mentioned in the docs, this is a simple convenience function which might not be suitable for more complicated use cases.
I think your example is such a case where it is not suitable.
Apart from the glitches, I guess the timing of the dits and dahs is also not great, right?
It would be better to only use one "stream" object which is started in the beginning, kept open for the whole transmission and then closed in the end.
I normally like to implement such things with a callback function, but this Morse code application could probably be implemented more easily using the so-called "blocking" API. This should allow you to keep the stream active and at the same time get exact timing between the dits and dahs.

Matthias,
Thank you for the advice. I will look into the blocking API and have been studying your callback methods.
I have another need for your advice.  I am not sure how to post or if should.  I have been trying to run your “plotinput.py” script, which you have posted as an example.  The program runs fine on my raspberry Pi 4 except I had to change the download interval from 30 to about 50 to prevent overloading and plot spikes but program ran as expected. However, on my Windows 10 system with Anaconda and Spyder(Python 3.8) I am having serious trouble.  I actually got program to run twice and partially with a quick freeze up using a stepwise debug but most times nothing is captured.  There appears to be two problems which might be related but I don’t think so.
First, with the arg.channels error check statement, I get a startup failure that c must be >=1.   However the windows version seems to be messing up the parser arg somehow.  All of the other values  are as expected but the channels args are messing up.  Actually I see nothing wrong in your program….
<EMAIL_ADDRESS>The second problem occurs if I simply comment out the check channels query as I know the default is okay.  I let the program run
#if any(c < 1 for c in args.channels):
parser.error('argument CHANNEL: must be >= 1')
I then get the Figure 1 to pop-up and no error messages, but the figure does not show captured data and does not roll or update.  Program just stops.
<EMAIL_ADDRESS>If I run in debug mode and put a halt at the plt.show() statement then some data is captured but if I drop the debug halt the program again fails.  I have tried to change the queue.Empty exception to wait till something in the queue, but that did not work for me.  Please let me know if you have suggestions.  The program runs fine on the Raspian 64 linux that I run.  Your record to file demo program also works in Windoews.
<EMAIL_ADDRESS>Thanks for the support,
Bill, waszee,

Matthias - thank you for the comments.  I hope this feedback helps makes your module better.  I hope to use especially for input capturing - thanks for the product...
FYI - I modified my script to ramp the sound pulses up and down for dits and dahs and that greatly improved the output sound.  I also modified the code to round the numpy arrays to the nearest multiple of 1024 for each letter.  That did not seem to help.  I posted a version of the code using the pygame module on Github  search waszee/SignalStudies_RF repository.  After the improvements SndPlay handled individual code letters fine but code sequence such as "gfd"  or "abc" resulted in some of the letter dits being skipped or a dah possibly being clipped to a dit.  This occurred sometimes in the middle of the sound.  I suspect I might get this to work using the callback approach as you suggest  but will need to study that more.  I have made enough progress to move on. to other aspects of my study.  I will drop out for now.

Matthias,
Quick  question – I suspect this is an obvious issue to you but it tripped a newbie like me.
I was cutting and pasting from your program examples for Sounddevice and encountered an issue. I get a  PortAudio error with the inputstream  “channel” specification. It occurs on both a raspberry pi and in Anaconda Spyder on a Windows machine.
I found I needed to use:
InputStream(…,  channels = args.channels, ….) where args.channels  =1 or defaulted to 1 in the arguments.  It works.
But,  if I tried to set channels directly, that is :
inputStream(….., channels = 1, …..) the program crashes.  On the raspberry I get a PortAudio error.  Program freezes on Anaconda.
All of the other stream variables seem to allow a direct integer as input, for example sample_rate=44100 is okay. What is different about channels?  Is this a numpy dimension thing or something about what is expected in your call.
Bill Spencer
Aiken, SC
ectly, view it on GitHubhttps://github.com/spatialaudio/python-sounddevice/issues/282#issuecomment-699513499, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARAKYG7CVFNOKP3YI4MJN5TSHYFMHANCNFSM4RTLQLNA.

There should be nothing special about channels, the problem is nearly certainly something else.
Please provide a minimal reproducible example, ideally in a new issue, see also https://python-sounddevice.readthedocs.io/en/0.4.1/CONTRIBUTING.html#reporting-problems.

Thanks for quick response.  I did fix some other stuff and can no longer reproduce on my Pi.  Will post if see again.
FYI  I loaded a script that uses sounddevice to display an audio spectrogram on waszee SignalStudies_RF.  The program is cw_spectrogram_v2_snddev.  It plots input audio signals [in my case morse code from a radio] providing realtime display of the input freq domain as well as secondary plot of the spectrogram over 30 seconds.  I did have to play with the blocksize some but basically followed some previously posted code using pyaudio.  Still a work in progress but starting to work.  Used a class structure this time which might be of interest to some other newbies.
Bill
From: Matthias Geier<EMAIL_ADDRESS>Sent: Thursday, October 15, 2020 1:56 PM
To: spatialaudio/python-sounddevice<EMAIL_ADDRESS>Cc: waszee<EMAIL_ADDRESS>State change<EMAIL_ADDRESS>Subject: Re: [spatialaudio/python-sounddevice] Fixing Sound Glitch by Padding Numpy Array for Sound Play (#282)
There should be nothing special about channels, the problem is nearly certainly something else.
Please provide a minimal reproducible example, ideally in a new issue, see also https://python-sounddevice.readthedocs.io/en/0.4.1/CONTRIBUTING.html#reporting-problems.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHubhttps://github.com/spatialaudio/python-sounddevice/issues/282#issuecomment-709492155, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARAKYG5USZNYTQHAYYXJOV3SK4ZRNANCNFSM4RTLQLNA.

Here a clickable link: https://github.com/waszee/SignalStudies_RF

Thanks I was wondering about how I should do that.   Will use the link reference.
FYI I decided to try the script on a Ubuntu laptop system this morning.  I installed PyCharm CE as the IDE.  The debugger is much better than the Thonny I was using on the raspberry pi and I was able to figure out how I likely messed up the channel number in my previous question to you.  I had changed a datatype that was expected to be a str to a short [int16] and everything was shifting two bytes on me.
I decided to load PyCharm on my windows machine and some problems I had with Anaconda Spyder seem less of a problem and version control and formatting should get better.  Working on trying to make sliding images inside a window and scaling versus the FFT window and the sampling rate.  It is a somewhat tricky balance but so far your callback and input code is working for me.
Bill [or waszee or KA4ZBN]
From: Matthias Geier<EMAIL_ADDRESS>Sent: Friday, October 16, 2020 12:51 PM
To: spatialaudio/python-sounddevice<EMAIL_ADDRESS>Cc: waszee<EMAIL_ADDRESS>State change<EMAIL_ADDRESS>Subject: Re: [spatialaudio/python-sounddevice] Fixing Sound Glitch by Padding Numpy Array for Sound Play (#282)
Here a clickable link: https://github.com/waszee/SignalStudies_RF
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHubhttps://github.com/spatialaudio/python-sounddevice/issues/282#issuecomment-710213216, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARAKYG34IEJVLSSAU22GRITSLB2Y3ANCNFSM4RTLQLNA.


Fix tscn format not being recongnized by EditorFileSystem

Closes #2947.

@akien-mga, to me the ResourceLoader automatically calls get_recognized_extensions if a empty type is provided:
https://github.com/godotengine/godot/blob/master/core/io/resource_loader.cpp#L67
But the binary and xml loaders check for the empty type manually:
https://github.com/godotengine/godot/blob/master/core/io/resource_format_binary.cpp#L1095
https://github.com/godotengine/godot/blob/master/core/io/resource_format_xml.cpp#L1943
And the EditorFileSystem uses a empty type to get all recognized extensions:
https://github.com/godotengine/godot/blob/master/tools/editor/editor_file_system.cpp#L477

Thanks for the detailed explanation @TheHX, then clearly your change just mimics what the code already does in other places, so it's good to go IMO :)


FieldError, cannot resolve keyword...

Hello,
I used the library in several apps in the same project, working just fine.
I have one problem though with an AutocompleteGenericBase class; I use it on a person application to link to different models (event, course, project, publication...).
Those different models are accessible, but only the latest ones used; when I start to type in the search field, it looks for keyword "t" although I asked for "title". If I ask keyword "name" for example, it tries to look for keyword "n":
"""
FieldError at /autocomplete/AutocompleteTaggableItems/
Cannot resolve keyword 't' into field. Choices are: attachment_set, audio_set, calendars, categories, children, description, exclusions, generators, id, image_set, language, level, lft, location, occurrences, oneliner, parent, relationship_set, rght, season_description, sessions_description, slug, title, tree_id, video_set
"""
Here's my class:
"""
class AutocompleteTaggableItems(autocomplete_light.AutocompleteGenericBase):
choices = (
Event.objects.all(),
Course.objects.all(),
Publication.objects.all(),
Project.objects.all(),
)
search_fields = ("title",)
autocomplete_light.register(AutocompleteTaggableItems)
"""
Do you have an idea why it only takes the first letter of my string?

i use django-autocomplete-light with django-gm2m :
for applying the filter on all the querysets :
qs = qs.filter(EMP-FIRST-NAME__icontain=self.q).
my models have a different fields:
** EMP-FIRST-NAME for models Employees.
** FIRST-NAME for models Freecontracts.
** AG_NAME for models Freeagencies.
** FRE_FIRST_NAME for models Freelancers
how can i do for applying filter for all models (qs)??
** Views.py ** :
class RessourceAutocompleteView(Select2QuerySetSequenceView):
def get_queryset(self):

    employees = Employees.objects.all()
    freecontracts = Frecontract.objects.filter(IS_ACTIVE=True)
    freeagencies = Freagencies.objects.filter(IS_ACTIVE=True)
    freelancers = Freelancers.objects.filter(IS_ACTIVE=True)

    if self.q:
        employees =   Employees.objects.filter(EMP_FIRST_NAME__icontains=self.q)
        freecontracts =    Frecontract.objects.filter(FIRST_NAME__icontains=self.q)
        freeagencies = Freagencies.objects.filter(AG_NAME__icontains=self.q)
        freelancers = Freelancers.objects.filter(FRE_FIRST_NAME__icontains=self.q)

        qs = QuerySetSequence(employees, freecontracts, freeagencies, freelancers)

    if self.q:
        # This would apply the filter on all the querysets
        # this tuple how can i do for apllying filter in all models qs??!!!
        qs = qs.filter(EMP_FIRST_NAME__icontains=self.q)

Can someone help me. please !!!


flexibility in using Helm chart: args, env, probes & better security and namespaces usage

Hi,
I have added more ways to use the chart. Those ways are optional and don't change the way templates are rendered now, except:
this block bellow is added by default on Deployment - it improves security:
          securityContext:
            allowPrivilegeEscalation: false
            capabilities:
              drop:
              - ALL
            privileged: false
            runAsGroup: 1000
            runAsUser: 1000

Also, missing parameters for probes are added.

Let me know, if PR looks good or needs adjustments to be agreed eg not forcing better security in values.yaml file at deployment.securityContext.
I have tested this on cluster.
I would like to add these improvements to be able to use this chart and depend on it. So I hope flexibilities and improvements can help other people too. It would be great to have helm chart released.
Let me know your thoughts and also things I should be aware of.
Thanks

@laimison I released 3.0.6 yesterday https://artifacthub.io/packages/helm/bakito/sealed-secrets-web

@bakito perfect, thank you!


Write operations have side effects that are not apparent to users

Describe the bug
I’ve noticed that write operations like put_with_options can panic, but it’s not really apparent to users. One of Rust’s benefits are the safety guarantees that the language provides. However, by allowing certain operations to panic, SlateDb is kinda not providing those guarantees.
I think it might be worth considering having a strong bias towards being more idiomatic, returning errors, and preventing processes from panicking.
To Reproduce
For example, if you try to write an entry with an empty key, the process will panic.
Expected behavior
I would expect write operations to return results with errors when an operation cannot be completed for any kind of internal invariant.
If this is something that people want to address, I can take a stab at it.

Yes, I believe the panics are there right now because we haven't exposed SlateDbErrors to the end user yet. I think the intent was to fix this as part of #111. It's been several weeks since @palash25 has engaged with that issue. Do you want to take a crack at it?

(I'm going to close this as a dupe of #111. @calavera LMK if you want me to assign #111 to you.)

Yes please go ahead I wasn't able to find time to wrap it up. I will pick some other issue later.


Cannot purchase .38 Special speedloader

Summary
I cannot buy a .38 Special speedloader from either the Magazine Panel or the Ammo Panel in Supply Raid v1.1.0.
Steps to reproduce

Start a SR game using Picatinny Pierre, enable the Item Spawner, leave all other settings as default.
Use the Item Spawner to spawn a Rhino 20 and a Detective Special 38.
In the game, place the Rhino 20 on the Ammo Panel and buy a speedloader. A speedloader will appear.
Now remove the Rhino and place the Detective Special 38 on the Ammo Panel and buy a speedloader. No speedloader appears.
Also note that for both revolvers, even though the Magazine Panel shows a tick mark for "Purchase New Mag", no speedloader can be purchased for either gun here.

I'll investigate when I do more panel updates in the near future, its likely to do with the tagging of items on the weapon. Sometimes Anton has forgotten to tag things completely or incorrectly causing the weapon to have no 'ammo' for it. Alternatively I will be looking at improving how this data is interpreted when looking for valid ammo to spawn.

This does seem to be related to other problems that H3 has with the .38 speedloaders in general. For example, I found that I couldn't reload the speedloader with loose .38 cartridges.

After looking closer Anton forgot to include the speedloader in the meta data for the weapon, I have however reworked it to better handle all speed loaders.