Truncate global audio text to two lines

Fixes

Related to #758 by @panchovm
Description

Truncates the global audio player title to two lines and adds spacing between the title and close buttons.
This doesn't fix the 'back to top' button.
Testing Instructions

Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the default branch of the repository (main) or a parent feature branch.
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[ ] I added or updated tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

The mockup was initially in one row, but it looks good in two rows. Nonetheless, the text alignment is slightly downwards and its width overlaps the close button area. Closing the player does not work properly, but that might be for a new issue.

@panchovm There's a new issue to fix the close behavior #775, and I actually saw the two lines used in Figma!

@panchovm I did just fix the text vertical alignment, however! It does look much nicer:


Converting BIB {{title}} generates "[title]{.nocase}" in JSON, but it gets passed to output

My reference manager generates BIB files that "protect" the titlecase like so:
title = {{Piercing of Consciousness as a Threshold-Crossing Operation}},

If I use pandoc-citeproc -j to convert the BIB to JSON, I get this:
"title": "[Piercing of Consciousness as a Threshold-Crossing Operation]{.nocase}",

When I generate a bibliography using the JSON, then I get the [...]{.nocase} being passed into the final bibliography text. I've always used BIB with pandoc-citeproc but it is >3X slower so have just switched to JSON. Not sure where the problem is (should citeproc handle this?), or whether I should just preparse the BIB to remove the {{ … }} case protection before generating the JSON?

Perhaps we could have pandoc-citeproc strip the "nocase"
Span from the final output, where it's not necessary.

As a matter of principle, I think we should follow both the official CSL specs and additional de facto standards, most importantly those introduced by citeproc-js.
This means we should refrain from using
"title": "[Piercing of Consciousness as a Threshold-Crossing Operation]{.nocase}",
when generating CSL JSON and CSL YAML, in favour of
"title": "Piercing of Consciousness as a Threshold-Crossing Operation",
– or else, amongst others, Zotero won’t be able to import and citeproc-js won’t be able to parse such data.
That being said, I doubt whether it’s such a good idea to routinely wrap whole fields in nocase spans – but that’s a problem of the OP’s unnamed “My reference manager”.

+++ Nick Bart [Sep 13 17 09:04 ]:

As a matter of principle, I think we should follow both the [1]official
CSL specs and additional de facto standards, most importantly those
introduced by [2]citeproc-js.
This means we should refrain from using
"title": "[Piercing of Consciousness as a Threshold-Crossing
Operation]{.nocase}",
when generating CSL JSON and CSL YAML, in favour of
"title": "Piercing of Consciousness as a
Threshold-Crossing Operation",

Agreed. This would only require disabling a pandoc markdown option
when generating these things.

I've changed things so that bracketd spans are never used.
ALso, we shouldn't be getting  tags in the final bibliography output.  I couldn't reproduce that part of the report; maybe this has been fixed in later versions?  I'll close this, but feel free to submit a new bug report with detailed instructions for reproducing the problem, if there is an issue.

Actually my reference manager (Bookends for macOS) doesn't protect the title by default on export to BibTeX. But I do use a post-processing script as I've not quite managed to ever get CSL styles to do what I want and don't have much time to invest in trying to understand the CSL standard. I have a set of domain specific scientific terms whose case should not be changed, and I do not want to introduce CSL specific hacks like HTML spans into the reference database itself, only the JSON file used for citeproc. Any advice welcome.
Anyway, thanks Jon for fixing this issue!

Any advice welcome.

I don’t know whether Bookends provides any mechanism for that, but if you can get it to wrap just the “domain specific scientific terms whose case should not be changed” in a pair of curly braces for bib(la)tex output (e.g., A Short History of {Homo sapiens}), or … for CSL JSON output (e.g., A short history of Homo sapiens), that’d be much better in terms of flexibility, i.e., allowing you to correctly format the output for both sentence-case and title-case styles without having to change the biblio data. (Note, however, that in the biblio source, bib(la)tex titles need to appear in title case and CSL JSON titles in sentence case for this to work.)

@njbart many thanks for this. I've written a ruby script to protect just keywords in the BibTeX intermediate file.
So in my workflow of Bookends > BibTeX intermediate > JSON > pandoc-citeproc, I should try to ensure my source Bookends titles are sentence case if my final output will always go through pandoc-citeproc? Or does BibTeX > JSON convert from title to sentence case, in which case my source should be title case?

Or does BibTeX > JSON convert from title to sentence case, in which case my source should be title case?

If Bookends does not provide options for case conversion (Zotero, e.g., does not either, but its BBT addon does), and if the workflow you describe is the only one you are planning to use, I’d say yes.
pandoc-citeproc -j does indeed convert bib(la)tex titles from title case to sentence case (see the man page).
If you are planning to use other workflows as well that would require titles in Bookends to be entered in sentence case, I’d be more hesitant. In this case, some biblatex/biber trickery might do the trick, see, e.g., here.

Bookends does allow transformation of case for titles on export. But because some of my terms like alpha should be guarded in some titles but not others I have another layer of complexity. I tend to manually title case in Bookends, and set specific case for some terms (ALPHA vs. Alpha), then when generating the BibTeX I tell bookends to preserve the case as saved in the database.
You've been super helpful, thank you!


Idea: Implement a web-based project that uses DI with the LogAnalyticsClient to verify the e2e workflow, and enhance readme.

To ensure the full circle works for the LogAnalyticsClient, a simple web-based default project that injects the LogAnalyticsClient based on IConfiguration values would be helpful.
This could also be the base for an enhanced readme experience, explaining how to make use of the LogAnalyticsClient in various scenarios.

Great!
I would probably put the structure next to the original source folder, decoupled from the core solution.
This way, the example project(s) can reference the latest published NuGet instead of being directly referenced.
Perhaps a folder named LogAnalytics.Client.Examples in the repo root folder. Examples:

LogAnalytics.Client.Examples\BlazorDemo
LogAnalytics.Client.Examples\ApiDemo
LogAnalytics.Client.Examples\ConsoleAppDemo
etc.

Does this https://github.com/skalahonza/LogAnalytics.Client/blob/samples/LogAnalytics.Client.Examples/ConsoleAppDemo/Program.cs look ok?

Looks great. Thanks!
If possible, let's add a few comments to each of the steps and then we can extract that into an enhanced Readme later, too!

Fixed with #32 by @skalahonza


Storing Vectors in MongoDbAtlasVectorStoreDriver won't return results

[X] I have read and agree to the contributing guidelines.

Describe the bug
If you upsert text-artifacts as vectors instead with a LocalVectorStorageDriver into a MongoDbAtlasVectorStoreDriver, no questions will be answered.
You'll see the vectors corresponding in the MongoDB database (so, the connection is OK and the storing-procedure is fine) but equal queries will be empty, no matter if you use the Chat-class or the agent itself.
To Reproduce
from griptape.drivers import MongoDbAtlasVectorStoreDriver, OpenAiEmbeddingDriver
from griptape.loaders import WebLoader
import os

# Initialize an embedding driver
embedding_driver = OpenAiEmbeddingDriver(api_key=os.getenv("OPENAI_API_KEY"))

# Initialize the vector store driver
vector_store = MongoDbAtlasVectorStoreDriver(
    connection_string="mongodb+srv://########.mongodb.net/?retryWrites=true&w=majority",
    database_name="test-db",
    collection_name="vector",
    embedding_driver=embedding_driver,
)

# Load artifacts from the web
artifacts = WebLoader(max_tokens=200).load("https://www.griptape.ai")

# Upsert the artifacts into the vector store
vector_store.upsert_text_artifacts(
    {
        "griptape": artifacts,
    }
)

engine.vector_store_driver.load_entries()
result = vector_store.query(query="what is griptape?")
print(result)

The printed result will be an empty array.
If you exchange the MongoDbAtlasVectorStoreDriver with a LocalVectorStoreDriver, you'll get correct results for your query.
Expected behavior
Same results of query independently, which vector-store is used.
Additional context
You can use any tutorial/example in the Griptape-Docs, no matter if you search a website or working with the Chat-class, you won't get any results.
I tried to call "vector_store_driver.load_entries()" before the query to ensure, the vectors will be loaded, but this doesn't result in a different behavior.

Hey @schnelldigital, thanks for the issue report! At a glance it looks like it's because you're not specifying the namespace argument to query; it should be set to "griptape". This appears to be an issue in our documentation, we will get that fixed ASAP.

Hey @collindutter. Thanks for your fast reply!
I'll test it as soon as possible. But are you sure, as the Chat-class didn't help as well? Or do we have two separate issues there?

Hey @collindutter - i just tested your advice.
But unfortunately no change in results. Please see the screenshot attached.

hey @vachillo. Thanks for your response.
You mean like this?
from griptape.drivers import MongoDbAtlasVectorStoreDriver, OpenAiEmbeddingDriver
from griptape.loaders import WebLoader
import os

# Initialize an embedding driver
embedding_driver = OpenAiEmbeddingDriver(api_key=os.getenv("OPENAI_API_KEY"))

# Initialize the vector store driver
vector_store = MongoDbAtlasVectorStoreDriver(
    connection_string="mongodb+srv://xxxxxxxxxxxxx",
    database_name="griptape-demo2",
    index_name="vector_index",
    collection_name="vector",
    embedding_driver=embedding_driver,
)

# Load artifacts from the web
artifacts = WebLoader(max_tokens=200).load("https://www.griptape.ai")

# Upsert the artifacts into the vector store
vector_store.upsert_text_artifacts(
    {
        "griptape": artifacts,
    }
)

result = vector_store.query(query="what is griptape?", namespace="griptape")
print(result)

This won't give any results either.

hey @vachillo. Thanks for your response.
You mean like this?
from griptape.drivers import MongoDbAtlasVectorStoreDriver, OpenAiEmbeddingDriver
from griptape.loaders import WebLoader
import os

# Initialize an embedding driver
embedding_driver = OpenAiEmbeddingDriver(api_key=os.getenv("OPENAI_API_KEY"))

# Initialize the vector store driver
vector_store = MongoDbAtlasVectorStoreDriver(
    connection_string="mongodb+srv://xxxxxxxxxxxxx",
    database_name="griptape-demo2",
    index_name="vector_index",
    collection_name="vector",
    embedding_driver=embedding_driver,
)

# Load artifacts from the web
artifacts = WebLoader(max_tokens=200).load("https://www.griptape.ai")

# Upsert the artifacts into the vector store
vector_store.upsert_text_artifacts(
    {
        "griptape": artifacts,
    }
)

result = vector_store.query(query="what is griptape?", namespace="griptape")
print(result)

This won't give any results either.

does the index you specified in index_name exist on the collection? If not, here is the Atlas docs that explain how to create one.

Adding onto this, here is a sample index definition:
{
  "fields": [
    {
      "numDimensions": 1536,
      "path": "vector",
      "similarity": "euclidean",
      "type": "vector"
    },
    {
      "path": "namespace",
      "type": "filter"
    }
  ]
}

That's it. Due to the docs I assumed, that like the collection the Index will be automatically generated.
Maybe that's a task for an updated documentation.
👏 Thank you very much!


Regression: Silence preview fails with version v0.57+

After upgrading a previously working v0.56 instance to v0.57 / v0.58, it now throws the following error in the browser when previewing a new silence:

Rolling back to v0.56 resolves the issue.

Looks like I forgot to update it when adding multi-grid support, will fix soon, thanks

#1574 will fix it, will make a new release later today


Switch to github flow

Depends on https://github.com/SubstraFoundation/hlf-k8s/pull/18

@GuillaumeCisco  Do you have admin right to modify the settings for github flow ?

Unfortunately, I still don't


Implement lead-acid "full 1D" model (as ode system)

Issues with cut-off being at c=0, since log(c) tends to -infinity there. Works much better if we set the cut-off to something small but non-zero (e.g. c=0.01). Shouldn't make any difference in practice.


UrlRequest.wait block indefinitely

Versions

Python: 3.7.0
OS: GNU/Linux -GuixSD-
Kivy: 1.10.1
Kivy installation method: pip

Description
when request a unknown url (or url down) method wait not finish
Code and Logs
def got_json(req, result):
    for key, value in result['headers'].items():
        print('{}: {}'.format(key, value))

req = UrlRequest('http://invalidurl', got_json, timeout=2)
req.wait() #block wait infinity

Maybe because its a synchronous request which is causing this problem?
im having a problem where my UrlRequest cant even access the url. It returns a malformed url error when the url is correct. Does UrlRequest not like some domains or some types of urls? Im confused.

Same issue here, kivy 1.10.1, python 3.7.0, windows 10.  The goal is to make the request synchronous, i.e. not move on to the next part of the code until either a response or a timeout is obtained.
        request=UrlRequest(self.cloudServer+"/api/v1/events",
            on_success=self.on_getCloudEvents_success,
            on_failure=self.on_getCloudEvents_failure,
            on_error=self.on_getCloudEvents_error,
            timeout=5,
            method="GET",
            debug=True)
        request.wait()
...

    def on_getCloudEvents_success(self,request,result):
        Logger.info("on_getCloudEvents_success called:")
        Logger.info("  result="+str(result))

    def on_getCloudEvents_failure(self,request,result):
        Logger.info("on_getCloudEvents_failure called:")
        Logger.info("  request was sent to "+str(request.url))
        Logger.info("    request body="+str(request.req_body))
        Logger.info("    request headers="+str(request.req_headers))
        Logger.info("  result="+str(result))

    def on_getCloudEvents_error(self,request,result):
        Logger.info("on_getCloudEvents_error called:")
        Logger.info("  request was sent to "+str(request.url))
        Logger.info("    request body="+str(request.req_body))
        Logger.info("    request headers="+str(request.req_headers))
        Logger.info("  result="+str(result))

it never gets past wait().  Killed the program manually after a half minute:
....
< 5 seconds after the request is sent:>
[INFO   ] [on_getCloudEvents_error called]
[INFO   ] [  request was sent to http]//<IP_ADDRESS>:5000/api/v1/events
[INFO   ]     request body=None
[INFO   ]     request headers=None
[INFO   ]   result=timed out

< endless loop here - I killed it with Ctrl-C after a while >
[INFO   ] [Base        ] Leaving application in progress...
 Traceback (most recent call last):
   File "main.py", line 1866, in <module>
     theApp.run()
   File "C:\Python37-32\lib\site-packages\kivy\app.py", line 826, in run
     runTouchApp()
   File "C:\Python37-32\lib\site-packages\kivy\base.py", line 502, in runTouchApp
     EventLoop.window.mainloop()
   File "C:\Python37-32\lib\site-packages\kivy\core\window\window_sdl2.py", line 727, in mainloop
     self._mainloop()
   File "C:\Python37-32\lib\site-packages\kivy\core\window\window_sdl2.py", line 460, in _mainloop
     EventLoop.idle()
   File "C:\Python37-32\lib\site-packages\kivy\base.py", line 337, in idle
     Clock.tick()
   File "C:\Python37-32\lib\site-packages\kivy\clock.py", line 581, in tick
     self._process_events()
   File "kivy\_clock.pyx", line 384, in kivy._clock.CyClockBase._process_events
   File "kivy\_clock.pyx", line 414, in kivy._clock.CyClockBase._process_events
   File "kivy\_clock.pyx", line 412, in kivy._clock.CyClockBase._process_events
   File "kivy\_clock.pyx", line 167, in kivy._clock.ClockEvent.tick
   File "main.py", line 1251, in showStartupSyncChoices
     self.buildSyncChoicesList()
   File "main.py", line 1272, in buildSyncChoicesList
     request.wait()
   File "C:\Python37-32\lib\site-packages\kivy\network\urlrequest.py", line 563, in wait
     sleep(delay)
 KeyboardInterrupt

upgraded kivy to 1.11.1 - the problem remains.  Probably just a case of not understanding the intended usage of wait() - is there an example out there somewhere?

Here's a discussion on the kivy form that points out this can all be accomplished using the asynchronous callbacks as intended; that's very true, but, this is more of a case of the wait() function not working as documented, or at the very least, of the documentation not saying that it will wait for a >successful< response.  It should probably either be supported or nixed.
In an attempt to make the on_failure and on_error callbacks release the wait command, I added this to each of those callbacks, since wait() waits for resp_status to be other than None:
request.resp_status="Failure" # or "Error" or such
however this gives "AttributeError: can't set attribute".
O well.  Moving on.  Tried my own flag but I'm still not understanding something in the timing logic, since it waits for the full totalWait seconds even though the response was immediate:
...
request=UrlRequest(self.cloudServer+"/api/v1/events",
on_success=self.on_getCloudEvents_success,
on_failure=self.on_getCloudEvents_failure,
on_error=self.on_getCloudEvents_error,
timeout=3,
method="GET",
debug=True)
# make it synchronous
self.SYNC_REQUEST_STAT=None
totalWait=0
while self.SYNC_REQUEST_STAT is None and totalWait<6:
Logger.info("   stat="+str(self.SYNC_REQUEST_STAT))
time.sleep(0.5)
totalWait=totalWait+0.5
def on_getCloudEvents_success(self,request,result):
    Logger.info("on_getCloudEvents_success called:")
    Logger.info("  result="+str(result))
    self.SYNC_REQUEST_STAT="Success" # to end the synchronous wait

def on_getCloudEvents_failure(self,request,result):
    Logger.info("on_getCloudEvents_failure called:")
    Logger.info("  request was sent to "+str(request.url))
    Logger.info("    request body="+str(request.req_body))
    Logger.info("    request headers="+str(request.req_headers))
    Logger.info("  result="+str(result))
    self.SYNC_REQUEST_STAT="Failure" # to end the synchronous wait

def on_getCloudEvents_error(self,request,result):
    Logger.info("on_getCloudEvents_error called:")
    Logger.info("  request was sent to "+str(request.url))
    Logger.info("    request body="+str(request.req_body))
    Logger.info("    request headers="+str(request.req_headers))
    Logger.info("  result="+str(result))
    self.SYNC_REQUEST_STAT="Error" # to end the synchronous wait

In this case, all 12 sleep iterations get printed, each one showing 'None', and after that the successful return value is show.  Basically looks like on_getCloudEvents_success is not actually processed until after the while loop is finished... thought it would be the other way around...?
Ok, will go the long way - make each handler call a separate function for the next task in order.

Note, I also tried making SYNC_REQUEST_STAT global, by removing the leading 'self.' in each case and adding 'global SYNC_REQUEST_STAT' at the start of each function that references it, but, still no luck.

does UrlRequest wok on mobile phone?

It does work on an android tablet, have not tried on a phone but would
expect it to be the same.
On Tue, Feb 4, 2020, 1:38 AM 海<EMAIL_ADDRESS>wrote:

does UrlRequest wok on mobile phone?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/kivy/kivy/issues/6522?email_source=notifications&email_token=AEPCEZUGKKDIXBNRJQFZE7DRBEZTBA5CNFSM4IXFW3Q2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKW6OQY#issuecomment-581822275,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEPCEZT2YMO2XWUO42WBLC3RBEZTBANCNFSM4IXFW3QQ
.

I came across this too and although URLRequest is primarily asnyc, there are times where a synchronous call makes more sense  - e.g. login - and the docs do say it is supported!
I came up with a very simple workaround : I subclassed , added one line of code and modified one other to make the wait continue if timeout expires
Here is example code
from kivy.network.urlrequest import UrlRequest
import time

# my modified version with one new attribute self.start_time and one modification to wait() while
class myUrlRequest(UrlRequest):
    # subclassed to use timeout in blocking wait()
    def __init__(self, url, **kwargs):
        super().__init__(url, **kwargs)
        **self.start_time = time.time()  # new attribute to keep track of request duration**

    def wait(self, delay=0.5):
        # modified While to 'and' timeout not expired
        while (self.resp_status is None) **and (self.start_time + self._timeout > time.time()**):
            self._dispatch_result(delay)
            time.sleep(delay)

badurl = 'http://<IP_ADDRESS>:8765'  # bad ( hopefully) link

# my version
ret = myUrlRequest(badurl, timeout=3)
ret.wait()
print (f' This will fire after timeout expires with ret.result = {ret.result}')

# original version
ret2 = UrlRequest(badurl, timeout=3)
ret2.wait()
print (' This will not print because wait is forever')`

Is this 1.11 problem? urlrequest was refactored a bit on newer versions like 2.x

Tested with Kivy 2.2.1 on Windows 11. Got same problem.
    from kivy.network.urlrequest import UrlRequest

    def got_json(req, result):
        for key, value in result['headers'].items():
            print('{}: {}'.format(key, value))

    print("Prerequest")
    req = UrlRequest('http://invalidurl', got_json, timeout=2)
    print("After request")
    req.wait() #block wait infinity
    print("Wait concludes")

This was the result of debugging:
The request is (obviously) to a bad URL.
The call to wait() loops until resp_status changes to be not None. (Spoiler: resp_status never changes!)
In the first loop, it calls _dispatch_result().
_dispatch_result() pops the queue, and sets result to "error", resp to None and data to a description of the error. This seems reasonable, given the URL is bad.
The next block is protected by if resp: and doesn't execute, because resp is None. If resp is supposed to include an HTTP error code from the server, it is appropriately set to None, because there was no server to provide an HTTP error code. In the skipped code, and only in the skipped code, self._resp_status is set.
There is an on_error() callback that is then called, and the _dispatch_result() loop runs again until the queue is empty but the die is already cast.
When _dispatch_result() returns, the wait() loop continues forever, because it is waiting for self._resp_status to be set, and it never will be.
Either self._resp_status to some arbitrary non-Null value when an error occurs, so the wait() loop will end, or wait() should have a better loop conditional.


testing failing tests on Appveyor

Some plotting unit tests in #341 on Appveyor fail due to no discernible reasons.
Seems that a few packages like pkg_resources._vendor.appdirs are newly installed on Appveyor between the last PR and now.

Coverage decreased (-0.2%) to 85.401% when pulling dc77617b399d2a09dcf484ff6f4b264f15b7261f on danielhuppmann:test/pkg_resources into ebe40a1c3abf09a19590810718e5731905e9e780 on IAMconsortium:master.

identified the error in the original PR, solved there


[profile.*] not affecting doctests

There seems to be no way to set profile for doctests. I need it in my two crates - without opt_level = 3 it fails to compile (this is on purpose of course).
I'd suggest to use one of profile.test, profile.doc or create a new one called profile.doctest.
Steps for reproducing:

clone the repository
remove no_compile from doctest
run cargo doc

Expected result: cargo compiles optimized version (without call to non-existing function)
What happened: cargo ignored any profile options and attempted to build doctest without optimization.

Another use case: no_std crates. I have a doctest with #[no_std] attribute and currently it causes test to fail with:

error: language item required, but not found: eh_personality

What I would like is to use panic to disable stack unwinding via:
[profile.doc]
panic = "abort"

Currently I use #[lang = "eh_personality"] fn eh_personality() {}, but that only works on nightly would only work on nightly.

This link https://github.com/rust-lang/cargo/issues/3166#issuecomment-252792819 add some context why it might not be that easy.
In my case, though, doctest is no_run (because it's for embedded library which you cannot run anyways).

By using custom profile, we can have a profile for doctest or whatever, so we probably don't need an extra built-in profile. This solves the first half of the issue.
The other half is that there is a discrepancy between rustc and rustdoc handling (see https://github.com/rust-lang/cargo/issues/6570#issuecomment-455920801) options, we track it with #6570. For panic behaviour in test/doctest driven by libtest, please follow the progress of -Z panic-abort-tests.
Going to close this now. If you found this is a fault, please comment, and we'll consider re-open.

If a custom profile is used it wouldn't be used by cargo doc by default, right? I think being able to use whichever profile cargo doc uses is more important than having a custom profile.

This issue was created before custom profiles got stabilized, so I assumed you didn't know the feature at that time. Now it looks like even with the ability to customize profiles, a built-in one for doc/doctest is still the thing you are looking for, right? I'd like to know more about your opinion on having a built-in versus customizing your own. Could you share more from your side? Thank you!

Basically my goal is to get opt-level = 3 whenever someone calls cargo doc. Whether it's achieved by a custom profile that gets auto-set or a built-in profile or even reusing test I don't care (1). Note that cargo doc --profile custom_profile_name is not great. The idea is for it to work correctly out of the box.
1: I guess having a separate built-in profile may be nicer architecture but not sure if it's worth the hassle.

Sorry, I don't really get it. What do you want to achieve with cargo doc? Or did you mean cargo test --doc?
Assumed you meant cargo test --doc. If we do go with a built-in doc profile, why should it be with opt-level = 3 but not 0? Does it inherit all settings from test or release profile? This might become a bikeshedding problem as I see it.
I'd suggest using the combos of config [alias] and custom profile to achieve at this moment. That is,

Customize a doctest profile in Cargo.toml[profile.doctest]
inherits = "test" # or inherit form any profile
opt-level = 3

Put an alias in .cargo/config.toml under project root, and run with the custom profile[alias]
doctest = "test --doc --profile doctest"

Unfortunately, Cargo doesn't allow an alias to shadow built-in commands. Instead, people need to run cargo doctest directly.
On the other hand, as aforementioned, rustdoc doesn't handle all compiler settings in the same way as rustc, so we may need to fix that before adding any built-in profile for rustdoc. Otherwise people will get confused by those flags not working the same.

Sorry, yes, I meant cargo test --doc.

why should it be with opt-level = 3

it shouldn't by default, only when overridden by Cargo.toml and I want to override it in that crate.

so we may need to fix that before adding any built-in profile for rustdoc

Indeed.

From my perspective, I would much prefer building doctests with the same profile as unit tests (i.e. test) [^1]. This is because cargo test will build both unit tests and doctests in one command, which can lead to strange behavior like this:
#[cfg(test)]
compile_error!("cfg(test)");

#[cfg(not(test))]
compile_error!("cfg(not(test))");

Running cargo test for the above code will result in confusing error messages:
error: cfg(not(test))
 --> src\lib.rs:5:1
  |
5 | compile_error!("cfg(not(test))");
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cfg(test)
 --> src\lib.rs:2:1
  |
2 | compile_error!("cfg(test)");
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: could not compile `playground` due to previous error
warning: build failed, waiting for other jobs to finish...
error: could not compile `playground` due to previous error

How can test be both enabled and not at the same time? Of course, we know the reason is that doctests are not build with test, but I'd imagine most user wouldn't know this detail, which isn't even documented anywhere (AFAIK) and is technically contradictory to what the cargo reference claims:

The test profile is the default profile used by cargo test. The test profile inherits the settings from the dev profile.

(By the way, cargo test --profile test doesn't solve this issue, for some reason.)
True, the above situation rarely happens in real life—I believe this would come up only when compiler settings (like cfg(test) or opt-level in OP's case) actually have an effect on whether the code is able to compile. In my case, I discovered this when I was writing a no_std crate, where conditionals like #![cfg_attr(not(test), no_std)] are commonly used. I remember spending a lot of time trying to figure out why cfg(test) just won't take effect, and ended up disabling all doctests.
[^1]: although this would sadly be a breaking change……

Thank @andylizi for pointing out one concern I have. Currently, profile selection is on a command-basis. All rustc invocations of a Cargo command invocation should receive the same set of flags. If we decide to differentiate doctests from unit tests, it would definitely complicate Cargo internals, and also confuses users as they now need to remember the special case of doctest since it will be a feature.
Personally I lean toward not doing so. cargo test --doc --profile <custom-profile> should be sufficient, and I am sorry you cannot shadow built-in command with an alias to minimize characters typed.

@andylizi said:

which isn't even documented anywhere (AFAIK) and is technically contradictory to what the cargo reference claims:

From my understanding, Cargo compiles doctests and unittests under the same profiles when executing cargo test. [cfg(test)] is nothing related to profiles. Rustc knows nothing about profiles. The compile failure is because lib target need to be built so doctests can use it, whereas unit tests don't need that.
If you run cargo test --verbose, you will should two rustc invocations from cargo. One with --test rustc flag, the other without. And then the follow up rustdoc call use the lib artifact to compile doc tests. You can read this old comment https://github.com/rust-lang/cargo/issues/10361#issuecomment-1043872481 to get more info of the execution model, but this should be a separate issue if we want to proceed.

Agree with not making it a separate profile, test is good. So once [profile.test] is picked up by doc tests my issue is resolved.

[cfg(test)] is nothing related to profiles. Rustc knows nothing about profiles. The compile failure is because lib target need to be built so doctests can use it, whereas unit tests don't need that.

Ah I see. I had thought it was profile-related because panic = "abort" didn't seem to be working (it keep asking for eh_personality), and I just assumed it must be related to that... Thanks for clarifying!
The problem I encountered was a long time ago and I've forgot the exact details (maybe something to do with #[cfg(test)] extern crate std;), although I'm pretty sure in the end I only workarounded it by setting doctest = false—but that's not really a proper solution. And for what it's worth, making cargo test play nice with no_std have always been a huge pain, and some setups seem outright impossible. But that probably belongs to another issue.


feat(frontend): create store for tokens keys

Motivation
This PR aims at saving the last order of the tokens list that is displayed: we are using this state internally in the component, however, it can become useful to transform into a store to be called externally.
Either way, it is set only during the process to update the tokens to be displayed.
Just to clarify, the scope of this variable is to compare if the new order is different from the old one, after re-sorting.
Changes

Create new type for the keys of the list.
New store for generic TokenUi[] data, including the list of tokens keys.
Adapt component TokensDisplayHandler to use and set the new store.

Tests
No changes in local replica.

This PR is deprecated, since for now PR https://github.com/dfinity/oisy-wallet/pull/2171 seems to be enough


Modify Run/Stop Experiment to properly setup/teardown definitions

Need to copy over python msg/srv definitions and package manifest (package.xml) to all hosts and add them to PYTHONPATH and ROS_PACKAGE_PATH respectively.
If they're located in the experiment folder, should already be removed automatically

related to #184

Is there a need to copy message definitions to ALL hosts?  If the purpose of this is for rosbridge integration, only the rosbridge instance needs the definitions.

since they don't need to be copied to all hosts, i'm closing this a a duplicate of #186


Remove Camel Case Naming Convention

Removes camel case naming convetion because its essentially the same as the snake case one

I guess the ServiceProvider snaps are also obsolete


TestNoProxyHeaders and TestNoProxyHeadersHttps tests failing

I pulled the latest goproxy (99a857cc920470279e92a925f082a73fd4cf8dee), and the test suite exhibits two broken tests.
 Sigh, I should probably set a travis build.
Would look into it.
On Tue, Mar 3, 2015 at 2:57 AM, Jason E. Aten, Ph.D. <
<EMAIL_ADDRESS>wrote:

I pulled the latest goproxy (99a857c
https://github.com/elazarl/goproxy/commit/99a857cc920470279e92a925f082a73fd4cf8dee),
and the test suite exhibits two broken tests.

Can you help me recreate the failing tests?
Can you recreate it on Ubuntu?
Thanks,
And sorry it took me time to get back to you,

After more than 2 years these tests are still failing :)
Am I understanding it right that TestNoProxyHeaders failing means the destination server will receive the proxy headers as well instead of goproxy filtering them out?


Bitmanip

Integration of the bitmanip specification into riscv-isa-manual.

Do you know who's supposed to be reviewing it?

@ptomsich would you be the primary person to review here, or if not, who would you recommend?

I am planning to act as a reviewer, but can only start once I am back in my home time-zone end of next week.

Excellent, thanks @ptomsich

@ptomsich just checking in to see if review of this PR is progressing?  I'd like to get the bitmanip chapter accepted into the main document asap.
Thanks
Bill

@ptomsich please let me know if there's anything you need from me to move forward your review of this integration?  I can provide the PDF of unpriv with bitmanip integrated if that will help.

Note that this PR has been outstanding for 5 months now.  With respect to moving forward I am planning to merge this PR on Thursday, Feb. 1st.  Any issues that may be found post merge can be handled in the main branch. @ptomsich @aswaterman @jjscheel

Note that this PR has been outstanding for 5 months now. With respect to moving forward I am planning to merge this PR on Thursday, Feb. 1st. Any issues that may be found post merge can be handled in the main branch. @ptomsich @aswaterman @jjscheel

Sorry, I am short on bandwidth.
Please note that there are a number of outstanding pull-requests for the original repository (https://github.com/riscv/riscv-bitmanip/pulls) and this specification hasn't had an editor in a long time (i.e., I only helped out with the conversion to the new-style specification, but never was the editor).

Just adding on to Philipp's post:  There are known issues/errors in the bitmanip spec - as reflected in the outstanding PRs in the original repo.  These HAVE to be addressed.  I don't know if they can simply be brought over and merged into the adoc spec, or if straightforward editing needs to be done that Bill can do, or if someone else needs to do more technical editing to create suitable changes for Bill to incorporate.
So maybe first step is for Bill to review the PRs from the original repo and let the rest of know where we stand as far as what is needed to incorporate that stuff into the bitmanip spec.

I'm happy to follow up on the 7 outstanding PRs in the bitmanip repository and pull in whatever I can.  Note that they do go back as far as March 2021.

Great.  Let us know whether all 7 can be pulled in and/or whether there is
further work that is still needed (that you can't do on your own).
Greg
On Tue, Jan 30, 2024 at 6:05 AM Bill Traynor @.***>
wrote:

I'm happy to follow up on the 7 outstanding PRs in the bitmanip repository
and pull in whatever I can. Note that they do go back as far as March 2021.
—
Reply to this email directly, view it on GitHub
https://github.com/riscv/riscv-isa-manual/pull/1087#issuecomment-1916934769,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALLX6GVFOZIJDQSNZ2TAVK3YRD43TAVCNFSM6AAAAAA3IVRLOKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMJWHEZTINZWHE
.
You are receiving this because you commented.Message ID:
@.***>

Great. Let us know whether all 7 can be pulled in and/or whether there is further work that is still needed (that you can't do on your own). Greg
…
On Tue, Jan 30, 2024 at 6:05 AM Bill Traynor @.> wrote: I'm happy to follow up on the 7 outstanding PRs in the bitmanip repository and pull in whatever I can. Note that they do go back as far as March 2021. — Reply to this email directly, view it on GitHub <#1087 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALLX6GVFOZIJDQSNZ2TAVK3YRD43TAVCNFSM6AAAAAA3IVRLOKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMJWHEZTINZWHE . You are receiving this because you commented.Message ID: @.>

Hi @gfavor , @ptomsich , @jjscheel ,
Here's a review of the 7 outstanding PRs.  I can't comment whether they should be merged or not, I'll need @ptomsich or someone to make that decision.  However, if each should have been merged, please comment here as I'll need to make sure I pull them into my PR.  Here's the simple review results:

First 3 PRs require someone's review to merge or abandon.
Fourth PR can be merged as is.
Last 3 PRs can be closed and not merged as they no longer apply.

Here's a bit more explanation:
PR#182 Replace PTRLOG with explicit 3 #182
"The shift immediate should be 3, even for rv32, since we want log(bits-per-byte), not log(bytes-per-word). PTRLOG implies log(bytes-per-word), so replace it with an explicit 3 as is used elsewhere in the example when log(bits-per-byte) is needed."
Seems a very simple change, just need someone to give it a thumbs up or not.
PR#181 show opcode as 7-bits like all other insn for unzip and zip
"[ 00100 ][ 11 ] should be written as [ 0010011 ] (0x13) or OP-IMM to be consistent with all other instructions.
Also, in the Operations section, should one of the foreach loops between unzip and zip be different like, for example,
foreach(i from 0 to xlen/2-1) {
x(rd)[i] = X(rs1)[2i]
x(rd)[2i+1] = X(rs1)[i+xlen/1]
}
"
Another simple change, just need someone to give it a thumbs up or not.
PR#180 insn is I-type, opcode should be OP-IMM[-32] for zext.h
"Instructions with bits [24:20] as immediate or function values are I-type. Instructions with bits [24:20] as registers (like rs2) are R-type. Shouldn't zext.b be an I-type instruction, with opcode OP-IMM or 0x13?"
Another simple change, just need someone to give it a thumbs up or not.
PR#172 Fix desc for signextend
This change is technically correct according to the comments but was not merged as it "has no significant impact on the specification."
PR#130 Remove 16-bit encodings
"The compressed future instructions section caused encoding clashes with the code-size reduction Zce, and caused confusion in the PLCT implementation of the tools, so I've removed them. C.NOT, C.NEG, and C.ZEXT.W are included in Zce already. C.ZEXT.D isn't currently included in Zce as it is considers instructions for RV32/RV64 but does not specifically add instructions for RV128"
This PR received no comments and is no longer relevant as the file it changes no longer exists in the src tree.  I believe this PR can simply be closed and not merged.
PR#126 Update BCOMPRESS / BDECOMPRESS -> BMEXT / BMDEP in opcode tables
"Updated the BCOMPRESS / BDECOMPRESS names in the opcode tables to the new BMEXT / BMDEP. Also swapped the BMEXT / BMDEP location in the funct7 / funct3 mapping table. I believe previously those were incorrect / swapped in that table, but double-check that aspect of the PR."
This PR no longer applies and can be closed and not merged.
PR#123
"This commit fixes a number of assembler coding issues and also a missing MACRO definition file".
This PR no longer applies as these files are no longer in the src tree and are specific to tests, not the body of the specification.
Overall, nothing here fundamentally changes the spec and can be easily reverted if need be.  My recommendation is to merge the first 4 PRs and abandon the last 3.
Thanks
Bill

Great. Let us know whether all 7 can be pulled in and/or whether there is further work that is still needed (that you can't do on your own). Greg
…
On Tue, Jan 30, 2024 at 6:05 AM Bill Traynor @.> wrote: I'm happy to follow up on the 7 outstanding PRs in the bitmanip repository and pull in whatever I can. Note that they do go back as far as March 2021. — Reply to this email directly, view it on GitHub <#1087 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALLX6GVFOZIJDQSNZ2TAVK3YRD43TAVCNFSM6AAAAAA3IVRLOKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMJWHEZTINZWHE . You are receiving this because you commented.Message ID<EMAIL_ADDRESS>
Hi @gfavor , @ptomsich , @jjscheel ,
Here's a review of the 7 outstanding PRs. I can't comment whether they should be merged or not, I'll need @ptomsich or someone to make that decision. However, if each should have been merged, please comment here as I'll need to make sure I pull them into my PR. Here's the simple review results:

First 3 PRs require someone's review to merge or abandon.
Fourth PR can be merged as is.
Last 3 PRs can be closed and not merged as they no longer apply.

Here's a bit more explanation:
PR#182 Replace PTRLOG with explicit 3 #182
"The shift immediate should be 3, even for rv32, since we want log(bits-per-byte), not log(bytes-per-word). PTRLOG implies log(bytes-per-word), so replace it with an explicit 3 as is used elsewhere in the example when log(bits-per-byte) is needed."
Seems a very simple change, just need someone to give it a thumbs up or not.
PR#181 show opcode as 7-bits like all other insn for unzip and zip
"[ 00100 ][ 11 ] should be written as [ 0010011 ] (0x13) or OP-IMM to be consistent with all other instructions.
Also, in the Operations section, should one of the foreach loops between unzip and zip be different like, for example,
foreach(i from 0 to xlen/2-1) { x(rd)[i] = X(rs1)[2_i] x(rd)[2_i+1] = X(rs1)[i+xlen/1] } " Another simple change, just need someone to give it a thumbs up or not.
PR#180 insn is I-type, opcode should be OP-IMM[-32] for zext.h
"Instructions with bits [24:20] as immediate or function values are I-type. Instructions with bits [24:20] as registers (like rs2) are R-type. Shouldn't zext.b be an I-type instruction, with opcode OP-IMM or 0x13?"
Another simple change, just need someone to give it a thumbs up or not.
PR#172 Fix desc for signextend
This change is technically correct according to the comments but was not merged as it "has no significant impact on the specification."
PR#130 Remove 16-bit encodings
"The compressed future instructions section caused encoding clashes with the code-size reduction Zce, and caused confusion in the PLCT implementation of the tools, so I've removed them. C.NOT, C.NEG, and C.ZEXT.W are included in Zce already. C.ZEXT.D isn't currently included in Zce as it is considers instructions for RV32/RV64 but does not specifically add instructions for RV128"
This PR received no comments and is no longer relevant as the file it changes no longer exists in the src tree. I believe this PR can simply be closed and not merged.
PR#126 Update BCOMPRESS / BDECOMPRESS -> BMEXT / BMDEP in opcode tables
"Updated the BCOMPRESS / BDECOMPRESS names in the opcode tables to the new BMEXT / BMDEP. Also swapped the BMEXT / BMDEP location in the funct7 / funct3 mapping table. I believe previously those were incorrect / swapped in that table, but double-check that aspect of the PR."
This PR no longer applies and can be closed and not merged.
PR#123
"This commit fixes a number of assembler coding issues and also a missing MACRO definition file".
This PR no longer applies as these files are no longer in the src tree and are specific to tests, not the body of the specification.
Overall, nothing here fundamentally changes the spec and can be easily reverted if need be. My recommendation is to merge the first 4 PRs and abandon the last 3.
Thanks Bill

@gfavor I did not receive any feedback on these 7 PRs from the original Bitmanip repository.  I'd like to merge Bitmanip into Unpriv today and archive the original Bitmanip repository.  So should I apply the 3 PRs I noted in my review to the Bitmanip PR against Unpriv, or should I abandon them and perhaps note in the original repo PR that if they still apply, the author should re-make the change against riscv-isa-manual?

@ptomsich I think it is important/valuable to have Philipp weigh in on https://github.com/riscv/riscv-isa-manual/pull/1087#issuecomment-1999669214 and whether he agrees with Bill's suggested dispositions for each of the 7 PRs.  I would go with what he suggests.

At @wmat's request, I've reviewed those PRs.  The following should be merged:

https://github.com/riscv/riscv-bitmanip/pull/172
https://github.com/riscv/riscv-bitmanip/pull/181
https://github.com/riscv/riscv-bitmanip/pull/182

The following target an old branch and are no longer relevant, so should be closed:

https://github.com/riscv/riscv-bitmanip/pull/123
https://github.com/riscv/riscv-bitmanip/pull/126
https://github.com/riscv/riscv-bitmanip/pull/130

The following is a semantic change, which is inappropriate for a ratified spec, and so should be closed:

https://github.com/riscv/riscv-bitmanip/pull/180

All updates have been made as per @aswaterman approvals above.


[r] Rename NdArray file names to match NDArray class names

Quick/minor quality-of-life mod.

If we have time for things like this please also bulk rename test file to either use an underscore or a hyphen. I like hyphens better, you pick.

@eddelbuettel 💯 !! :)
I did this before on https://github.com/single-cell-data/TileDB-SOMA/pull/553 and am happy to do it again.


(feat) projects overview page

Depends on #77

Do we want to add backend integration with this PR or move it to another one to keep each smaller?

@sjaghori
I will add an e2e test once #98 is merged to allow for multiple e2e tests.

@jjnp @sjaghori
In my opinion, this PR is complete. Would love a last look to see if everything checks out. The only remaining feedback concerns error handling and logging. Since the PR is already larger than desired, I suggest we create separate issues for logging and error handling. This way, we can implement these in the currently implemented features (auth, projects) more coherently and independently.


[Enhancement] Enter mission hotkey

Basically title. Add the option to create a hotkey to start the current mission from the outpost. Would probably fit best into the "Execute..." category.
Maybe make it a start/cancel button, so when activiating it while the countdown is going it cancels it.

I don't really understand why you would want this instead of pressing the enter mission button in the party window?
If you're talking about missions including the ones where you have to talk to an NPC, thats not possible without automating the character's movement and actions which would raise some issues in itself.

Because pressing the button is annoying, simple as that.
No, I am just talking about the mission that have such a button, as in Urgoz, Deep, Factions and Proph missions.


Add paths to ScssPHP import paths

I need the paths in the configuration to be imported in ScssPHP so I can use the CSS framework files from my project. The current implementation adds just the path the current file is in, but I'm not directly loading the CSS framework in asset_compress, instead I'm importing them in my scss files.

Codecov Report

Merging #55 into master will decrease coverage by 0.11%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master      #55      +/-   ##
============================================
- Coverage     73.16%   73.04%   -0.12%
- Complexity      445      446       +1
============================================
  Files            50       50
  Lines          1226     1228       +2
============================================
  Hits            897      897
- Misses          329      331       +2

Impacted Files
Coverage Δ
Complexity Δ

src/Filter/ScssPHP.php
0.00% <0.00%> (ø)
4.00 <0.00> (+1.00)

Continue to review full report at Codecov.

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

Codecov Report

Merging #55 into master will decrease coverage by 0.11%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master      #55      +/-   ##
============================================
- Coverage     73.16%   73.04%   -0.12%
- Complexity      445      446       +1
============================================
  Files            50       50
  Lines          1226     1228       +2
============================================
  Hits            897      897
- Misses          329      331       +2

Impacted Files
Coverage Δ
Complexity Δ

src/Filter/ScssPHP.php
0.00% <0.00%> (ø)
4.00 <0.00> (+1.00)

Continue to review full report at Codecov.

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

I've just noticed that dependencies won't get correctly resolved when using import paths. The getDependencies method should use the import paths to search for dependencies.

Thanks :clap:

It's missing the overloading of the getDependencies method so that it uses the import paths. I was waiting for #59 to be accepted. I'll create a new PR.

In ScssFilter the setting is called imports while in ScssPHP is called paths. I overlooked this difference. I could change it to imports in the new PR to avoid this inconsistency. Do you agree?

@berama that sounds like a good idea to me.


Text overflow for long Tags

As seen in the screenshot the text overflows for long tags. Should be cut from my point of view

Available in version 2.1.7 or later.


Support for M5StickC PLUS2

Will there be a support release for M5StickC PLUS2?
Thanks

Will there be a support release for M5StickC PLUS2? Thanks

That's an extremely well timed question!
I was just looking into getting myself an M5StickC Plus2.
The answer is yes, but it will take several (or more) weeks.

@ress122 Do you have an M5StickC Plus2 to test?

No I don't have one yet. Was looking into it.

I've ordered a M5StickC Plus2. Happy to test when it arrives

Just ordered a M5StickC Plus2 as well, the almost 2x battery life will make it much more usable.

Compiled with m5stick-c-plus build flag, appears functional

Compiled with m5stick-c-plus build flag, appears functional. Tested on a X-H2S (the 100ii is in for a service)

Excellent, the primary concern was the display (apparently pinout was modified).
However, if it ' just works', then we may be able to use just the single firmware image for both Plus and Plus2.
Mine is still in transit.

Excellent, the primary concern was the display (apparently pinout was modified). However, if it ' just works', then we may be able to use just the single firmware image for both Plus and Plus2.

Definitely didn't see any display issues. If that's the only real change then it's probably all good


New: Add rule to check the usage of web app manifest's short_name & name

Fix #136

@molant This PR is ready for another review.


Python code insertion

It's currently extremely easy to insert arbitrary Python statements into the code, like x=1. For example, the code
for n in 1,2,3,4:Say n*5

Try it online!
Is parsed fine and is basically the same as the equivalent Python.

thanks for the CTF solution LMAO


Create 0000-01-02-donatoRaimondi.md

created a branch, created a file and made a commit, and opened a pull request


Fix Safari resetting input method in wrapping

Context: https://discuss.codemirror.net/t/ime-is-not-working-properly-when-line-wrapping-in-safari/3250
In Safari, this line could cause input method being reset with wrapping into a new line.
Not sure about the side effects for this change. Please review. Thanks!

It's good to know that disabling this makes the bug go away, but removing this is definitely not the appropriate solution to the problem (it prevents plugins from receiving information about height changes).


CSS Pass

Changes
Visually

Makes the top nav just a smidge smaller
Makes some paddings a little more consistent

Code-wise

It looks like a big change but it‘s not! I just shuffled more components into their own components/ folders. Some classnames were renamed for organization, but I didn‘t change too many CSS styles themselves.
Used a semantic <button> element for the mobile menu for a11y
Added touchend event for mobile menu, so it works for touch devices
Made a minor tweak to the mobile nav scroll behavior (I‘ve had good success with this approach in the past)

Testing

Check out the preview link & play with it on mobile
Docs

@FredKSchott just FYI this deploy failed 😱 I was wondering why next.snowpack.dev didn't have the changes :(


I can't build the Docker image: does not contain a CMakeLists.txt file

docker build -t sd .
[+] Building 94.2s (9/10)                                                                                docker:default
 => [internal] load build definition from Dockerfile                                                                                0.0s
 => => transferring dockerfile: 379B                                                                                0.0s
 => WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 3)                                                      0.0s
 => WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 13)                                                     0.0s
 => [internal] load metadata for docker.io/library/ubuntu:22.04                                                                     2.1s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 76B                                                                                0.0s
 => [internal] load build context                                                                                0.2s
 => => transferring context: 71.09MB                                                                                0.1s
 => [build 1/5] FROM docker.io/library/ubuntu:22.04@sha256:adbb90115a21969d2fe6fa7f9af4253e16d45f8d4c1e930182610c4731962658        12.6s
 => => resolve docker.io/library/ubuntu:22.04@sha256:adbb90115a21969d2fe6fa7f9af4253e16d45f8d4c1e930182610c4731962658               0.0s
 => => sha256:53a843653cbcd9e10be207e951d907dc2481d9c222de57d24cfcac32e5165188 2.30kB / 2.30kB                                      0.0s
 => => sha256:857cc8cb19c0f475256df4b7709003b77f101215ebf3693118e61aac6a5ea4ff 29.54MB / 29.54MB                                   12.1s
 => => sha256:adbb90115a21969d2fe6fa7f9af4253e16d45f8d4c1e930182610c4731962658 1.34kB / 1.34kB                                      0.0s
 => => sha256:075680e983398fda61b1ac59ad733ad81d18df4bc46411666bb8a03fb9ea0195 424B / 424B                                          0.0s
 => => extracting sha256:857cc8cb19c0f475256df4b7709003b77f101215ebf3693118e61aac6a5ea4ff                                           0.3s
 => [build 2/5] RUN apt-get update && apt-get install -y build-essential git cmake                                                 78.8s
 => [build 3/5] WORKDIR /sd.cpp                                                                                0.0s
 => [build 4/5] COPY . .                                                                                0.1s
 => ERROR [build 5/5] RUN mkdir build && cd build && cmake .. && cmake --build . --config Release                                   0.4s
------
 > [build 5/5] RUN mkdir build && cd build && cmake .. && cmake --build . --config Release:
0.244 -- The C compiler identification is GNU 11.4.0
0.275 -- The CXX compiler identification is GNU 11.4.0
0.279 -- Detecting C compiler ABI info
0.320 -- Detecting C compiler ABI info - done
0.324 -- Check for working C compiler: /usr/bin/cc - skipped
0.324 -- Detecting C compile features
0.324 -- Detecting C compile features - done
0.326 -- Detecting CXX compiler ABI info
0.375 -- Detecting CXX compiler ABI info - done
0.379 -- Check for working CXX compiler: /usr/bin/c++ - skipped
0.379 -- Detecting CXX compile features
0.380 -- Detecting CXX compile features - done
0.380 -- Build static library
0.380 CMake Error at CMakeLists.txt:115 (add_subdirectory):
0.380   The source directory
0.380
0.380     /sd.cpp/ggml
0.380
0.380   does not contain a CMakeLists.txt file.
0.380
0.380
0.381 -- Configuring incomplete, errors occurred!
0.381 See also "/sd.cpp/build/CMakeFiles/CMakeOutput.log".
------

 2 warnings found (use docker --debug to expand):
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 3)
 - FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 13)
Dockerfile:11
--------------------
   9 |     COPY . .
  10 |
  11 | >>> RUN mkdir build && cd build && cmake .. && cmake --build . --config Release
  12 |
  13 |     FROM ubuntu:$UBUNTU_VERSION as runtime
--------------------
ERROR: failed to solve: process "/bin/sh -c mkdir build && cd build && cmake .. && cmake --build . --config Release" did not complete successfully: exit code: 1

ok the repo wasn't ready
cd stable-diffusion.cpp
git pull origin master
git submodule init
git submodule update


add useProxyProtocol option to the CRD

Summary
Add use proxy protocol option to the CRD.
Related issues
Fixes #692
Checklist

[x] reference any related issues
[ ] updated docs
[ ] updated unit tests
[ ] updated UPGRADING.md
[ ] add appropriate tag (improvement / bug / etc)
[ ] ready for review

We'll also want to update https://www.pomerium.com/docs/reference/use-proxy-protocol, right?


Investigation request: v1 DecodeDate returns UTC times, v2 DecodeDate returns Local times

Hello and thank you for this useful module 🚀
This is more of a question than a bug/feature request.
I noticed v1 decodes timestamp column types (without timezone) as UTC:
https://github.com/sijms/go-ora/blob/4c3a9fcbbcc3e1b1b4f7345026f213b8a7f95416/converters/type_conversion.go#L567
while v2 decodes timestamp column types (without timezone) in Local timezone:
https://github.com/sijms/go-ora/blob/4c3a9fcbbcc3e1b1b4f7345026f213b8a7f95416/v2/converters/type_conversion.go#L1193
Is there a reason for it? I'd expected to either use the result of SELECT DBTIMEZONE FROM DUAL or use UTC always.
Feedback appreciated

Hi @erezrokah
actually I update v2 frequently so v2 will be far more updated than v1
but I will make a major update in v1 to include latest features

Thanks for the comment @sijms, sorry for only responding now. I actually think v1 has the correct behavior (or at least the better one as UTC is more predicable than local time), WDYT?

yes you are correct. local timezone has no place here. I will test UTC and database timezone which is available during connection process and update it in the next release.

fixed in 2.6.16


Add nightly build for templates

Purpose

Fix https://github.com/wso2-enterprise/choreo/issues/6115
Add nightly build for templates

Goals

Update all the samples
Bump versions to SL Beta 2
Add nightly build workflow file

Security checks

Followed secure coding standards in http://wso2.com/technical-reports/wso2-secure-engineering-guidelines? yes
Ran FindSecurityBugs plugin and verified report? no
Confirmed that this PR doesn't commit any keys, passwords, tokens, usernames, or other secrets? yes

Test environment
JDK 11
Ballerina SL Beta 2

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


Remember login sessions for 2 weeks

Originally created by Tom Smyth at 2017-05-01 09:35, migrated from redmine-#6360

Status changed from New to Closed

By Tom Smyth at 2017-09-14 02:02

Version set to 4.5

By Tom Smyth at 2017-09-24 21:40

Tracker changed from Bug to Feature

Subject changed from Login token seems to be expiring early to Remember login sessions for 2 weeks

By Tom Smyth at 2017-09-24 21:41


⚠ Samsung has degraded performance

In 1db0d4a, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2627 ms

Resolved: Samsung performance has improved in 6fde913.


ENH: Dedicated Function for Envelope Extraction

Is your feature request related to a problem? Please describe.
It has come to my attention that scipy.signal does not have a dedicated function for extracting the envelope of a signal. It would be nice to have a function scipy.signal.envelope that implements several envelope extraction methods. MATLAB Signal Processing Toolbox has this functionality:
https://www.mathworks.com/help/signal/ref/envelope.html
Describe the solution you'd like.
I could implement this. I do not have experience contributing to open source, but this would be a good start.
Describe alternatives you've considered.
No response
Additional context (e.g. screenshots, GIFs)
No response

I would like to follow up on this. Could you assign me this issue, if this is a function you would want to have?

Hi @yagizolmez, please see the docs for contributing new code. The first step is to put your proposal to the mailing list.

Seems like Matlab's function is a wrapper. Some of the functionalities that are suggested are implemented in signal.hilbert or pandas. @yagizolmez, are you suggesting to create a wrapper?

Regardless of the algorithm, please make sure that you do not check matlab's sourcecode (not sure if it is even possible) but same with octave and other incompatible sources. It is OK to have a similar function signature but we cannot accept a derivative of such codebase and/or algorithm.

@lucascolley I shared it in the email group, but the discussion seems to be happening here.
@gideonKogan I would be happy if you could share the functions in pandas. signal.hilbert indeed implements the 'analytic' option of the MATLAB function but does not implement the other methods ('rms', 'peak').
@ilayn Thank you for the warning. I will not check MATLAB's codebase.
Please let me know what you think.
Happy New Year to all of you and thanks for commenting.

import pandas as pd
import numpy as np

fs = 1000
time = 10
freq = 1
window = 50
t = np.arange(time * fs) / fs

x = pd.Series((np.sin(2 * np.pi * freq * t) + 1) * np.random.normal(size=t.size))

ax = x.plot() #original
((x**2).rolling(window=window).mean()**0.5).plot(ax = ax) #rms
x.rolling(window=window).max().plot(ax = ax, grid=True) #peak

@ggkogan Thanks for sharing this. Your solution looks sound to me, but as far as I know scipy does not have a dependency on pandas. Would people be OK to add such dependency for this one function? @ilayn
Your code also needs to be slightly modified to support upper and lower envelopes.
We could also add additional envelope extraction methods that are not covered by the MATLAB function such as rectify and low pass filter (also known as linear envelope), which is commonly used in EMG analysis.

No, we will not be depending on pandas.

@ggkogan, @rkern I have written a function that depends only on numpy and scipy, that follows MATLAB's function signature, and seems to work well.
import numpy as np
from scipy.signal import hilbert,chirp,find_peaks
from scipy.interpolate import UnivariateSpline

def envelope(x,N = None,method = 'analytic'):

    #Assert that x is a 1D numpy array
    assert isinstance(x, np.ndarray) and x.ndim == 1, 'x must be a 1D NumPy array'

    if method == 'analytic':

        #Calculate the mean of x and remove it
        x_mean = np.mean(x)
        x_zero_mean = x-x_mean

        #Take the absolute value of the Hilbert transform
        #to calculate the analytical envelope of the zero mean
        #version of x
        zero_mean_envelope = np.abs(hilbert(x_zero_mean,N = N))

        #Calculate and return upper and lower envelopes
        return x_mean+zero_mean_envelope,x_mean-zero_mean_envelope

    elif method == 'rms':

        #Assert that N is specified and is an integer
        #For the rms method N serves as window size
        #for the moving average
        assert N and isinstance(N,int), 'N must be an integer'

        #Calculate the mean of x and remove it
        x_mean = np.mean(x)
        x_zero_mean = x-x_mean

        #Calculate the RMS envelope of the zero mean version of x.
        #Moving average is calculated using np.convolve
        zero_mean_envelope = np.sqrt(np.convolve(x_zero_mean**2,np.ones(N)/N,mode = 'same'))

        #Calculate and return upper and lower envelopes
        return x_mean+zero_mean_envelope,x_mean-zero_mean_envelope

    elif method == 'peak':

        #Assert that N is specified and is an integer
        #For the peak method N serves as the minimum number of
        #samples that seperate local maxima
        assert N and isinstance(N,int), 'N must be an integer'

        #Calculate local maxima and minima which will serve
        #as peaks for upper and lower envelopes respectively
        peaks_upper,_ = find_peaks(x,distance = N)
        peaks_lower,_ = find_peaks(-x,distance = N)

        #Calculate upper and lower envelopes by interpolating
        #peaks using a Univariate spline
        upper_spline = UnivariateSpline(peaks_upper,x[peaks_upper])
        lower_spline = UnivariateSpline(peaks_lower,x[peaks_lower])
        upper_envelope = upper_spline(np.arange(x.shape[0]))
        lower_envelope = lower_spline(np.arange(x.shape[0]))

        #Return the envelopes
        return upper_envelope,lower_envelope

    else:

        raise ValueError('%s is not a valid method' %(method))

Test for analytical envelope extraction:
import matplotlib.pyplot as plt

t = np.arange(0, 2, 1/2000)
signal = (1+0.5*np.cos(2*np.pi*1*t))*np.cos(2*np.pi*10*t)+5
upper,lower = envelope(signal)

plt.plot(t, signal)
plt.plot(t, upper)
plt.plot(t, lower)
plt.show()

Test for RMS envelope extraction:
t = np.arange(0, 2, 1/2000)
signal = (1+0.5*np.cos(2*np.pi*1*t))*np.random.normal(size = t.shape[0])+5

upper,lower = envelope(signal,N = 150,method = 'rms')

plt.plot(t, signal)
plt.plot(t, upper)
plt.plot(t, lower)
plt.show()

Test for peak envelope extraction
from scipy.io.wavfile import read

fs,signal = read('FK61_01.wav')
t = np.linspace(1,signal.shape[0],signal.shape[0])/fs

upper,lower = envelope(signal,N = 200,method = 'peak')

plt.plot(t, signal)
plt.plot(t, upper)
plt.plot(t, lower)
plt.show()

Please let me know what you think!

@yagizolmez your analytic filtering should be in time domain. I suggest you try to test for bit-exactness.
I am not sure whether we should try to reduce running time by Cython implementation.
Are we sure that we want to replicate Matlab's function? Why?

@ggkogan I do not understand your comment about the analytical filtering. I simply use signal.hilbert as you suggested in your first comment. I would be happy if you could be a bit more specific or provide some code.
I think using similar function signature with MATLAB would make it easier for people to migrate their codes into scipy. MATLAB Signal Processing Toolbox is unfortunately still more efficient than scipy.signal and it remains more widely used especially in the sciences. Many functions in scipy.signal have the same signature as their MATLAB counter parts (hilbert,butter,filtfilt,chirp etc).
Admittedly, I do not have much experience with cython. However, I would like to note that the code I provided does not have any python level loops. It relies on other functions in numpy and scipy. Considering that numpy is already partially written in C, I don't know how much of an improvement cython would provide.

I think using similar function signature with MATLAB would make it easier for people to migrate their codes into scipy

That is correct but we all are in a way, past matlab survivors. Being similar is good but if matlab signature is not good we don't insist on the affinity. This is particularly the case especially for matlab's legacy functions, wrong defaults, terrible option names and so on.

Admittedly, I do not have much experience with cython

Let's get there when it is needed; we can help you with all that. A bit of benchmarking would go a long way, even if it is done on a jupyter notebook with %timeit magic.

@yagizolmez  signal.hilbert gives envelope but if we try to reproduce the envelope you presented, we should implement in time domain. I suspect that the original implementation was designed to maintain causality, which is not maintained by using signal.hilbert.

@gideonKogan Do you suggest that I should implement the 'analytical' option with a causal filter? Causal filters introduce lags, so the filtered envelope would be lagged. I don't think we should do that.
@ilayn I personally like the MATLAB signature in this case, but I am open to suggestions. I will post the benchmarks shortly.

@ilayn I did some benchmarking on the code I have provided. %timeit gave the following outputs for the analytic, rms and peak respectively:
202 µs ± 16.3 µs per loop (mean ± std. dev. of 7 runs, 10,000 loops each)
210 µs ± 3.45 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)
122 ms ± 18.2 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
I have written the following code to benchmark the MATLAB function

%analytic

% Your code block here
t = 0:1/2000:2;
signal = (1 + 0.5 * cos(2 * pi * 1 * t)) .* cos(2 * pi * 10 * t) + 5;

% Number of iterations
numIterations = 1000;

% Measure execution time for multiple runs
totalTime = 0;
for i = 1:numIterations
    tic;
    upper = envelope(signal);
    elapsedTime = toc;
    totalTime = totalTime + elapsedTime;
end

% Calculate the average execution time
averageTime = totalTime / numIterations;

% Display the average execution time
fprintf('Average execution time of analytic over %d iterations: %.2f microseconds\n', numIterations, averageTime*10^6);

%rms

t = 0:1/2000:2; % Create a time vector from 0 to 2 with a step of 1/2000
signal = (1 + 0.5 * cos(2 * pi * 1 * t)) .* randn(size(t)) + 5; % Define the signal using random normal distribution

% Measure execution time for multiple runs
totalTime = 0;
for i = 1:numIterations
    tic;
    upper = envelope(signal,150,'rms');
    elapsedTime = toc;
    totalTime = totalTime + elapsedTime;
end

% Calculate the average execution time
averageTime = totalTime / numIterations;

% Display the average execution time
fprintf('Average execution time of rms over %d iterations: %.2f microseconds\n', numIterations, averageTime*10^6);

%peak

% Read the WAV file
[signal, fs] = audioread('FK61_01.wav');

% Create a time vector
t = (1:length(signal)) / fs;

% Measure execution time for multiple runs
totalTime = 0;
for i = 1:numIterations
    tic;
    upper = envelope(signal,200,'peak');
    elapsedTime = toc;
    totalTime = totalTime + elapsedTime;
end

% Calculate the average execution time
averageTime = totalTime / numIterations;

% Display the average execution time
fprintf('Average execution time of peak over %d iterations: %.2f milliseconds\n', numIterations, averageTime*10^3);

The output of this code was:
Average execution time of analytic over 1000 iterations: 572.22 microseconds
Average execution time of rms over 1000 iterations: 130.67 microseconds
Average execution time of peak over 1000 iterations: 40.49 milliseconds
Please let me know what you think.

@yagizolmez , I argue that we should decide if we want Matlab to be our reference. If we do, we should aim to bit-accurate. If we do not, we should decide how the function should be and ignore Matlab's implementation. As far as I understand, your motivation is copying Matlab, right? In such a case, we should consider the deviation...

Compatibility with MATLAB, either in terms of naming, function arguments, or bit-accuracy is an explicit non-goal of the scipy project. Looking at MATLAB is at most market research: we can infer from the presence of an envelope function with those three methods that having those three methods exposed is desirable. Once we get that nugget of information, we start from scratch and ignore the details of the MATLAB implementation. If warranted, we can sometimes use MATLAB to generate reference values for our tests, but bit-level accuracy is unnecessary (which is good, because it's unattainable in general).

I have worked on this a little, bit and I need some help. Please see the commit in my fork:
https://github.com/scipy/scipy/compare/main...yagizolmez:scipy:signal-envelope?expand=1
I have not opened a pull request yet, because I have some problems:

When I first ran 'python dev.py doc' in my local machine, I was able to generate the docs, but the documentation for my function was missing. When I tried again, I have got the following error:

Traceback (most recent call last):
File "/home/yagizolmez/miniforge3/envs/scipy-dev/lib/python3.11/site-packages/sphinx/events.py", line 97, in emit
results.append(listener.handler(self.app, *args))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/yagizolmez/miniforge3/envs/scipy-dev/lib/python3.11/site-packages/pydata_sphinx_theme/init.py", line 145, in update_templates
if theme_css_name in context["css_files"]:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/yagizolmez/miniforge3/envs/scipy-dev/lib/python3.11/site-packages/sphinx/builders/html/_assets.py", line 40, in eq
warnings.warn('The str interface for _CascadingStyleSheet objects is deprecated. '
sphinx.deprecation.RemovedInSphinx90Warning: The str interface for _CascadingStyleSheet objects is deprecated. Use css.filename instead.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/yagizolmez/miniforge3/envs/scipy-dev/lib/python3.11/site-packages/sphinx/cmd/build.py", line 298, in build_main
app.build(args.force_all, args.filenames)
File "/home/yagizolmez/miniforge3/envs/scipy-dev/lib/python3.11/site-packages/sphinx/application.py", line 355, in build
self.builder.build_update()
File "/home/yagizolmez/miniforge3/envs/scipy-dev/lib/python3.11/site-packages/sphinx/builders/init.py", line 293, in build_update
self.build(to_build,
File "/home/yagizolmez/miniforge3/envs/scipy-dev/lib/python3.11/site-packages/sphinx/builders/init.py", line 363, in build
self.write(docnames, list(updated_docnames), method)
File "/home/yagizolmez/miniforge3/envs/scipy-dev/lib/python3.11/site-packages/sphinx/builders/init.py", line 571, in write
self._write_serial(sorted(docnames))
File "/home/yagizolmez/miniforge3/envs/scipy-dev/lib/python3.11/site-packages/sphinx/builders/init.py", line 581, in _write_serial
self.write_doc(docname, doctree)
File "/home/yagizolmez/miniforge3/envs/scipy-dev/lib/python3.11/site-packages/sphinx/builders/html/init.py", line 655, in write_doc
self.handle_page(docname, ctx, event_arg=doctree)
File "/home/yagizolmez/miniforge3/envs/scipy-dev/lib/python3.11/site-packages/sphinx/builders/html/init.py", line 1107, in handle_page
newtmpl = self.app.emit_firstresult('html-page-context', pagename,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/yagizolmez/miniforge3/envs/scipy-dev/lib/python3.11/site-packages/sphinx/application.py", line 492, in emit_firstresult
return self.events.emit_firstresult(event, *args,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/yagizolmez/miniforge3/envs/scipy-dev/lib/python3.11/site-packages/sphinx/events.py", line 118, in emit_firstresult
for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/yagizolmez/miniforge3/envs/scipy-dev/lib/python3.11/site-packages/sphinx/events.py", line 108, in emit
raise ExtensionError(__("Handler %r for event %r threw an exception") %
sphinx.errors.ExtensionError: Handler <function update_templates at 0x7fa2e5df1a80> for event 'html-page-context' threw an exception (exception: The str interface for _CascadingStyleSheet objects is deprecated. Use css.filename instead.)
I am thinking that I initially failed to create documentation for my function due to lines 4702,4703:

signal = (1+0.5np.cos(2np.pi1t))*
np.random.normal(size = t.shape[0])+5

Later I fixed this, but I am still getting the error. This is my first time working with docstrings, so any help would be appreciated.

Is there any audio dataset in scipy that I can use for the documentation? I think the 'peak' method would be best demonstrated with audio.

I have tested all three methods locally using the examples I have provided earlier. I have also written some unit tests and added them to my commit. These tests only check for correct inputs, and they pass. Do you have any recommendations for any other tests?

In the documentation, I give the default value for the 'analytic' method as 'x.shape[0]' based on hilbert's default. Is this good practice? Should I change the code and set N = x.shape[0] for hilbert, so that my documentation would not be effected even if hilbert's default changes.

I am currently importing find_peaks within the envelope function. Doing this outside the function throws a circular import error. Is there a better way to handle circular imports? This is also something that I am not really familiar with.

These are my questions for now. Sorry for the long post. I am looking forward to your responses.

I also saw an error like this last night so chances are it is unrelated to your changes.

I don't think so - see http://scipy.github.io/devdocs/reference/datasets.html

@lucascolley Downgrading sphinx by one version did not work. I tried deleting doc/build, and building the whole html again. This worked, but it is too time consuming. Also, the documentation still does not include the new envelope function I have added. Do you have any idea why this might be? My terminal's output is as follows:
💻  ninja -C /home/yagizolmez/git-repos/scipy/build -j8
ninja: Entering directory `/home/yagizolmez/git-repos/scipy/build'
[4/4] Generating scipy/generate-version with a custom command
Build OK
💻  meson install -C build --only-changed
Installing, see meson-install.log...
Installation OK
for testing
@echo installed scipy 58e580e matches git version 58e580e; exit 1
mkdir -p build/html build/doctrees
LANG=C /home/yagizolmez/miniforge3/envs/scipy-dev/bin/python -msphinx -WT --keep-going  -b html -d build/doctrees -j1  source build/html
Running Sphinx v7.2.5
SciPy (VERSION 1.13.0.dev)
[autosummary] generating autosummary for: building/blas_lapack.rst, building/compilers_and_options.rst, building/cross_compilation.rst, building/distutils_equivalents.rst, building/index.rst, building/introspecting_a_build.rst, building/redistributable_binaries.rst, building/understanding_meson.rst, dev/api-dev/api-dev-toc.rst, dev/api-dev/array_api.rst, ..., tutorial/stats/discrete_zipf.rst, tutorial/stats/discrete_zipfian.rst, tutorial/stats/resampling.rst, tutorial/stats/sampling.rst, tutorial/stats/sampling_dau.rst, tutorial/stats/sampling_dgt.rst, tutorial/stats/sampling_hinv.rst, tutorial/stats/sampling_pinv.rst, tutorial/stats/sampling_srou.rst, tutorial/stats/sampling_tdr.rst
[autosummary] generating autosummary for: /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.LowLevelCallable.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.optimize.LbfgsInvHessProduct.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.optimize.OptimizeResult.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.optimize.RootResults.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.sparse.bsr_array.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.sparse.bsr_matrix.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.sparse.coo_array.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.sparse.coo_matrix.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.sparse.csc_array.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.sparse.csc_matrix.rst, ..., /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.sparse.csr_matrix.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.sparse.dia_array.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.sparse.dia_matrix.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.sparse.dok_array.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.sparse.dok_matrix.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.sparse.lil_array.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.sparse.lil_matrix.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.sparse.linalg.LaplacianNd.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.stats.result_classes.PearsonRResult.rst, /home/yagizolmez/git-repos/scipy/doc/source/reference/generated/scipy.stats.result_classes.TtestResult.rst
loading intersphinx inventory from https://docs.python.org/3/objects.inv...
loading intersphinx inventory from https://numpy.org/devdocs/objects.inv...
loading intersphinx inventory from https://numpy.org/neps/objects.inv...
loading intersphinx inventory from https://matplotlib.org/stable/objects.inv...
loading intersphinx inventory from https://asv.readthedocs.io/en/stable/objects.inv...
loading intersphinx inventory from https://www.statsmodels.org/stable/objects.inv...
myst v2.0.0: MdParserConfig(commonmark_only=False, gfm_only=False, enable_extensions=set(), disable_syntax=[], all_links_external=False, url_schemes=('http', 'https', 'mailto', 'ftp'), ref_domains=None, fence_as_directive=set(), number_code_blocks=[], title_to_header=False, heading_anchors=0, heading_slug_func=None, html_meta={}, footnote_transition=True, words_per_minute=200, substitutions={}, linkify_fuzzy_links=True, dmath_allow_labels=True, dmath_allow_space=True, dmath_allow_digits=True, dmath_double_inline=False, update_mathjax=True, mathjax_classes='tex2jax_process|mathjax_process|math|output_area', enable_checkboxes=False, suppress_warnings=[], highlight_code_blocks=True)
myst-nb v1.0.0: NbParserConfig(custom_formats={}, metadata_key='mystnb', cell_metadata_key='mystnb', kernel_rgx_aliases={}, eval_name_regex='^[a-zA-Z][a-zA-Z0-9]*$', execution_mode='auto', execution_cache_path='', execution_excludepatterns=(), execution_timeout=30, execution_in_temp=False, execution_allow_errors=False, execution_raise_on_error=False, execution_show_tb=False, merge_streams=False, render_plugin='default', remove_code_source=False, remove_code_outputs=False, code_prompt_show='Show code cell {type}', code_prompt_hide='Hide code cell {type}', number_source_lines=False, output_stderr='show', render_text_lexer='myst-ansi', render_error_lexer='ipythontb', render_image_options={}, render_figure_options={}, render_markdown_format='commonmark', output_folder='build', append_css=True, metadata_to_fm=False)
Using jupyter-cache at: /home/yagizolmez/git-repos/scipy/doc/build/.jupyter_cache
building [mo]: targets for 0 po files that are out of date
writing output...
building [html]: targets for 4539 source files that are out of date
updating environment: [new config] 4539 added, 0 changed, 0 removed
/home/yagizolmez/git-repos/scipy/doc/source/notebooks/interp_transition_guide.md: Executing notebook using local CWD [mystnb]
0.00s - Debugger warning: It seems that frozen modules are being used, which may
0.00s - make the debugger miss breakpoints. Please pass -Xfrozen_modules=off
0.00s - to python to disable frozen modules.
0.00s - Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation.
0.00s - Debugger warning: It seems that frozen modules are being used, which may
0.00s - make the debugger miss breakpoints. Please pass -Xfrozen_modules=off
0.00s - to python to disable frozen modules.
0.00s - Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation.
/home/yagizolmez/git-repos/scipy/doc/source/notebooks/interp_transition_guide.md: Executed notebook in 6.03 seconds [mystnb]
:46: DeprecationWarning: invalid escape sequence ','dtr
:46: DeprecationWarning: invalid escape sequence ','dtrc
:50: DeprecationWarning: invalid escape sequence '\d'uber
:30: DeprecationWarning: invalid escape sequence '\i'tairy
:25: DeprecationWarning: invalid escape sequence '\i'ti0k0
:25: DeprecationWarning: invalid escape sequence '\i'tj0y0
:42: DeprecationWarning: invalid escape sequence '\c've
:42: DeprecationWarning: invalid escape sequence '\c've
:22: DeprecationWarning: invalid escape sequence '\P'dtr
:50: DeprecationWarning: invalid escape sequence '\d'seudo_huber
:46: DeprecationWarning: invalid escape sequence '\l'klmbda
:19: DeprecationWarning: invalid escape sequence '\s'
reading sources... [100%] tutorial/stats/sampling_tdr
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
copying assets... copying static files... done
copying extra files... done
done
writing output... [100%] tutorial/stats/sampling_tdr
generating indices... genindex done
writing additional pages... search done
copying images... [100%] ../build/plot_directive/tutorial/stats/sampling_srou-1.png
dumping search index in English (code: en)... done
dumping object inventory... done
build succeeded.
The HTML pages are in build/html.

the documentation still does not include the new envelope function I have added. Do you have any idea why this might be?

You need to add your new function to the toc in scipy/signal/__init__.py

I have completed the implementation and opened a pull request. I would be happy if you could review my code!
https://github.com/scipy/scipy/pull/19814

Enhancement request issues typically stay open until the enhancement has been merged (or decided against) 👍

@DietBru @yagizolmez where does this issue stand now following the merge of gh-20097?


Saving the original image and a thumbnail

I would like to upload a image, store the original image and a small version of it. Is there a way to do this?

I think the library's design is to not store thumbnails.
The original image is handled by the Refile's attacher, but any thumbnails would generated dynamically and cached via a CDN, such as Cloudflare. In production, it would be essential to have a CDN in front of your app servers.

@anylyne That's the way carrierwave handles processing, e.g. generating thumnails when an image is uploaded. refile though is designed differently, generating thumbnails or in general processing attachments on demand. As @geetfun says, you'd set up a CDN in production to cache the processed results, see this Readme section. This means that the first time an image version like a thumbnail is requested, the app processes the request and generates the thumbnail on the fly, while every following request is served by the CDN, so future requests will never hit your app.

Thank you, guys! I'll figure it out. ;)

So this gem is not really usefull when I want to store sensitive data, like passport images? I dont want to distribute such images via CDN?
Is there no way to store thumbnails with refile itself?

@lichtamberg you can always run your own HTTP cache. Rack-Cache is the simplest solution, but something like Varnish is obviously way more performant. If that doesn't work for you, then you should probably look into using CarrierWave instead.


HttpUrl passing when having 2 https://

Initial Checks

[X] I confirm that I'm using Pydantic V2

Description
this is the expected behaviour for that?

I thought it would break in this case, but it only removes the :
Example Code
No response
Python, Pydantic & OS Version
pydantic version: 2.10.3
        pydantic-core version: 2.27.1
          pydantic-core build: profile=release pgo=false
                 install path: /Users/krisque/Knowtrex/opony/.venv/lib/python3.12/site-packages/pydantic
               python version: 3.12.8 (main, Dec  3 2024, 18:42:41) [Clang 16.0.0 (clang-16<IP_ADDRESS>)]
                     platform: macOS-15.2-arm64-arm-64bit
             related packages: mypy-1.13.0 typing_extensions-4.12.2
                       commit: unknown

Seems like this shouldn't work. I think this is probably due to the way that our url validation works in pydantic-core. We'd welcome an investigation here.


Setup not working while deploying on my site or site sub domain

i tried to deploy TastyIgniter on my domain,
http://maksolutionz.com/setup/
but its not going on next step,
i have set db credentials, and done each and every thing giving in installation instruction
what i found during inspection by network tab is ,
when i hit continue button, first it gives 303 and then 307 temporary redirect and again redirect on this page
whats happening here any body help?

Got the same issue.

Even for me...first page load correctly but when i click on continue i get 404 error ( .../setup/requirements not found )

Could someone install?

Having the same issue here

downgrading php version to 5.3, application will start to work

make sure that the PHP version mustbe 5.6 and not above, that must do it

HI!
i put all the files to /var/www/2xbe.pl/public_html/
in apache sites availeble 2xbe.pl.conf i set like this:
<VirtualHost *:80>
ServerAdmin<EMAIL_ADDRESS>DocumentRoot /var/www/2xbe.pl/public_html/
ServerName 2xbe.pl
ErrorLog /var/log/apache2/2xbe.pl-error_log
CustomLog /var/log/apache2/2xbe.pl-access_log common
<Directory /var/www/2xbe.pl/public_html/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all

im trying to acces setup from the browser with :
www2xbe.pl i get : Apache2 Ubuntu Default Page
2xbe.pl - HTTP ERROR 500
2xbe.pl/setup/ - HTTP ERROR 500
http://www.2xbe.pl/setup/ - Not Found
The requested URL /setup/ was not found on this server.
I dont understand why browser dos not see index.php  . im haveing php verison 7 but as i can see people with php 7 can at least see the first step from brawser installation.
annyone can help please?
Ad

test
On Tue, Apr 24, 2018 at 5:23 PM, Sam Poyigi<EMAIL_ADDRESS>wrote:

Closed #193 https://github.com/tastyigniter/TastyIgniter/issues/193.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tastyigniter/TastyIgniter/issues/193#event-1591439152,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKAp3xKvUHLt7jgQoz1KlD8AK5RLdrWNks5trxktgaJpZM4QbmoG
.

test
On Mon, Mar 19, 2018 at 6:43 PM, Adwooo<EMAIL_ADDRESS>wrote:

HI!
i put all the files to /var/www/2xbe.pl/public_html/
in apache sites availeble 2xbe.pl.conf i set like this:
<VirtualHost *:80>
ServerAdmin<EMAIL_ADDRESS>DocumentRoot /var/www/2xbe.pl/public_html/
ServerName 2xbe.pl
ErrorLog /var/log/apache2/2xbe.pl-error_log
CustomLog /var/log/apache2/2xbe.pl-access_log common
<Directory /var/www/2xbe.pl/public_html/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
im trying to acces setup from the browser with :
www2xbe.pl i get : Apache2 Ubuntu Default Page
2xbe.pl - HTTP ERROR 500
2xbe.pl/setup/ - HTTP ERROR 500
http://www.2xbe.pl/setup/ - Not Found
The requested URL /setup/ was not found on this server.
I dont understand why browser dos not see index.php . im haveing php
verison 7 but as i can see people with php 7 can at least see the first
step from brawser installation.
annyone can help please?
Ad
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tastyigniter/TastyIgniter/issues/193#issuecomment-374215797,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKAp3y1UwYrbETacgI20fZcNV4OTsmEMks5tf7YAgaJpZM4QbmoG
.

test
On Sun, Dec 24, 2017 at 12:28 AM, Harshul Singhal<EMAIL_ADDRESS>wrote:

make sure that the PHP version mustbe 5.6 and not above, that must do it
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tastyigniter/TastyIgniter/issues/193#issuecomment-353743884,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKAp3wAT0ih2Gdnj0gfxvjKYLCESI6aRks5tDVRjgaJpZM4QbmoG
.


Can't bundle woff files

I tried rollup, parcel, and esbuild. None of them support woff imports by default. It'd be nice for install instructions to include the workaround necessary to get beercss bundled, or provide alternate install way that has woff files just linked in html.
@parcel/core: No transformers found for
node_modules/beercss/dist/cdn/material-symbols-sharp.woff2.

Fixed in v3.4.6 (https://github.com/beercss/beercss/releases/tag/v3.4.3)

Have you tried the latest version v3.4.7, it will not import the .woff2 files anymore.

@janat08 strange, this works https://codesandbox.io/p/devbox/lucid-rain-4gxknv (using parcel 2)

Parcel doesn't work for some of my other packages so I used esbuild.
On Thu, Nov 30, 2023 at 12:48 AM myrp-leonardo @.***>
wrote:

@janat08 https://github.com/janat08 strange, this works
https://codesandbox.io/p/devbox/lucid-rain-4gxknv (using parcel 2)
—
Reply to this email directly, view it on GitHub
https://github.com/beercss/beercss/issues/239#issuecomment-1832505485,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACWP5APY7BHXKXM55OQNOZTYG57QVAVCNFSM6AAAAAA7MLABW2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMZSGUYDKNBYGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

I don't get why this bug has been closed, I'm using the latest versions of beercss and material-dynamic-colors and still get the error "No loader is configured for ".woff2"" when building.
"beercss": "^3.4.7"
"material-dynamic-colors": "^1.1.0"

Hi, this issue was closed because this is not a bug in Beer CSS itself. Load font files inside CSS is a web standard. It seems that the bundler need some extra plugin/config to do the job. In my opinion, all bundlers should have to follow the web standards by default.
I found a possible solution here (making .woff and .woff2 files as external)?
https://github.com/evanw/esbuild/issues/800
Let me know if this works for you, please.

If, like me, you've suffered the same problem; please read this angular cli PR - https://github.com/angular/angular-cli/pull/26371 which was released as part of the 17.1.0 version.
The fix for this problem is to add the following option in your angular.json file
"loader": {
              ".woff2": "file"
            }

This should sit under architect > build > options


2.1. Set Up the Project

Hi there, why on my windows 10 machine, don't work this script:

"server": "cd public; live-server --port=1234 --entry-file=index.html"

bun my public directory all ok:

link to my repo

Hi tsvetkovpro,I ran into the same question days ago.It turned out that Windows cmd use ' & ' to connect two instructions ."server": "cd public & live-server --port=1234 --entry-file=index.html" would work.Hope it helps.