Failed finding location, already patched

Any ideas?
Does the .pka need t be in a certain location?
The packet tracer is running and the .pka is loaded
I run your patch utility and get the error msg
Appreciate any help
Thanks

Seems like a duplicate of #8
What version is this? I don't think it is supported

I installed PT7.3.1

password is hashed one way or another, but obsolete as the content is just XML.
Anyways, I am afraid this project is pretty outdated and I don't really plan to update anything myself

i have a working solution for 8.2.1 ... no need to check password hash with this method
my son did it (don't ask me how he did it.... i don't have enough skills to understand)
don't know if i can post here solution here , waiting for ferib approval

waiting for ferib approval

Il allow it, you can open a new issue or open PR if based on mine

https://github.com/Jerem584/PacketTracerRecovery
credits to @ferib for his initial work


BUG: support for scipy.ctypeslib in version 1.9.0

Describe your issue.
When I use the software liblinear, I find an error when calling scipy.ctypeslib.asarray.
After some investigation, I find that scipy.ctypeslib acts normal in scipy==1.8.1 but produces an error in scipy==1.9.0.
Next, I try to call python -Wd <command> in scipy==1.8.1 but do not see any deprecation warning messages related to scipy.ctypeslib.
Is this a bug or does scipy==1.9.0 deprecate scipy.ctypeslib?
Further, if scipy.ctypeslib is not supported anymore, are there any alternative (equivalent) ways to call scipy.ctypeslib related functionality?
Reproducing Code Example
import scipy
scipy.__version__
from scipy import ctypeslib

Error message
# successful example
>>> import scipy
>>> scipy.__version__
'1.8.1'
>>> from scipy import ctypeslib

# failed example
>>> import scipy
>>> scipy.__version__
'1.9.0'
>>> from scipy import ctypeslib
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name 'ctypeslib' from 'scipy' (XXX/lib/python3.8/site-packages/scipy/__init__.py)

SciPy/NumPy/Python version information
1.9.0 1.22.4 sys.version_info(major=3, minor=8, micro=13, releaselevel='final', serial=0)

ctypeslib is actually from numpy. It is best to import it directly from there.
Mirroring all of the numpy symbols in the scipy namespace was an early design decision that we probably wouldn't make again. FWIW, I recommend only using scipy for the subpackages it explicitly provides and ignoring all of the stuff mirrored from numpy. Import numpy stuff from numpy directly.
The numpy mirrors were deprecated in #10290 (and the actual removal of ctypeslib and other modules imports from numpy in #15230, though that looks mostly incidental). Only functions got the deprecation warning treatment because it's hard to implement a deprecation of accessing a module, unlike calling a function.


GtkSectionModel and header factory

Add a demo for the new GtkSectionModel in GTK4.

https://docs.gtk.org/gtk4/iface.SectionModel.html
https://docs.gtk.org/gtk4/method.ListView.set_header_factory.html
https://docs.gtk.org/gtk4/class.ListHeader.html

I think it can be closed https://github.com/workbenchdev/demos/pull/206


Sharing update icon

Hi
Sharing icon changed since v1.5.3  as well as the license

License
Icon

AGPLv3-only

here https://www.openapk.net/sharing/com.ammar.sharing/

Updated, thanks !


SetHoldings() Use Minimum Asset Lot Size

Some assets like FX require orders to be in minimum lot sizes of X, e.g. FXCM minimum order size is 1000. The SetHoldings() function could be made smarter to round the order to the nearest order fraction for the requested asset. The rounding quantity could be stored in the symbol-properties-database.csv and stored in the SymbolProperties class.

Couple of ideas

Have the new service interface check for this
Have backtests fail based on this as well
May not make sense if SetHoldings() forces them to compliance anyway but could be useful for Order()

If the algorithm sets a brokerage model it should fail in backtesting as
well for order methods (default brokerage could support units of 1 to avoid
giving everyone errors). Each brokerage/currency pair set have different
minimum lots too it lends itself to the symbol properties database (e.g.
guess 10000 yen for usdyen, 1000usd for eurusd)
On Apr 21, 2016 10:42 PM, "Ray Bohac"<EMAIL_ADDRESS>wrote:
Couple of ideas

Have the new service interface check for this
Have backtests fail based on this as well
May not make sense if SetHoldings() forces them to compliance anyway but
could be useful for Order()

—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/QuantConnect/Lean/issues/386#issuecomment-213215803

Closed by 380b0b4


decorations: support params for singleton_contextmanager

lru_cache has that problem too... could it be resolved with Signature.bind


DBZ-8430 Use list of columns in incremental snapshot select stmt

https://issues.redhat.com/browse/DBZ-8430
https://debezium.zulipchat.com/#narrow/channel/302529-community-general/topic/Incremental.20Snapshots.20-.20Hidden.20Columns

Hi @wukachn, it seems the test failures are related. Could you take a look?

Ill take a look at the ITs at some point today

Looks like the initial change has made MySQL schema changes not supported at all during an incremental snapshot. If thats true then schema changes must have never been supported during a MySQL incremental snapshot if the user was using column filters. @Naros was the team aware of this nuance?
I haven't looked too deep into how to get it working again but I imagine it'd take some time for me to gain the confidence to make a meaningful change. Im happy to take suggestions from someone who has more knowledge of the codebase.

hey @wukachn, I've been tracking this issue as it relates to a problem we had in Prod for Mysql.  I think you may be right and that incremental snapshot has possibly just never worked with a column filter applied for some of the sources.  As far as I can tell there isn't a test in place for incremental snapshots with column filters applied.
I will ask about it in Zulip as well as I guess that would be unrelated to the specific issue of handling invisible columns but if I set column.include.list to include a subset of columns for my table and then run an incremental or blocking snapshot I get this warning:  {"timestamp":"2024-11-24T13:36:04.785293758+02:00","sequence":991,"loggerClassName":"org.slf4j.impl.Slf4jLogger","loggerName":"io.debezium.config.CommonConnectorConfig","level":"WARN","message":"The signal event 'Struct{}' should have 3 fields but has 0"
This is coming from the below code it seems in CommonConnectorConfig.  It would be cool if you could sanity check if you see the same behaviour in 3.0.1 for sql server.  I'm also not sure why that would cause the schema change to time out though which is what I saw when I ran tests using your code.
    public Optional<String[]> parseSignallingMessage(Struct value, String fieldName) {         final Struct event = value.getStruct(fieldName);         if (event == null) {             LOGGER.warn("Field {} part of signal '{}' is missing", fieldName, value);             return Optional.empty();         }         List<org.apache.kafka.connect.data.Field> fields = event.schema().fields();         if (fields.size() != 3) {             LOGGER.warn("The signal event '{}' should have 3 fields but has {}", event, fields.size());             return Optional.empty();         }         return Optional.of(new String[]{                 event.getString(fields.get(0).name()),                 event.getString(fields.get(1).name()),                 event.getString(fields.get(2).name())         });     }

Looks like the initial change has made MySQL schema changes not supported at all during an incremental snapshot. If thats true then schema changes must have never been supported during a MySQL incremental snapshot if the user was using column filters. @Naros was the team aware of this nuance?

I tried to set the column filters in the schemaChanges test and it works with the old version.
With you changes it works if you specify the column filters and not work if you not specify it.
The scenario is

The table has initially two column: a,b
Some record inserted
Then the table will be modified with a third column: c
Some record will be inserted
The column c will be removed
Some record inserted

So during the incremental snapshot can happen that when it is processing some chunk an the last table definition was with the column c but then the table has no more the c column.
This before was not happening since the * always match the current table columns.
@Naros @jpechane any idea?

Maybe the only solution here is that when a table has hidden field, the column.include.list must be specified. WDYT?

@mfvitale I asked what I guess is a related question here:  https://debezium.zulipchat.com/#narrow/channel/348104-community-mysql-mariadb/topic/Expected.20behaviour.20of.20column.2Einclude.2Elist.20for.20multiple.20table
Basically just trying to understand the intended behaviour of the column filter as it appears to apply globally even to the debezium_signal table (i.e. in RelationalDatabaseSchema it excludes the signal table columns and you can't then read signals from it) and so if you specify include columns you need to make sure to include every column across all of your tables which is is not ideal

What I think is wrong here is that we are using the select statement for chunk query also for read the table in readSchema.

Hey @mfvitale, I just wanted to follow up on what you were saying above as I've been tracking this issue.  Is there any downside to just having always having the select statement for readSchema be select * from table with conditions?
Not sure what the least hacky way to do that would be though.  Maybe a new method so instead of calling buildChunkQuery in readSchema you call a new buildSchemaQuery  method or something like that so you can have something more similar to the old logic where you select * unless there is include/exclude column list?

So during the incremental snapshot can happen that when it is processing some chunk an the last table definition was with the column c but then the table has no more the c column.

There is a window between the schema change validation step and the execution of the query where I could imagine this error happening, and we should likely guard against this race condition. The question is whether or not we can efficiently guard against this :thinking: .

What I think is wrong here is that we are using the select statement for chunk query also for read the table in readSchema.

I believe we need both, its what we do for the initial snapshots I do believe, right?

Basically just trying to understand the intended behaviour of the column filter as it appears to apply globally even to the debezium_signal table (i.e. in RelationalDatabaseSchema it excludes the signal table columns and you can't then read signals from it) and so if you specify include columns you need to make sure to include every column across all of your tables which is is not ideal

In that case why not use column.exclude.list and remove the opposing data set @nathan-smit-1 ?

Not sure what the least hacky way to do that would be though. Maybe a new method so instead of calling buildChunkQuery in readSchema you call a new buildSchemaQuery method or something like that so you can have something more similar to the old logic where you select * unless there is include/exclude column list?

I believe the idea @nathan-smit-1 was to always apply a list of columns. For example in the initial snapshot, if we find the user supplies a SELECT * based override or there is no override, we turn that into a SELECT <explicit list of columns> query. It's my understanding that were attempting to mimic that exactly.

Although thinking about it now, the above would pass the tests but then likely not actually work for the invisible columns :(
So would need some other creative way, but I think conceptually having readSchema have its own logic could work.  Or maybe assume the schema changed based on the readSchema failure and have verifySchemaUnchanged handle things a little differently?  It's a tricky one.

Not sure what the least hacky way to do that would be though. Maybe a new method so instead of calling buildChunkQuery in readSchema you call a new buildSchemaQuery method or something like that so you can have something more similar to the old logic where you select * unless there is include/exclude column list?

I believe the idea @nathan-smit-1 was to always apply a list of columns. For example in the initial snapshot, if we find the user supplies a SELECT * based override or there is no override, we turn that into a SELECT <explicit list of columns> query. It's my understanding that were attempting to mimic that exactly.

@Naros Apologies, ended up deleting some responses for clarity.  As I understand the issue, when a column is dropped and we explicitly list out the columns readSchema fails because it does select a, b, c from table to generate the schema but [c] no longer exists.
I was just thinking now though that I recently added readSchemaForTable as part of DBZ-4903 and I'm wondering now if that can't be adapted to do the schema read instead?  I'm busy running some tests at the moment.

What I think is wrong here is that we are using the select statement for chunk query also for read the table in readSchema.

I believe we need both, its what we do for the initial snapshots I do believe, right?

The main difference with the initial snapshot is that we lock tables while reading the schema.

@mfvitale @Naros   I don't wanna monopolise discussion to much on this as it's not my pull request, but FWIW, I did find that having a fallback like the below in the case of sql exception did pass the Mysql tests at least and does then allow snapshots on invisible columns.  The below is also kinda what I was referring to as a "hacky" solution though (i.e. checking the current schema in event of sql exception).  Definitely a problem that is much trickier than it initially seemed.
  private Table readSchema() {
       final String selectStatement = chunkQueryBuilder.buildChunkQuery(context, currentTable, 0, Optional.empty());
       LOGGER.debug("Reading schema for table '{}' using select statement: '{}'", currentTable.id(), selectStatement);

       try (PreparedStatement statement = chunkQueryBuilder.readTableChunkStatement(context, currentTable, selectStatement);
               ResultSet rs = statement.executeQuery()) {
           return getTable(rs);
       }
       catch (SQLException initialException) {
           LOGGER.warn("Initial schema read failed. Attempting alternative schema retrieval.", initialException);

           try {
               // Try reading schema using the alternative method
               Table alternativeTable = readSchemaForTable(currentTable.id());

               // Retry the original query with the alternative table
               final String retrySelectStatement = chunkQueryBuilder.buildChunkQuery(context, alternativeTable, 0, Optional.empty());
               try (PreparedStatement retryStatement = chunkQueryBuilder.readTableChunkStatement(context, alternativeTable, retrySelectStatement);
                       ResultSet retryRs = retryStatement.executeQuery()) {
                   return getTable(retryRs);
               }
           }
           catch (SQLException secondaryException) {
               // If both attempts fail, throw a comprehensive exception
               LOGGER.error("Failed to read schema for table '{}' after multiple attempts", currentTable.id(), secondaryException);
               throw new DebeziumException("Snapshotting of table " + currentTable.id() + " failed after multiple attempts", initialException);
           }
       }
   }

@mfvitale @Naros I don't wanna monopolise discussion to much on this as it's not my pull request, but FWIW, I did find that having a fallback like the below in the case of sql exception did pass the Mysql tests at least and does then allow snapshots on invisible columns. The below is also kinda what I was referring to as a "hacky" solution though (i.e. checking the current schema in event of sql exception). Definitely a problem that is much trickier than it initially seemed.
  private Table readSchema() {
       final String selectStatement = chunkQueryBuilder.buildChunkQuery(context, currentTable, 0, Optional.empty());
       LOGGER.debug("Reading schema for table '{}' using select statement: '{}'", currentTable.id(), selectStatement);

       try (PreparedStatement statement = chunkQueryBuilder.readTableChunkStatement(context, currentTable, selectStatement);
               ResultSet rs = statement.executeQuery()) {
           return getTable(rs);
       }
       catch (SQLException initialException) {
           LOGGER.warn("Initial schema read failed. Attempting alternative schema retrieval.", initialException);

           try {
               // Try reading schema using the alternative method
               Table alternativeTable = readSchemaForTable(currentTable.id());

               // Retry the original query with the alternative table
               final String retrySelectStatement = chunkQueryBuilder.buildChunkQuery(context, alternativeTable, 0, Optional.empty());
               try (PreparedStatement retryStatement = chunkQueryBuilder.readTableChunkStatement(context, alternativeTable, retrySelectStatement);
                       ResultSet retryRs = retryStatement.executeQuery()) {
                   return getTable(retryRs);
               }
           }
           catch (SQLException secondaryException) {
               // If both attempts fail, throw a comprehensive exception
               LOGGER.error("Failed to read schema for table '{}' after multiple attempts", currentTable.id(), secondaryException);
               throw new DebeziumException("Snapshotting of table " + currentTable.id() + " failed after multiple attempts", initialException);
           }
       }
   }

@nathan-smit-1 the problem with the hack is that you can effectively have a table schema without the hidden column and then read the data with the hidden column.
I added needs more thinking as the solution will not be easy here. If you want to propose your way, feel free to work on it.

@mfvitale that makes sense.  Just to put another idea out there:  What if this was configurable such that you could choose to have Debezium list the column but accept the risk that you can't have schema changes during the snapshot?  So the equivalent of setting snapshot.locking.mode to none

@mfvitale that makes sense. Just to put another idea out there: What if this was configurable such that you could choose to have Debezium list the column but accept the risk that you can't have schema changes during the snapshot? So the equivalent of setting snapshot.locking.mode to none

@nathan-smit-1 I think this is not going to works since its what is happening in the tests. Schema must match otherwise you will get  Data row is smaller than a column index, internal schema representation is probably out of sync with real database schema


Properly check argument types in ndarray.save to avoid segfaults.

Prior to this change you could do the easy mistake of accidentally
passing in a ndarray as the second argument of mx.nd.save, instead of
a dict or list. This would lead to a segmentation fault. Here's the
example:
import mxnet as mx
d = mx.nd.zeros((12,12))
mx.nd.save("test", d)

The correct usage of mx.nd.save would have been
mx.nd.save("test", [d])

The reason why this crashes is very subtle. It involves the following
code from mx.nd.save:
for val in data:
   if not isinstance(val, NDArray):
       raise TypeError('save only accept dict str->NDArray or list of NDArray')
   handles.append(val.handle)

Basically if data is a ndarray we can still iterate over it. This
means we iterate over the individual rows. val will be a temporary
ndarray python object holding a reference to a new NDarray C++ object
in handle. The problem is that we keep a reference to val.handle
right before val and therefore also val.handle will be gargabe collected.

It's probably better to do the d = [d] transformation automatically if input is an NDArray

This would totally be possible by keeping a list of references to val instead of val.handle. However this would lead to mx.nd.save to slice up the rows and mx.nd.load to return a list of slices instead of a single matrix:
In [1]: import mxnet as mx

In [2]: d = mx.nd.zeros((2,10))

In [3]: mx.nd.save("testndarray", d)

In [4]: e
Out[4]: [<NDArray 10 @cpu(0)>, <NDArray 10 @cpu(0)>]

So while possible I think the idea of mx.nd.load returning something other than what was passed in in mx.nd.save, seems like the wrong behavior.

No, I meant when you do mx.nd.save('a', mx.nd.zeros((100,))), save will detect that mx.nd.zeros((100,)) is an array instead of a list and save [mx.nd.zeros((100,))] instead. The returned value would be a list of 1 ndarray

ah ok. Sure, I'll update the PR.

I updated the PR according to your comments.


question(drag-drop): createEmbeddedView for drag preview/placeholder templates

A few months back, I opened https://github.com/angular/components/issues/19060 that described a bug with matchSize possibly not working correctly due to the preview template being stamped out inside the drop list's view container...and afterward measuring the original drag item.
The solution I proposed in that thread was to just stamp out the preview template view outside of the DOM, so the drop list container children are never touched before being measured.
The fix for this issue was decided to be to measure the original drag item first, then stamp the preview template out in the existing manner in the drop list view container. This works, but the implementation still bugs me because the template is being stamped out in the view container, modifying the DOM, and then the drag preview element is immediately moved to bottom of the document body, modifying the DOM again (versus the other solution that only modifies the DOM once). Same idea for the placeholder template as well, how it is placed into the DOM and then immediately moved around (using replaceChild)...when it could just be put in the correct place from the start.
@crisbeto made the following comment:

The idea behind inserting the view through the ViewContainerRef is to ensure that it's inside the same view/DI hierarchy as drag item. I agree that ideally we'd just create the element outside the DOM, but an alternate solution is to measure the element before the preview has been created.

but I am struggling to understand this comment ("ensure that it's inside the same view/DI hierarchy as drag item"). As far as I am aware, an injector cannot be specified when using createEmbeddedView and the injector used inside the preview template is simply the injector of the component in which the template is defined.
Issue about this (still open...) from 3 years ago:
https://github.com/angular/angular/issues/14935
So what would stamping a template out using
const viewRef = previewConfig!.viewContainer.createEmbeddedView(previewTemplate, previewConfig!.context);

or
const viewRef = previewTemplate.createEmbeddedView(previewConfig!.context);

have anything to do with dependency injection? I feel like the answer is "nothing" but I might be misunderstanding.
@crisbeto can you explain your comment in more detail as to why it is advantageous to use the view container and/or if something I've said above is not accurate?

It's not just about DI, we also want it to be inside the same change detection tree and have it be destroyed when the surrounding view is destroyed.

we also want it to... have it be destroyed when the surrounding view is destroyed.

This shouldn't be an issue no matter what which method is used. When the surrounding view is destroyed, the CdkDrag.ngOnDestroy() method will call dragRef.dispose() and destroy the preview if one exists.

want it to be inside the same change detection tree

This is valid - I was not thinking about the change detection tree at all.
Something still seems off with the way this is implemented, though, and I think it would only be noticeable if your drop lists were split into separate components with OnPush change detection.
What I mean is that once you begin a drag, the viewRefs for the dragged item, placeholder, and preview are all nested under the view container (change detection tree) of the component in which the cdkDrag is defined. This is fine, until you consider dragging the item to a second list living inside a different parent component. The DOM manipulation to visually execute this is done manually. At this point, with the item entered into a second list, you more-or-less no longer care about the first list...yet the viewRefs for the dragged item, placeholder, and preview are all still tied to the first drop list container (again, because things were moved around manually and not through Angular). Ideally at this point, the viewRefs would be attached to the drop list container that the item is actively inside of.
This issue can kind of be seen with a fork of the StackBlitz example I posted a few days ago regarding updating the drag preview dynamically.
StackBlitz fork
The drop lists are separated out into separate components this time.
Notice how dragging an item from the first drop list to the second will change the preview, but continuing the drag out of the second and into the third does not change the preview (because this drag interaction does not interact with the first container, so nothing triggers the first container to be marked as dirty). Granted, this can be worked around by manually triggering change detection/marking for check.
I wish there was a way to attach a viewRef to a viewContainerRef without having the viewContainerRef trying to move/insert the viewRef's DOM nodes. I believe, similar to how applicationRef.attachView() functions.
Do you know if this is possible with public APIs?

Thanks for the example, I see what you mean now. I don't think there's a way for us to move it into a new change detection tree without recreating it. As you said, it'll be easier to markForCheck the source and destination containers.


beautiful-react-redux/check should be configurable

The initial suggestions will be to allow throw an error instead of console.error.
It might look like this:
import check from 'beautiful-react-redux/check';

check({throwError: true});

Any other thoughts @theKashey?

The only question - who we are going to confugure - beautiful-react-redux, which could wrap shouldBePure with itown logic, or memoize-state, which generating errors.
There is also a problem with verbosity in memoize-state after https://github.com/theKashey/memoize-state/issues/5
There is also one more point to configure - "the safe" memoization mode (https://github.com/theKashey/memoize-state/blob/master/src/index.js#L240) used here. It will also check that 2 "same" mapStateToProps calls will use the same keys to generate result, which may fail if you have deep reselect cascade.
Ie, look like configuration should be just passed down to memoizeState, and there is 3 points to set

log or throw in purityCheck
use safe mode or not.
detect spreads or not.

2 last are enabled by default, but might be better disabled.

import setConfig from 'beautiful-react-redux/check'
setConfig({ onNotPure: (...errormsg) => { throw new Error(errormsg.join(''));

Not documented feature yet, not sure about naming. But you could try it.

Looks good!
I would rename it to onError and pass error object in, e.g.
setConfig({onError: (err) => throw err});

I don't think you can do much with whatever array is passed in.
But huge thanks anyway 👍

And now I have understand how to make it better....


feat: explorer components integration

Description
Explorer new version integration. Integrates all the new components and re-style the current explorer landing.
Light mode:

Dark mode:

Type of change

[x] New feature
[ ] Bug fix
[ ] Optimization
[ ] Refactor

Checklist

[ ] “Hotfix” to testnet, everything else to staging
[ ] Linked to Github Issue
[ ] This change depends on code or research by an external entity

[ ] Acknowledgements were updated to give credit

[ ] Unit tests added
[ ] This change requires new documentation.

[ ] Documentation has been added/updated.

[ ] This change is an Optimization

[ ] Benchmarks added/run

[ ] Has a known issue

Link to the open issue addressing it

[ ] If your PR changes the Operator compatibility (Ex: Upgrade prover versions)

[ ] This PR adds compatibility for operator for both versions and do not change batcher/docs/examples
[ ] This PR updates batcher and docs/examples to the newer version. This requires the operator are already updated to be compatible

Closing this one in favour of #1683.


Save strong reference to create_task

Important Save a reference to the result of this function, to avoid a task disappearing mid-execution. The event loop only keeps weak references to tasks. A task that isn’t referenced elsewhere may get garbage collected at any time, even before it’s done. For reliable “fire-and-forget” background tasks, gather them in a collection:

thanks


Dropdown does not work with Safari

Dropdown does not work with Safari.
Version 17.4 (196<IP_ADDRESS>.12)
beercss version: 3.5.1
I simply used:
<button>
  Default
  arrow_drop_down
  <menu>
    Item 1
    Item 2
    Item 3
  </menu>
</button>

However, i noticed they do work in https://www.beercss.com

Hi @alaibe
This is a limitation of Safari, https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#clicking_and_focus

Also, You can try another the triggers methods here https://github.com/beercss/beercss/blob/main/docs/MENU.md.
Hope this helps.


Revert "Add logging on pod/svc ip k8s operations (#990)"

We fixed the issue in #933, these logs are not needed anymore.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 50.73%. Comparing base (683b50d) to head (299ac5e).

:exclamation:  There is a different number of reports uploaded between BASE (683b50d) and HEAD (299ac5e). Click for more details.
HEAD has 2 uploads less than BASE

Flag
BASE (683b50d)
HEAD (299ac5e)

oats-test
1
0

k8s-integration-test
1
0

Additional details and impacted files
@@             Coverage Diff             @@
##             main     #993       +/-   ##
===========================================
- Coverage   78.72%   50.73%   -28.00%
===========================================
  Files         134      134
  Lines       10721    10705       -16
===========================================
- Hits         8440     5431     -3009
- Misses       1753     4912     +3159
+ Partials      528      362      -166

Flag
Coverage Δ

k8s-integration-test
?

oats-test
?

unittests
50.73% <ø> (+<0.01%)
:arrow_up:

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[PE-D][Tester E] Warning message should be given to adding contact with duplicate number

Good job on checking for duplicate contact using both name and contact number, but the user might accidentally add a contact with a different name but same number, potentially referring to the same person. Hence an error message should be issued.

Labels: severity.Medium type.FeatureFlaw
original: yu-sutong/ped#4

similar to #259

duplicate of #259


[tool_crash] StateError: Bad state: No context with the running Dart application.

Command
flutter --no-color run --machine --track-widget-creation --device-id=chrome --start-paused --dart-define=flutter.inspector.structuredErrors=true lib\main.dart

Steps to Reproduce

...
...
...

Logs
StateError: Bad state: No context with the running Dart application.
#0      RemoteDebuggerExecutionContext.id (package:dwds/src/debugging/execution_context.dart:55:7)
<asynchronous suspension>
#1      AppInspector._getExtensionRpcs (package:dwds/src/debugging/inspector.dart:538:20)
<asynchronous suspension>
#2      AppInspector._initialize (package:dwds/src/debugging/inspector.dart:97:34)
<asynchronous suspension>
#3      AppInspector.initialize (package:dwds/src/debugging/inspector.dart:160:5)
<asynchronous suspension>
#4      ChromeProxyService.createIsolate (package:dwds/src/services/chrome_proxy_service.dart:216:18)
<asynchronous suspension>

[✓] Flutter (Channel stable, 2.10.5, on Microsoft Windows [Version 10.0.19044.1706], locale en-US)
    • Flutter version 2.10.5 at C:\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 5464c5bac7 (4 months ago), 2022-04-18 09:55:37 -0700
    • Engine revision 57d3bac3dd
    • Dart version 2.16.2
    • DevTools version 2.9.2

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at C:\Users\hosei\AppData\Local\Android\sdk
    • Platform android-32, build-tools 32.1.0-rc1
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop for Windows (Visual Studio Community 2022 17.2.6)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.2.32630.192
    • Windows 10 SDK version 10.0.19041.0

[✓] Android Studio (version 2021.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)

[✓] IntelliJ IDEA Ultimate Edition (version 2021.3)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA 2021.3.2
    • Flutter plugin version 69.0.3
    • Dart plugin version 213.7371

[✓] VS Code (version 1.70.2)
    • VS Code at C:\Users\hosei\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (2 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 104.0.5112.102
    • Edge (web)   • edge   • web-javascript • Microsoft Edge 104.0.1293.70

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Flutter Application Metadata
Type: app
Version: 1.0.0+1
Material: true
Android X: false
Module: false
Plugin: false
Android package: null
iOS bundle identifier: null
Creation channel: stable
Creation framework version: 5464c5bac742001448fe4fc0597be939379f88ea

https://github.com/flutter/flutter/issues/95916
does it occur with the latest flutter version?
try running flutter upgrade -f

@hanjidani
Per above comment, the original issue has been fixed as part of https://github.com/flutter/flutter/issues/95916, so try upgrading to latest master / stable and run the command again to see if you still get same error or not.
Closing for now, as this issue has been fixed already.


Error with Ionic Push + Ionic Package

Hello guys!
I have a problem with push and ionic package! This is my build output in ionic package, why?

Duplicate of #153, can be closed.


Remove code path per TODO

Affected versions are then correctly calculated for CVE-2022-0074

we had discussed this one offline: it's a little risky given that it may increase the number of false positives for commit based hashing. Let's park it for now and assess how important this is for the NVD ingestion.


Home Pages

Needs specs
https://www.gnosischain.com/
https://www.gnosischain.com/evm

Including:

Home Page
Home sections: Tools, Developers, Run a Node

KIV given the separate #comms-website workstream


cant download prebuilt binaries

First of all, thank you for this package! I'm using it in electron app.
Yesterday and today I'm experiencing problems with downloading:
node-pre-gyp http GET https://node-pre-gyp.addaleax.net/lzma-native/lzma_native-v6.0.1-n-api-win32-x64.tar.gz
node-pre-gyp WARN Pre-built binaries not installable for<EMAIL_ADDRESS>and<EMAIL_ADDRESS>(node-v83 ABI, unknown) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error connect ECONNREFUSED <IP_ADDRESS>:443

Is it some server problem? Thank you!

Closing the issue. It is working currently.
Is there any way to help you to prevent such server down time?

@pplonski You can update to the latest version of lzma-native, which doesn’t require network access at all. In the long run, that’s the solution here.


Set EUI spacer to small

Context
This PR introduces a tiny fix to the UI to correct the size of the pyfunc ensembler deployment panel from large to small.

Thanks for the swift approval! 🚀


fix(frontend): update content of validation modal

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

:tada: This PR is included in version 2.0.1 :tada:
The release is available on npm package (@latest dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.2-alpha.1 :tada:
The release is available on npm package (@alpha dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 2.1.0-alpha.1 :tada:
The release is available on npm package (@alpha dist-tag)
Your semantic-release bot :package::rocket:


Randomly dropping CSS modules from entrypoint on watch recompilation

Bug report

What is the current behavior?
First compilation always works. However, during development in watch mode, subsequent recompilations drop other included modules from the final output.
When modifying app.less in development, only the contents of app.less and chart.css are included on recompilation in watch mode. That is, 3col.less and compact ranking.less are excluded. I investigated why chart.css survives but the other two are discarded, and it is due to the file extension. If I rename chart.css -> chart.less, it is also dropped on recompilation in watch mode.
It should be noted the behaviour is not always reproducible on first recompilation. Sometimes it takes 2-3 changes to app.less before the bug shows itself. The modifications can be in quick succession, so time is not a factor, just the number of recompiles.
If the current behavior is a bug, please provide the steps to reproduce.
const path = require('path');

const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = {
    mode: 'development',
    // Absolute base directory for entry points and resource paths.
    context: path.resolve(__dirname, 'static'),
    entry: {
        app: [
            './css/3col.less',
            './css/app.less',
            './css/chart.css',
            './css/compact ranking.less',
        ],
    },

    output: {
        path: path.resolve(__dirname, 'static/c'),
        publicPath: '',
    },

    plugins: [
        new MiniCssExtractPlugin(),
    ],

    module: {
        rules: [
            {
                test: /\.(less|css)$/,
                use: [
                    {
                        loader: MiniCssExtractPlugin.loader,
                    },
                    {
                        loader: 'css-loader',

                        options: {
                            url: false,
                            sourceMap: true,
                        },
                    },
                    {
                        loader: 'less-loader',

                        options: {
                            sourceMap: true,
                        },
                    },
                ],
            },
        ],
    },
};

What is the expected behavior?
When app.css is recompiled, all included assets (3col.less,  app.less, chart.css and compact ranking.less ) should still be present in the output.

Other relevant information:
webpack version:  5.11.0
Node.js version: v14.15.3
Operating System:  Windows 10
Additional tools:

<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
Program output
Below is the output from a full recompile plus two additional watch recompiles. The first watch recompile is successful. The second watch recompile drops modules, leaving the output file in a bad state.
$ webpack --watch
[webpack-cli] Compilation starting...
[webpack-cli] Compilation finished
assets by path *.css 18.4 KiB
  asset app.css 13.4 KiB [emitted] (name: app)
  asset search.css 3.18 KiB [compared for emit] (name: search)
  asset club250.css 1.81 KiB [compared for emit] (name: club250)
assets by path *.js 9.99 KiB
  asset app.js 3.88 KiB [compared for emit] (name: app)
  asset search.js 3.06 KiB [compared for emit] (name: search)
  asset club250.js 3.05 KiB [compared for emit] (name: club250)
Entrypoint club250 4.86 KiB = club250.css 1.81 KiB club250.js 3.05 KiB
Entrypoint app 17.2 KiB = app.css 13.4 KiB app.js 3.88 KiB
Entrypoint search 6.25 KiB = search.css 3.18 KiB search.js 3.06 KiB
runtime modules 822 bytes 3 modules
code generated modules 400 bytes (javascript) 18.3 KiB (css/mini-extract) [code generated]
  cacheable modules 400 bytes
    modules by path ./css/*.css 200 bytes 4 modules
    modules by path ./css/*.less 200 bytes 4 modules
  css modules 18.3 KiB
    modules by path ./css/*.css 4.99 KiB 4 modules
    modules by path ./css/*.less 13.4 KiB
      css ../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./css/3col.less 1.37 KiB [code generated]
      css ../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./css/app.less 9.96 KiB [code generated]
      css ../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./css/chart.less 1.73 KiB [code generated]
      css ../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./css/compact ranking.less 300 bytes [code generated]
webpack 5.11.0 compiled successfully in 455 ms
[webpack-cli] watching files for updates...
[webpack-cli] Compilation starting...
[webpack-cli] Compilation finished
assets by status 28.3 KiB [cached] 6 assets
Entrypoint club250 4.86 KiB = club250.css 1.81 KiB club250.js 3.05 KiB
Entrypoint app 17.2 KiB = app.css 13.4 KiB app.js 3.88 KiB
Entrypoint search 6.25 KiB = search.css 3.18 KiB search.js 3.06 KiB
cached modules 350 bytes (javascript) 18.3 KiB (css/mini-extract) 822 bytes (runtime) [cached] 18 modules
./css/app.less 50 bytes [built]
webpack 5.11.0 compiled successfully in 97 ms
[webpack-cli] watching files for updates...
[webpack-cli] Compilation starting...
[webpack-cli] Compilation finished
assets by status 15 KiB [cached] 5 assets
asset app.css 13.4 KiB [emitted] (name: app)
Entrypoint club250 4.86 KiB = club250.css 1.81 KiB club250.js 3.05 KiB
Entrypoint app 17.2 KiB = app.css 13.4 KiB app.js 3.88 KiB
Entrypoint search 6.25 KiB = search.css 3.18 KiB search.js 3.06 KiB
cached modules 350 bytes (javascript) 8.38 KiB (css/mini-extract) 822 bytes (runtime) [cached] 17 modules
modules by path ./css/*.less 50 bytes (javascript) 9.96 KiB (css/mini-extract)
  ./css/app.less 50 bytes [built]
  css ../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./css/app.less 9.96 KiB [code generated]
webpack 5.11.0 compiled successfully in 79 ms
[webpack-cli] watching files for updates...

When app.css is recompiled, all included assets (3col.less, app.less, chart.css and compact ranking.less ) should still be present in the output.

By default webpack uses memory cache in development mode, so on second and more compilations unchanged files not rebuilded and so not output in terminal, anyway all necessary data available in stats

Look here:
cached modules 350 bytes (javascript) 18.3 KiB (css/mini-extract) 822 bytes (runtime) [cached] 18 modules

cached modules 350 bytes (javascript) 8.38 KiB (css/mini-extract) 822 bytes (runtime) [cached] 17 modules

What are you talking about? Whether or not the assets are cached, when webpack regenerates the app entrypoint, only half the files are present in the output app.css. That is, only the contents of app.less and chart.css are present in the output. The other files (3col.less and compact ranking.less) are EXCLUDED from the GENERATED FILE so the page appear corrupted because CSS is MISSING. Please reopen this issue.

Сhange your tone of communication, don't be toxic, I try to reproduce the problem using If the current behavior is a bug, please provide the steps to reproduce. and all works fine, please create reproducible test repo, thanks
Also your configuratoin is invalid:
module: {
        rules: [
            {
                test: /\.(less|css)$/,
                use: [
                    {
                        loader: MiniCssExtractPlugin.loader,
                    },
                    {
                        loader: 'css-loader',

                        options: {
                            url: false,
                            sourceMap: true,
                        },
                    },
                    {
                        loader: 'less-loader',

                        options: {
                            sourceMap: true,
                        },
                    },
                ],
            },
        ],
    },

You apply less-loader to CSS files, so it some bug on less side, but I can't say it 100%, because I don't have a code

Try to use less@3 too

I am not trying to be toxic but you closed my issue as invalid with no resolution when it is very valid very problematic.
As mentioned, reproduction is not consistent:

You must run webpack in watch mode
One of the dependent files must be regenerated at least 2/3, maybe even 4/5 times before the bug exhibits itself.

Regarding the invalid configuration, this invalid configuration was generated by the config generator of webpack-cli, so if it truly is invalid that's another bug in webpack code.
In any case, I seriously doubt this has anything to do with less or any of loaders because it is webpack that is instructed to include four files in the entrypoint and it seems to me that it is webpack that is dropping them.

Regarding the invalid configuration, this invalid configuration was generated by the config generator of webpack-cli, so if it truly is invalid that's another bug in webpack code.

It is not webpack core bug, it is bug on webpack-cli, and feel free to open an issue

In any case, I seriously doubt this has anything to do with less or any of loaders because it is webpack that is instructed to include four files in the entrypoint and it seems to me that it is webpack that is dropping them.

We cannot guess, I already answered earlier that I cannot reproduce, so it seems to me that this is due to loaders/plugins, especial less-loader

I am not trying to be toxic but you closed my issue as invalid with no resolution when it is very valid very problematic.

Understand me too, I cannot try to fix something and somewhere without being able to even reproduce the problem, I am not a predictor

Downgrading to less@3 made no difference.

Still can't reproduce

If I update the config to be valid, the problem still persists.
{
    test: /\.css$/,
    use: [
        {
            loader: MiniCssExtractPlugin.loader,
        },
        {
            loader: 'css-loader',

            options: {
                url: false,
                sourceMap: true,
            },
        },
    ],
},
{
    test: /\.less$/,
    use: [
        {
            loader: MiniCssExtractPlugin.loader,
        },
        {
            loader: 'css-loader',

            options: {
                url: false,
                sourceMap: true,
            },
        },
        {
            loader: 'less-loader',

            options: {
                sourceMap: true,
            },
        },
    ],
}

I will reopen the issue when I reproduce it, maybe move to mini-css-extract-loader or other repo, plese create minimum reproducible test repo

@alexander-akait I tried to reproduce it with a separate repo but I could not. Not even using the exact sample files could I reproduce it. Yet at the same time, the exact same files in my original project were consistently exhibiting this behaviour. So I restarted my IDE and now I cannot reproduce the problem even in the original repo. So it seems there was some sort of problem running watch via PhpStorm. Or, somehow, Node running via PhpStorm had become irredeemably corrupted, but even that explanation makes no sense to me, because every time I restarted webpack to generate the correct output, it spawns a new Node process.
I don't know if I'm ever going to be able to reproduce it at this point (hopefully not), but it still bothers me that I have no explanation for why it occurred to begin with.

These are the things I'm talking about. We have a lot of old issues with the same problems, and now we cannot close them, because we cannot answer (so it is why we closed not reproducible problems, excluding explicit), yep, it looks like file system and cache issues in your IDE, if you run into it again recommended looking at stats (especial birthtime and changed time) and content of files.


Adding more sections -3

Create a /arrivals.html page and link it to NEW ARRIVALS in the navbar and to the Explore more button of section New Arrival's Collection on the home page.

📝Note:- You don't have to design the page, just create a blank page and link it with the home page 🤓

Hey @saloni-15 may I work on this?

Hey! I would like to contribute in this.

sure @JanviRaina

can I work too on this?

can I work too on this?

this issue is already assigned for now

@JanviRaina, what's the status of this issue?

@saloni-15 can i work on this issue want to contribute to hacktoberfest and i am a beginer

I want to contribute to this if not assigned. Please assign me.

I would also like to contribute. Please assign me if it's available.


Update File Picker to use new Files API

I wonder if just following the redirect works? that'd help with backward compatibility.

We can do that, but I think updating the API link is the better move because if we follow redirects then all HTTP requests will be N+1. We should move the File Picker into the Dashboard once we finalize the plan for the JS upgrades in the Dashboard.
To follow redirects:
return fetch(pathmod.resolve(fs_api_root, path.replace(/(^\/)/, '')), {
  credentials: 'same-origin',
  redirect: 'follow',
});

Hello,
I've been using the master branch of the js_filepicker with the master branch of ondemand.
But I'm still getting a parsing error very similar to this one.
Though, the nginx log shows a different message I think:
ERROR "No such file or directory @ rb_file_s_stat - /https:/ao-ood2/pun/sys/dashboard/files/fs/home/toto"
INFO "method=GET path=/pun/sys/dashboard/files/api/v1/fs/https:/ao-ood2/pun/sys/dashboard/files/fs/home/toto format=html controller=FilesController action=fs status=200 duration=49.26 view=28.12"

I've been trying to force the path using replacing the 'fetch' like this:
  return fetch('/pun/sys/files/api/v1/fs/home/toto', {
    credentials: 'same-origin',
    redirect: 'follow',
  });

Although I no longer see any error in the nginx log, I'm still getting the parsing error anyway.
INFO "method=GET path=/pun/sys/dashboard/files/api/v1/fs/home/toto format=html controller=FilesController action=fs status=200 duration=39.15 view=19.50"

Thanks! I opened another ticket - #150. I think @msquee may have identified this or similar. In any case thanks for the very good info in the comment!


Deal with outlier columns

There can be occasional outlier columns which have slightly more flux in wings than neighbours. Perhaps could add some outlier identification and smooth over these.

 Add smoothing to applesoss to handle outlier columns


Fix document of r_ and c_

Args of r_ and c_ have been broken. I eliminate the document of Args since it seems unnecessary.

LGTM!


python scripts/rubric_eval.py enconter output like "Could not extract citations and excerpts: 'max_tokens'"

running the following command in terminal
python scripts/rubric_eval.py     --qa-dir data/scholarqa_cs/src_answers     --test-config data/scholarqa_cs/test_configs_snippets.json     --rubrics --snippets

i wonder the script named rubric_eval.py running with the upper command just eval the rubric then output a final usefulness score? it also output a result_date.json file with all zero entry like
{"data/scholarqa_cs/src_answers/gpt-4o-ai2_rubric_reranking_pes2o_top_15_reranking_you_feedback_no_post_edit.jsonl": [{"scores": {"score": 0.0, "ann_score": 0.0, "length": 0.0, "expertise": 0.0, "citations": 0.0, "excerpts": 0.0, "most_important_item_0": 0.0, "most_important_item_0_evidence": 0.0, "most_important_item_1": 0.0, "most_important_item_1_evidence": 0.0, "most_important_item_2": 0.0, "most_important_item_2_evidence": 0.0, "most_important_item_3": 0.0, "most_important_item_3_evidence": 0.0, "most_important_item_4": 0.0, "most_important_item_4_evidence": 0.0, "nice_to_have_item_0": 0.0, "nice_to_have_item_0_evidence": 0.0}, "case_id": "00bdd80debc8549198001289188c6bea", "annotator": "Annotator 1 Assignments", "agreement": false, "question": "How can I use an hybridization of ontology and machine learning for text summarization ?"}, {"scores": {"score": 0.0, "ann_score": 0.0, "length": 0.0, "expertise": 0.0, "citations": 0.0, "excerpts": 0.0, "most_important_item_0": 0.0, "most_important_item_0_evidence": 0.0, "most_important_item_1": 0.0, "most_important_item_1_evidence": 0.0, "most_important_item_2": 0.0, "most_important_item_2_evidence": 0.0, "most_important_item_3": 0.0, "most_important_item_3_evidence": 0.0, "nice_to_have_item_0": 0.0,


python client for GROBID REST services note producing an output

It seems to be processing the PDF file, but it's not leaving any output file. Here is my code
!git clone https://github.com/kermitt2/grobid-client-python

#download sample pdf import urllib.request

urllib.request.urlretrieve('https://arxiv.org/pdf/1705.04304', 'sorcher.pdf')

import os

#make output folder
if not os.path.exists('output'):
    os.mkdir('output')

%cd grobid-client-python

!python3 grobid-client.py --input /content --output /content/output processFulltextDocument

%cd ..
os.listdir('output')

For convenience here is a direct link to my colab notebook with the code, so you just have to run-> all
https://colab.research.google.com/drive/1hdXViFDWbqZKJS7hsTts7P6t7-dmieXB

Hello! using the command line works fine for me for this file.
Very basic question, but it's not visible on your script, which grobid server are you using?

Hello,
Forgive my inexperience in python, but I think my mistake was that a server needs to be set up, but I didn't do that. I am very new to python. I just found this, will tinker around
https://grobid.readthedocs.io/en/latest/

No problem! For testing, feel free to use the demo server by changing the host and port in the file config.json (change grobid_server to cloud.science-miner.com/grobid and put nothing for grobid_port). Of course, only for testing and small number of files... other people might use the demo and I put some quotas. If you're doing serious work with the tool, it is strongly recommended to set up your own server.


Add defs for Node's 'os' module

Simple as it sounds

Looks fine to me. Feel free to merge at your leisure :)


Unmet peer requirement issues with tailwind-merge

Issue
Most recent version of tailwind-merge is at v2.5.2 and the @fluid-tailwind/tailwind-merge plugin is requesting v2.4.0 which is causing yarn install peer requirement warning when running yarn install in yarn v.4.4.1.
Workaround
Downgrade current version of tailwind-merge.
Thanks for building this library . It's a greatly needed tool. This issue isn't a blocker in the least but we would prefer to be running the newest version of tailwind-merge without any yarn install warning/errors.

Hi, thanks for the kind words. I relaxed the peer dep in 0.0.3 because tailwind-merge 2.5 still supports the experimental feature fluid-tailwind needs. 👍


Make PBxplore installable

PBxplore should have a setup.py file so it can be installed system wide or in a virtualenv.

Fixed by #96


rust: cannot determine cargoSha256

Describe the bug
I am currently on the latest stable relese 20.09. Used to be able to pull the correct cargoSha256 from a failed build. After recently trying to override rnix-lsp to the latest git commit, when the build fails, there is no correct cargoSha256 value to paste into the overlay. All it says is:
ERROR: cargoSha256 is out of date

Cargo.lock is not the same in rnix-lsp-0.1.0-vendor.tar.gz

To fix the issue:
1. Use "0000000000000000000000000000000000000000000000000000" as the cargoSha256 value
2. Build the derivation and wait it to fail with a hash mismatch
3. Copy the 'got: sha256:' value back into the cargoSha256 field

However, after reviewing the entire failed build log, there is no longer a line containing the proper hash as their used to be. Even if I follow the instructions above and replace the full hash with 0's, still there is no proper hash in the build log.
To Reproduce
Steps to reproduce the behavior:
Use this overlay in a NixOS 20.09 configuration:
final: prev: {
  rnix-lsp = prev.rnix-lsp.overrideAttrs (o: {

    src = prev.fetchFromGitHub {
      owner = "nix-community";
      repo = "rnix-lsp";
      rev = "23a07432e98a9a34812c4e6bde5ff40a73f290c1";
      hash = "sha256-G8Tn703lTxUzgmQVNm/v1e40QQrGhymBkuzydM/xrho=";
    };

    cargoSha256 = "0000000000000000000000000000000000000000000000000000";

  });
}

Attempt to build rnix-lsp, and review the build log.
Notice how there is no cargoSha256 to be found anywhere in the log.
I have also attached the build log so you can skip the above steps and see for yourself that the hash is nowhere in the log.
log.gz
Expected behavior
On 20.03, it was quite simple to simply pull the proper hash from the failed build log and copy and paste it into the overlay for rust packages.
Notify maintainers
@andir

See here. You'll need to use cargoDeps instead of cargoSha256.

@pikpikpikpik-123, this actually doesn't work. During a build, its still referencing the old version somewhere that I can't seem to override. Following the threads advice the following overlay should work, but doesn't:
final: prev:
let
  pname = "pijul";
  version = "1.0.0-alpha.48";
  name = "${pname}-${version}";

  src = prev.fetchCrate {
    inherit version pname;
    sha256 = "sha256-L9LoyZ3wrEYJq/W8bL7RfGTc+IIlGdHvlUJyW4wpXyc=";
  };
in
{
  pijul = prev.pijul.overrideAttrs (drv: {
    inherit src version;

    cargoDeps = drv.cargoDeps.overrideAttrs (prev.lib.const {
      inherit src;
      name = "${name}-vendor.tar.gz";
      outputHash = "sha256-PmlZFT+E/NGDq0EneImwoZr7qyp+ptlxH/dabGeZDjQ=";
    });
  });
}

It fails with the following:
error: --- Error ----------------------------------------------------------------- nix
builder for '/nix/store/g82pqh35r3wblfy9pw59qlxddfwiz2qm-pijul-1.0.0-alpha.48.drv' failed with exit code 1; last 7 log lines:
  unpacking sources
  unpacking source archive /nix/store/5px1np78xvckbj7yp5a4zvmjvarl983g-pijul-1.0.0-alpha.48.tar.gz
  source root is pijul-1.0.0-alpha.48.tar.gz
  unpacking source archive /nix/store/41a7lm0ibji2jgp3fnx8kgg0d1igmqlm-pijul-1.0.0-alpha.48-vendor.tar.gz
  setting SOURCE_DATE_EPOCH to timestamp<PHONE_NUMBER> of file pijul-1.0.0-alpha.48.tar.gz/src/repository/unix_lock.rs
  patching sources
  /nix/store/npdq5pilrfsklvhx0ws44lykc1rl1i66-stdenv-linux/setup: line 81: pushd: ../pijul-0.12.0-vendor.tar.gz/thrussh/: No such file or directory

The last line shows a reference to the previous version 0.12.0 even though the version has been overriden to v1.0.0-alpha.48

This workaround worked for me: https://discourse.nixos.org/t/is-it-possible-to-override-cargosha256-in-buildrustpackage/4393/4
Example usage in my overlay:
let
  nixpkgs-unstable-for-bupstash-source = super.fetchFromGitHub {
    owner = "NixOS";
    repo = "nixpkgs";
    rev = "29b0d4d0b600f8f5dd0b86e3362a33d4181938f9";
    sha256 = "sha256:10cafssjk6wp7lr82pvqh8z7qiqwxpnh8cswnk1fbbw2pacrqxr1";
  };
  nixpkgs-unstable-for-bupstash = import nixpkgs-unstable-for-bupstash {};
in
  # This override incantation is from https://discourse.nixos.org/t/is-it-possible-to-override-cargosha256-in-buildrustpackage/4393/4.
  bupstash_unstable = super.callPackage (nixpkgs-unstable-for-bupstash-source + "/pkgs/tools/backup/bupstash/default.nix") {
    rustPlatform = super.rustPlatform // {
      buildRustPackage = args:
        (super.rustPlatform.buildRustPackage (args // {
          src = self.fetchFromGitHub {
            owner = "andrewchambers";
            repo = "bupstash";
            rev = "b719a11b3f9f3e6f2f2cf077a5d05d3f63166f0f"; # update `version` accordingly if you change this
            sha256 = "0ik8zg0798qk5w07kwgaw79gzppdx09jwjw4snd1ahc6igyhl81f";
          };
          cargoSha256 = "0bliiap4n2nrwf0mh028q0cqr2vhk9k9sjvnsm1cz9swqx6xrn8f";
        })).overrideAttrs (old: {
          patches = (old.patches or []) ++ [
            # TODO Remove once https://github.com/andrewchambers/bupstash/pull/108 is merged and available.
            (self.fetchpatch {
              name = "bupstash-Retry-without-O_NOATIME-when-lacking-permission-for-it.patch";
              url = "https://github.com/nh2/bupstash/commit/119bbca9d36a9cf57a07f0e9710f1b87ed0966f4.patch";
              sha256 = "078r9b13nq55na9p2fray2njb4yi8hnkiama0ffsckclcwjycd8m";
            })
          ];
        });
    };
  };

This is still an issue for me!

A small comment regarding people encountering this message and just wanting to rebuild a package in an overlay: embedding the whole package definition (e.g. mypackage = pkgs.rustPlatform.buildRustPackage { … } instead of mypackage = super.mypackage.overrideAttrs (old: rec { … }) and replacing the cargoSha256 = "sha256-..."; with cargoSha256 = ""; to get the new value works. Ugly, but it works.


Config flow for discovered device

First implementation:

✅ Get sensor values
✅ Get and set target temperature
✅ Start / Stop device (switch)
❌ Get / Set units: You may switch the units on the device for now. Reported temperatures will remain in units as set in hass preferences.
✅ Get / Set timer

TODO:

Add translation keys to entities.

Config flow:

Entities:

Right now I can't figure out how to get the Coordinator to do anything. The get any data from the device we have to request it - but I don't know where to hook into for this. Currently custom_components.anova_nano.coordinator.AnovaNanoDataUpdateCoordinator._async_update is never called.

Got it to poll the status. Depends on some changes from: https://github.com/filmkorn/pyanova-nano/pull/10
Lots of functionality left:

Get and set target temperature
Start / Stop device (switch)
Get / Set units
Get / Set timer
Other:
Add translation keys.

@mcolyer Could you give this a try? To install, you copy custom_components/anova_nano into /config/custom_components.

Wow this is great, I'll give it a go this weekend.

Okay so I got it to configure my device correctly, however it seems to never get any of the sensor values and then becomes unavailable without me touching anything.
I see this in the core logs:

Thanks for testing! I'm sorry it's not working.
I wonder if it's not using the testing branch as set in the manifest. I've had issues with this as well.
Are the logs in Settings > System > Logs showing any additional tracebacks?

That's the only error that I see.

Looking into it.
The integration is supposed to be able to be setup without establishing a connection - because I don't want it to remain in an error state until the device is available. This behaviour matches other BLE integrations.
The connection should be established on the first update, but I'm also seeing it fail. Odd because I thought it was working.
In my case it connects on the 2nd or 3rd update but I think the 5 seconds connection timeout might be too short.
In general I find the Nano quite finicky. If you don't disconnect from it explicitly it won't be available for other clients to connect to it. Sometimes I have to turn it on/off by holding the play button or fully restart it even.

Yep that matches what I'm seeing. The update seems to fail. I tried
unplugging and replugging in the nano and it still doesn't seem to work.
Maybe extend the timeout?
FWIW I'm using an esphome bluetooth to wifi proxy but the setup still seems
to work correctly.

Rewrote the entire connection logic to use a callback model. Probably not for the last time. But it does works better on my end now.
I do have to resurrect my esphome Bluetooth proxy for more testing.

Can confirm it's working on my end with an esphome Bluetooth proxy on an a cheap ESP-WROOM-32 board.
If you can find any other error logs I'm keen to try an repro it.
Would you mind giving it another try?

So I pulled the latest and now get this in the logs:

And it doesn't seem to load

Can you load the full logs please (either click on the error or find the error in the full log)?
I'm not sure how bluetooth proxies differ from bluetooth adapters. On the esp32 bluetooth proxy I do get this error and I can't find much about it on the internet.
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 354, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/anova_nano/coordinator.py", line 136, in _async_update_data
await self._connect()
File "/config/custom_components/anova_nano/coordinator.py", line 80, in _connect
await self._client.connect(
File "/usr/local/lib/python3.12/site-packages/pyanova_nano/client.py", line 139, in connect
await self._connect(self._device, timeout_seconds=timeout_seconds)
File "/usr/local/lib/python3.12/site-packages/pyanova_nano/client.py", line 170, in _connect
await self._client.connect()
File "/usr/local/lib/python3.12/site-packages/habluetooth/wrappers.py", line 311, in connect
connected = await super().connect(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/bleak/__init__.py", line 615, in connect
return await self._backend.connect(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/bleak_esphome/backend/client.py", line 77, in _async_wrap_bluetooth_operation
return await func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/bleak_esphome/backend/client.py", line 327, in connect
await connected_future
bleak.exc.BleakError: Error ESP_GATT_CONN_FAIL_ESTABLISH while connecting: Connection failed to establish

In the logs of the esp32 through https://web.esphome.io/?dashboard_logs I can find:
[D][esp32_ble_tracker:270]: Starting scan...
[I][bluetooth_proxy:282]: [0] [58:93:D8:D8:7D:A4] Connecting v3 without cache
[D][esp32_ble_tracker:219]: Pausing scan to make connection...
[I][esp32_ble_client:067]: [0] [58:93:D8:D8:7D:A4] 0x00 Attempting BLE connection
[D][esp-idf:000][BTU_TASK]: W (220139) BT_HCI: hcif disc complete: hdl 0x0, rsn 0x3e

[D][esp-idf:000][BTU_TASK]: W (221847) BT_HCI: hcif disc complete: hdl 0x0, rsn 0x3e

[D][esp-idf:000][BTU_TASK]: W (222384) BT_HCI: hcif disc complete: hdl 0x0, rsn 0x3e

[D][esp-idf:000][BTU_TASK]: W (222594) BT_APPL: gattc_conn_cb: if=3 st=0 id=3 rsn=0x3e

[D][esp-idf:000][BTU_TASK]: W (222596) BT_APPL: gattc_conn_cb: if=4 st=0 id=4 rsn=0x3e

[D][esp-idf:000][BTU_TASK]: W (222596) BT_APPL: gattc_conn_cb: if=5 st=0 id=5 rsn=0x3e

[D][esp-idf:000][BTU_TASK]: W (222597) BT_HCI: hcif disc complete: hdl 0x0, rsn 0x3e

[D][esp32_ble_client:172]: [0] [58:93:D8:D8:7D:A4] ESP_GATTC_DISCONNECT_EVT, reason 62
[D][esp32_ble_tracker:270]: Starting scan...

Reason 62 should be 0x3e: ESP_GATT_CONN_FAIL_ESTABLISH - which doesn't help me at all.
I tried to further increase the connection timeout but no success (usually takes about 7 seconds with a Bluetooth adapter according to the logs in with debug logging enabled).
I'm out of ideas honestly. Could be a bug anywhere in pyanova-nano, bleak-esphome, bleak, esphome, esp-idf.

Somehow it suddenly connected! Got a new error:
Traceback (most recent call last):
File "/config/custom_components/anova_nano/coordinator.py", line 140, in _async_update_data
self.status = await self.client.get_sensor_values()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/pyanova_nano/client.py", line 455, in get_sensor_values
sensor_value_list = await self.send_read_command(ReadCommands.GetSensorValues)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/pyanova_nano/client.py", line 281, in send_read_command
return await self.send_command(command=command)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/pyanova_nano/client.py", line 347, in send_command
await get_data()
File "/usr/local/lib/python3.12/site-packages/pyanova_nano/client.py", line 336, in get_data
await self._client.start_notify(
File "/usr/local/lib/python3.12/site-packages/bleak/__init__.py", line 844, in start_notify
await self._backend.start_notify(characteristic, wrapped_callback, **kwargs)
File "/usr/local/lib/python3.12/site-packages/bleak_esphome/backend/client.py", line 77, in _async_wrap_bluetooth_operation
return await func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/bleak_esphome/backend/client.py", line 646, in start_notify
raise BleakError(
bleak.exc.BleakError: esp32-01-b24244 [B8:D6:1A:B2:42:44]: Nano - 58:93:D8:D8:7D:A4: Notifications are already enabled on service:0e140000-0af1-4582-a242-773e63054c68 characteristic:0e140002-0af1-4582-a242-773e63054c68 handle:14

Looks like bleak_esphome complains if you try to subscribe to the same characteristics twice, while backends dont. Will fix that in pyanova_nano.

Here's the full error:
2024-09-29 08:05:09.641 ERROR (MainThread) [custom_components.anova_nano]
Unexpected error fetching anova_nano data
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py",
line 354, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/anova_nano/coordinator.py", line 136, in
_async_update_data
await self._connect()
File "/config/custom_components/anova_nano/coordinator.py", line 80, in
_connect
await self._client.connect(
File "/usr/local/lib/python3.12/site-packages/pyanova_nano/client.py", line
139, in connect
await self._connect(self._device, timeout_seconds=timeout_seconds)
File "/usr/local/lib/python3.12/site-packages/pyanova_nano/client.py", line
170, in _connect
await self._client.connect()
File "/usr/local/lib/python3.12/site-packages/habluetooth/wrappers.py",
line 286, in connect
wrapped_backend = self._async_get_best_available_backend_and_device(manager)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/habluetooth/wrappers.py",
line 395, in _async_get_best_available_backend_and_device
raise BleakError(
bleak.exc.BleakError: No backend with an available connection slot that can
reach address C4:64:E3:13:57:9E was found
Let me know when I should try pulling again and trying a fix.

bleak.exc.BleakError: No backend with an available connection slot that can reach address C4:64:E3:13:57:9E was found

This likely means that the Bluetooth proxy is not available. I'm having the same issue a lot with my esp32. It's restart button I added shows up as available in hass, but none of my other 3 passive bluetooth devices I have are discovered 90% of the time. They work just fine on a bluetooth adapter.
I've pushed changes that should handle this error more graciously - but it won't solve our issue that the proxy backend is not available.

I tried updating ESPHome to the latest and moving it to a more central
location, neither seemed to resolve the issue.
Unfortunately my Home Assistant machine doesn't actually have a physical
bluetooth adapter (as it's a virtual machine) so I can't easily test this
via just an adapter.

I assume your atom Bluetooth proxy work for other devices?
I think I have to figure out why mine isn't working at all first.
I tried about everything you can find online and nothing has worked. Might have to order a different esp32 before I waste more time on this.
For my own record - will probably create an issue on esphome:

I don't know which board to use in the config. I have the a "ESP32-CH340C-Type-C" from aliexpress. Currently using:
esphome:
 name: "esp32-01"
 min_version: 2024.6.0
 name_add_mac_suffix: true

esp32:
 board: nodemcu-32s
 framework:
   type: esp-idf

Scanning: false (according to diagnostics from the ESPHome integration). Looks like the scanner doesn't start automatically even with continuous: true in scan_parameters. Had to add:
api:
 encryption:
 on_client_connected:
   - esp32_ble_tracker.start_scan:
      continuous: true

Some api messages are not sent

[19:50:20][V][api.connection:1477]: Cannot send message because of TCP buffer space

I can only see this with
logger:
  level: VERBOSE

But not with:
logger:
  level: VERY_VERBOSE

Which makes no sense.
This should indicate that the esp32 is out of memory. However I can confirm it is not with a memory template sensor:
sensor:
  - platform: template
    name: Free Memory
    lambda: return heap_caps_get_free_size(MALLOC_CAP_INTERNAL);
    unit_of_measurement: 'B'
    state_class: measurement

This shows I have around 80-100 kB free - which should be enough.

So I have one of these
https://shop.m5stack.com/products/atom-lite-esp32-development-kit?ref=NabuCasa
And I have it working with some ble shades that I have and it seemed to
work without issue.
I used the config generated by
https://esphome.io/projects/index.html
I'm not an expert in this area so am not totally confident in my
configuration but it does seem to atleast work for the ble shades.

I dug a little deeper and saw that esphome uses this configuration:
https://github.com/esphome/bluetooth-proxies/blob/main/m5stack/m5stack-atom-lite.yaml

Thanks, I'll look into these. I've tried the default esphome BT proxy config and it didn't work either.
The model I have has poor RF performance, can't even connect to the Wifi AP from more than 2 meters away.
Until then Ill put this project on hold. For now - here's some chicken breast being cooked:

@filmkorn if you release the latest you have I'm happy to merge this in, might as well get it working for some folks even if it doesn't work for me.

I'd propose to update the readme and add as disclaimer that BT Proxies are not working yet.
On a side note - I flashed a esp32cam with nothing but the BT proxy and that seems to work for passive BT devices.
While the logs for the eps32cam indicate that a connection was established, it doesn't actually make the Nano available.
[05:47:14][I][bluetooth_proxy:282]: [0] [58:93:D8:D8:7D:A4] Connecting v3 without cache
[05:47:15][I][esp32_ble_client:067]: [0] [58:93:D8:D8:7D:A4] 0x00 Attempting BLE connection
[05:47:15][I][esp-idf:000][BTU_TASK]: W (21549) BT_HCI: hcif disc complete: hdl 0x0, rsn 0x3e
[05:47:15][I][esp-idf:000][BTU_TASK]: W (21666) BT_HCI: hcif disc complete: hdl 0x0, rsn 0x3e
[05:47:16][I][esp-idf:000][BTU_TASK]: W (21759) BT_HCI: hcif disc complete: hdl 0x0, rsn 0x3e
[05:47:17][I][esp32_ble_client:227]: [0] [58:93:D8:D8:7D:A4] Connected

This also leads me to to a new error:
WARNING (MainThread) [bleak_esphome.backend.client] esp32cam [94:B9:7E:CF:23:B4]: Nano - 58:93:D8:D8:7D:A4: ESPHomeClient bleak client was not properly disconnected before destruction

I'll dig into this when I have time but from a quick search, I haven't been able to find much info on this.


Results Page Tabs

What (if any) features are you implementing?

Created results page tabs

Any other comments, questions, or concerns?

"Others" tab is not show as other resources not ready for implementation.

I made a separate file for the different components. Could you add the code for the tabs to tabs.tsx file.

Updated. My apologies for missing that!


Fixing compatibility error in #23

This fixes issue #23. Looking through the sources, I noticed that Resampling.bilinear was introduced in rasterio 0.35, but I had 0.32 installed.
Since rio-pansharpen did not specify an specific version in its requirements.txt, the install did not complain that I had an incompatible version of rasterio, it only failed at runtime.

Current coverage is 96.77% (diff: 100%)

Merging #24 into master will not change coverage

@@             master        #24   diff @@
==========================================
  Files             5          5
  Lines           124        124
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            120        120
  Misses            4          4
  Partials          0          0

Powered by Codecov. Last update 28e2446...1553dde

👍  thanks @rafaelalmeida


macOS support?

Is this plugin compatible with macOS?
If not, do you have any plans to do it?

LaTeX2AI currently only supports Windows. It should be easy to port it to MacOS, however this is currently not planed, as the developers do not use / have access to a MacOS machine with Adobe Illustrator.

@isteinbrecher any plans on supporting macOS in the near future?

Yes there are concrete plans to port LaTeX2AI in the near future (as usual an accurate time table is difficult at this point).

The time has finally come and LaTeX2AI supports macOS 🚀🍏. Please have a look at the corresponding (pre-)release version.
Feedback is greatly appreciated, e.g., what does/doesn't work, installation instructions, automatic determination of ghostscript and latex paths, ... .
I will leave this issue open until the pre-release version is a release version.
Tagging all participants of this issue: @taishi-n, @mayrm, @koko35p, @dhruvdcoder, @Davtax, @stau-7001, @WhenMelancholy

On MacOS, I ran into an

“LaTeX2AI.aip” can’t be opened because Apple cannot check it for malicious software.

error that I was not able to resolve in the Systems Preference / Security and Privacy settings, because the plugin is not directly executable. I was able to resolve this issue by executing the following command in the terminal:
sudo xattr -r -d com.apple.quarantine /Applications/Adobe\ Illustrator\ 2025/Plug-ins.localized
I found the fix here.

Thanks for reporting this @pllilin . This was already brought up by other users in https://github.com/isteinbrecher/latex2ai/issues/173. With the release of v1.0.0 this is now also in the main branch.

With the release of v1.0.0 macOS is supported by LaTeX2AI and this issue can be finally closed!


[Suggestion] Renovate?

@tobealive
Dependabot is not the sole GitHub App to search for and suggest updates as PRs, one possible alternative is Renovate.  It has plenty of configuration options and capabilities such that also cargo update PRs are possible.  Furthermore, I hope that this might solve the Dependabot commit message issue as there are detailed and explicit configuration options for the commit message such that the desired format should be possible.  (I emphasised the might and should parts because I am new to Renovate and still trying to get into the configuration options in depth but even now, I assume that the intended style should be easier configurable than with Dependabot.)
What do you think about this option; would you like to give Renovate a try?

Thanks for the suggestion @kevinmatthes
I'm scheduling in some hours for the repo - for now on one day a month -. When it's just by chance I'm too flaky with it and don't manage to put in maintenance time. There is always an open source project with open changes.
On the list for wthrr I also had debugging dependabot and submitting the fix, I think the suggestions you made there were a good starting point so I would utilize this.
If you already have a setup that would be easy to adapt, we can also try renovate :+1:

@tobealive
I think we should give Dependabot a second chance, then.  In the meantime, I will do some further research on the configuration of Renovate such that we could still switch to it, if required.

Hey @kevinmatthes!
I hope you are doing well.
From how the bots worked in the last weeks, can one of the dependency bots be removed?

Okay great, then lets remove Dependabot. Adding fine tuning the  renovate settings to include the validator is good as well :+1:.

The linter: #247.

Removing Dependabot:  #250.


Changes to grooved2 color ignored

Hello!  This is a great widget, thanks for sharing it.  I've noticed one little thing, though:
I'm trying to animate a fade in of the divider like this:
return AnimatedBuilder(
  animation: _animationCurve!,
  builder: (context, widget) {
    return MultiSplitViewTheme(
      data: MultiSplitViewThemeData(
        dividerPainter: DividerPainters.grooved2(
          color: buttonColor.withAlpha((_animationCurve!.value * 255).round()),
          highlightedColor: highlightColor
        )
      ),
      child: MultiSplitView(...

I've confirmed that the the color values are getting animated correctly, and it winds up with 0xffd0d0d0 after the animation is complete, but the divider remains completely transparent on screen, even when I force refreshes.

Hi @lrmoorejr ! Thanks.
Sorry if I didn't understand the question/problem correctly.
The simplest way to animate the dividers is just to define the colors (color and highlightedColor). The animationEnabled parameter (true by default), will animate the color between color and highlightedColor:
    MultiSplitViewTheme theme = MultiSplitViewTheme(
        data: MultiSplitViewThemeData(
            dividerPainter: DividerPainters.grooved2(
                color: Colors.blue.withAlpha(0),
                highlightedColor: Colors.blue)),
        child: multiSplitView);

This will animate the dividers when the mouse is over them.
But if you're trying to animate without the mouse over, try to disable de animation with animationEnabled = false.
I changed the example to be as close as possible to the code you put in and apparently it worked by starting the animation on the click of buttons:
import 'package:flutter/material.dart';
import 'package:multi_split_view/multi_split_view.dart';

void main() => runApp(MultiSplitViewExampleApp());

class MultiSplitViewExampleApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MultiSplitViewExample(),
    );
  }
}

class MultiSplitViewExample extends StatefulWidget {
  final List<Color> _colors = [Colors.red, Colors.blue, Colors.green];

  @override
  _MultiSplitViewExampleState createState() => _MultiSplitViewExampleState();
}

class _MultiSplitViewExampleState extends State<MultiSplitViewExample>
    with TickerProviderStateMixin {
  late AnimationController _controller;
  late Animation _animationCurve;

  @override
  void initState() {
    super.initState();
    _controller = new AnimationController(
        duration: new Duration(milliseconds: 3000), vsync: this)
      ..addListener(() {
        print('value ' + _animationCurve.value.toString());
        //setState(() {});
      });
    _animationCurve = new Tween(
      begin: 0.5,
      end: 1.0,
    ).animate(
        new CurvedAnimation(parent: _controller, curve: Curves.bounceOut));
  }

  @override
  Widget build(BuildContext context) {
    Widget buttons = Container(
        child: Row(children: [
          ElevatedButton(
              child: Text('Forward'), onPressed: _onForwardButtonClick),
          SizedBox(width: 16),
          ElevatedButton(
              child: Text('Reverse'), onPressed: _onReverseButtonClick)
        ], crossAxisAlignment: CrossAxisAlignment.center),
        color: Colors.white,
        padding: EdgeInsets.all(8));

    List<Widget> children = List.empty(growable: true);
    for (int i = 0; i < 3; i++) {
      Widget view = Container(
        child: Center(child: Text("View " + (i + 1).toString())),
        color: widget._colors[i % widget._colors.length],
      );
      children.add(view);
    }

    MultiSplitView multiSplitView = MultiSplitView(
        children: children,
        controller: MultiSplitViewController(initialWeights: [.05, .1, .6]));

    AnimatedBuilder animatedBuilder = AnimatedBuilder(
        animation: _animationCurve,
        builder: (context, widget) {
          return MultiSplitViewTheme(
              data: MultiSplitViewThemeData(
                  dividerPainter: DividerPainters.grooved2(
                      animationEnabled: false,
                      color: Colors.blue
                          .withAlpha((_animationCurve.value * 255).round()),
                      highlightedColor: Colors.red)),
              child: multiSplitView);
        });

    return Scaffold(
        appBar: AppBar(title: Text('Multi Split View Example')),
        body: Column(children: [buttons, Expanded(child: animatedBuilder)])
        // body: horizontal,
        );
  }

  _onReverseButtonClick() {
    _controller.reverse();
  }

  _onForwardButtonClick() {
    _controller.forward();
  }
}

Was I helpful? Hope so.

Hi Carlos!
I’m sorry— I think I was overly concise.
The built-in mouse-over animation works great— no problems there.  I am trying to add an animation when the page loads, too, where the divider fades in to “color” and then thereafter the mouseover transitions it to “highlight color.”
One option might be to wrap the MultiSplitViewTheme in an Opacity widget.  Unfortunately, I only want the divider to fade in, not the child panels.  (The child panels will be sliding in from off screen.). So, wrapping in an Opacity won’t work for me.
It seems like I should be able to animate the DividerPainter's color: property during page load to achieve this effect, but it stays transparent instead of transitioning to an opaque color as the page loads.  It is as if a static variable is being set somewhere and never updated again.
I tried setting animationEnabled: to false during the page load, and that does allow the dividers to fade in.  Unfortunately, after the page loads and animationEnabled: is set to true, the mouseover animation is not enabled.
Based on your example, I could probably acheive what I’m looking for with two nested AnimationBuilders.  One animationBuilder would fade the divider in during page load, and the other would transition the color during a mouseover. The problem with this, though, is that I don’t want to rebuild the child panels every time someone mouse-overs the divider.  It’s much better to use your built-in animation for the mouseovers.
If this isn’t clear, I can send a complete example.  Thanks again for your help— I really appreciate it.
Rick

On Oct 31, 2021, at 8:02 PM, Carlos Eduardo Leite de Andrade @.***> wrote:
Hi @lrmoorejr https://github.com/lrmoorejr ! Thanks.
Sorry if I didn't understand the question/problem correctly.
The simplest way to animate the dividers is just to define the colors (color and highlightedColor). The animationEnabled parameter (true by default), will animate the color between color and highlightedColor:
MultiSplitViewTheme theme = MultiSplitViewTheme(
    data: MultiSplitViewThemeData(
        dividerPainter: DividerPainters.grooved2(
            color: Colors.blue.withAlpha(0),
            highlightedColor: Colors.blue)),
    child: multiSplitView);

This will animate the dividers when the mouse is over them.
But if you're trying to animate without the mouse over, try to disable de animation with animationEnabled = false.
I changed the example to be as close as possible to the code you put in and apparently it worked by starting the animation on the click of buttons:
import 'package:flutter/material.dart';
import 'package:multi_split_view/multi_split_view.dart';
void main() => runApp(MultiSplitViewExampleApp());
class MultiSplitViewExampleApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MultiSplitViewExample(),
);
}
}
class MultiSplitViewExample extends StatefulWidget {
final List _colors = [Colors.red, Colors.blue, Colors.green];
@override
_MultiSplitViewExampleState createState() => _MultiSplitViewExampleState();
}
class _MultiSplitViewExampleState extends State
with TickerProviderStateMixin {
late AnimationController _controller;
late Animation _animationCurve;
@override
void initState() {
super.initState();
_controller = new AnimationController(
duration: new Duration(milliseconds: 3000), vsync: this)
..addListener(() {
print('value ' + _animationCurve.value.toString());
//setState(() {});
});
_animationCurve = new Tween(
begin: 0.5,
end: 1.0,
).animate(
new CurvedAnimation(parent: _controller, curve: Curves.bounceOut));
}
@override
Widget build(BuildContext context) {
Widget buttons = Container(
child: Row(children: [
ElevatedButton(
child: Text('Forward'), onPressed: _onForwardButtonClick),
SizedBox(width: 16),
ElevatedButton(
child: Text('Reverse'), onPressed: _onReverseButtonClick)
], crossAxisAlignment: CrossAxisAlignment.center),
color: Colors.white,
padding: EdgeInsets.all(8));
List<Widget> children = List.empty(growable: true);
for (int i = 0; i < 3; i++) {
  Widget view = Container(
    child: Center(child: Text("View " + (i + 1).toString())),
    color: widget._colors[i % widget._colors.length],
  );
  children.add(view);
}

MultiSplitView multiSplitView = MultiSplitView(
    children: children,
    controller: MultiSplitViewController(initialWeights: [.05, .1, .6]));

AnimatedBuilder animatedBuilder = AnimatedBuilder(
    animation: _animationCurve,
    builder: (context, widget) {
      return MultiSplitViewTheme(
          data: MultiSplitViewThemeData(
              dividerPainter: DividerPainters.grooved2(
                  animationEnabled: false,
                  color: Colors.blue
                      .withAlpha((_animationCurve.value * 255).round()),
                  highlightedColor: Colors.red)),
          child: multiSplitView);
    });

return Scaffold(
    appBar: AppBar(title: Text('Multi Split View Example')),
    body: Column(children: [buttons, Expanded(child: animatedBuilder)])
    // body: horizontal,
    );

}
_onReverseButtonClick() {
_controller.reverse();
}
_onForwardButtonClick() {
_controller.forward();
}
}
Was I helpful? Hope so.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/caduandrade/multi_split_view/issues/13#issuecomment-955884410, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMV6FW2IA6XR7RCROVXBEL3UJX7MPANCNFSM5HB2CWPQ.
Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You must be doing something really cool and beautiful :wink:
Well, you figure out a bug about the animationEnabled. I changed my example to use a variable in State to keep the animation false. I also put a listener to set the animation to true after the first status == AnimationStatus.completed. You are right, no more animation after that.  :man_facepalming:
I will try to fix it. Maybe it's will be enough for you right?

Thanks; I wish I could share but it’s a little early to post a link on the web.
Yep, that fix would be enough, thank you!  I suspect when you figure out why the animationEnabled: doesn’t get updated, you’ll realize why the color: isn’t getting updated.  Probably the same issue.  But, again, fixing the animationEnabled is enough for me.
Thanks,
Rick

On Nov 1, 2021, at 1:02 PM, Carlos Eduardo Leite de Andrade @.***> wrote:
You must be doing something really cool and beautiful 😉
Well, you figure out a bug about the animationEnabled. I changed my example to use a variable in State to keep the animation false. I also put a listener to set the animation to true after the first status == AnimationStatus.completed. You are right, no more animation after that. 🤦♂
I will try to fix it. Maybe it's will be enough for you right?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/caduandrade/multi_split_view/issues/13#issuecomment-956546030, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMV6FW7H7H6G5IIQQHRLZVLUJ3W5LANCNFSM5HB2CWPQ.
Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

This issue can be solved by #14

Hi @lrmoorejr!
Can I ask you a favor? I committed the #14. So, could you clone this project and test your code using the relative path in the dependency? If it works, I can release it.

Seems like the least I could do for your help.  :)
Yep, it works!  I don’t even need to toggle animationEnabled: and it fades in smoothly and still animates with a mouseover.  Well done!
Rick

On Nov 1, 2021, at 2:24 PM, Carlos Eduardo Leite de Andrade @.***> wrote:
Hi @lrmoorejr https://github.com/lrmoorejr!
Can I ask you a favor? I committed the #14 https://github.com/caduandrade/multi_split_view/issues/14. So, could you clone this project and test your code using the relative path in the dependency? If it works, I can release it.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/caduandrade/multi_split_view/issues/13#issuecomment-956625104, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMV6FWZTAUYWQOK4GTSH5X3UJ4AQHANCNFSM5HB2CWPQ.
Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Excellent! Mission Accomplished :wink:
I released version 1.9.1.
I'm closing this issue ok?
Nice to meet you and good luck with your project!

Sounds great, thanks again for all your help!
Rick

On Nov 1, 2021, at 3:36 PM, Carlos Eduardo Leite de Andrade @.***> wrote:
Excellent! Mission Accomplished 😉
I released version 1.9.1.
I'm closing this issue ok?
Nice to meet you and good luck with your project!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/caduandrade/multi_split_view/issues/13#issuecomment-956775388, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMV6FW7KCYIAR5A4MSLZXTLUJ4JALANCNFSM5HB2CWPQ.
Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


Update for blueprint032

This is related to blueprint032.

Added function on_flow_mod_delete for kytos/flow_manager.flow.removed that keeps track when EVC flows are removed.
What it does is update the EVC update_at parameter with the sync function see this link.
I wonder whether it is enough or whether it is necessary to have a new parameter that is unique to identify when a flow is deleted.

Added get_circuits_by_update_date function to filter EVCs with update time less than or equal to a given datetime. Returns all evcs that meet the condition. Then, the function recent_updated uses the first function to get the evcs and iterates through the list to check if the evc has been recently updated. Note that if a flow has been removed in the specified interval it is counted as an update.
I wonder whether this behavior is expected or whether it is better to check if the updated_at parameter of the evc is within the specified interval.

Consistency check uses the new PUT /traces  in check_traces see link.

I'll go ahead and close this PR  since Gretel opened PR #226 superseding this one.


fix bugs about noteram

Summary
Impact
Testing
CI-test

[Experimental Bot, please feedback here]
Incomplete Information Provided.
You have not provided the content of the PR. Please share the details of the proposed changes so I can evaluate if the PR meets the NuttX requirements.
To get a complete review, please provide:

The actual content of your PR summary. This should include what you changed and why.
Specific details about the impact of your changes. For example, if you added a new feature, describe the feature and how it works. If you fixed a bug, describe the bug and how your fix addresses it.
Information about your testing environment and the results of your tests. Include specific details about the host and target systems you used for testing.

Once you provide this information, I can help you determine if your PR meets the NuttX requirements.