Error 202

Hi, I recently updated to the newest version and now I get this error 202. I currently run my program with a function delay of 1 request per 5 seconds. After I receive the error the program waits 20 seconds. Is there something I'm missing?
Thanks!
This is the code I use:
@sleep_and_retry
@limits(calls=1, period=5)
def scrape_top_urls_ddg(search_query, skip_domains, max_results=5):
    top_urls = []
    ddgs = DDGS()
    try:
        results = ddgs.text(keywords=search_query, max_results=max_results + len(skip_domains))

        for result in results:
            url = result.get('href')
            if url and not any(skip_domain in url for skip_domain in skip_domains):
                top_urls.append(url)
                if len(top_urls) == max_results:
                    break
    except Exception as e:
        print(f"Encountered an error: {e}")
        raise

    return top_urls

Thanks for your quick responds, this is the full code I use.
# List to collect rows, or load existing progress if restarting script
try:
    # Try loading existing progress if this script is being restarted
    result_df = pd.read_csv('search_results_DDG.csv')
    collected_data = result_df.to_dict('records')
except FileNotFoundError:
    # If no existing data, start fresh
    collected_data = []

# Get the total number of rows for progress calculation
total_rows = len(df)

for index, row in df.iterrows():
    # Check if this query has already been processed
    if any(d['EntityNumber'] == row['EntityNumber'] for d in collected_data):
        continue  # Skip this row if already processed

    search_query = row['SearchQuery']
    entity_number = row['EntityNumber']
    try:
        # Make sure to replace [] with your actual skip_domains list
        filtered_urls = scrape_top_urls_ddg(search_query, [], max_results=5)
        # Append entity number and URLs to collected_data
        collected_data.append({"EntityNumber": entity_number, "URL1": filtered_urls[0] if len(filtered_urls) > 0 else "",
                               "URL2": filtered_urls[1] if len(filtered_urls) > 1 else "",
                               "URL3": filtered_urls[2] if len(filtered_urls) > 2 else "",
                               "URL4": filtered_urls[3] if len(filtered_urls) > 3 else "",
                               "URL5": filtered_urls[4] if len(filtered_urls) > 4 else ""})
    except Exception as e:
        print(f"Rate limit or other error encountered: {e}. Waiting for 1 minute before retrying...")
        time.sleep(60)  # Wait for 1 minute
        continue  # Retry the current iteration

    # Convert collected data to DataFrame and save after each successful retrieval
    result_df = pd.DataFrame(collected_data)
    result_df.to_csv('search_results_DDG.csv', index=False)

    # Progress feedback
    progress_percentage = ((index + 1) / total_rows) * 100
    print(f"Progress: {progress_percentage:.2f}% ({index + 1}/{total_rows})")

print("All data has been processed and saved.")

Please provide the code that can be run

This is the full code that I run:
%pip install -U duckduckgo_search
# Uses https://github.com/deedy5/duckduckgo_search

import pandas as pd
import time
from duckduckgo_search import DDGS
from ratelimit import limits, sleep_and_retry

# Assuming df is your DataFrame

# Decorator to enforce rate limiting
@sleep_and_retry
@limits(calls=1, period=3)
def scrape_top_urls_ddg(search_query, skip_domains, max_results=10):
    top_urls = []
    ddgs = DDGS()
    try:
        results = ddgs.text(keywords=search_query, max_results=max_results + len(skip_domains))

        for result in results:
            url = result.get('href')
            if url and not any(skip_domain in url for skip_domain in skip_domains):
                top_urls.append(url)
                if len(top_urls) == max_results:
                    break
    except Exception as e:
        print(f"Encountered an error: {e}")
        raise  # Re-raise the exception to handle it outside

    return top_urls

# List to collect rows, or load existing progress if restarting script
try:
    # Try loading existing progress if this script is being restarted
    result_df = pd.read_csv('search_results_DDG.csv')
    collected_data = result_df.to_dict('records')
except FileNotFoundError:
    # If no existing data, start fresh
    collected_data = []

# Get the total number of rows for progress calculation
total_rows = len(df)

for index, row in df.iterrows():
    # Check if this query has already been processed
    if any(d['EntityNumber'] == row['EntityNumber'] for d in collected_data):
        continue  # Skip this row if already processed

    search_query = row['SearchQuery']
    entity_number = row['EntityNumber']
    try:
        # Make sure to replace [] with your actual skip_domains list
        filtered_urls = scrape_top_urls_ddg(search_query, [], max_results=5)
        # Append entity number and URLs to collected_data
        collected_data.append({"EntityNumber": entity_number, "URL1": filtered_urls[0] if len(filtered_urls) > 0 else "",
                               "URL2": filtered_urls[1] if len(filtered_urls) > 1 else "",
                               "URL3": filtered_urls[2] if len(filtered_urls) > 2 else "",
                               "URL4": filtered_urls[3] if len(filtered_urls) > 3 else "",
                               "URL5": filtered_urls[4] if len(filtered_urls) > 4 else ""})
    except Exception as e:
        print(f"Rate limit or other error encountered: {e}. Waiting for 1 minute before retrying...")
        time.sleep(10)  # Wait for 1 minute
        continue  # Retry the current iteration

    # Convert collected data to DataFrame and save after each successful retrieval
    result_df = pd.DataFrame(collected_data)
    result_df.to_csv('search_results_DDG.csv', index=False)

    # Progress feedback
    progress_percentage = ((index + 1) / total_rows) * 100
    print(f"Progress: {progress_percentage:.2f}% ({index + 1}/{total_rows})")

print("All data has been processed and saved.")

Is this what you mean?

Please reopen the issue.
I need specific code to run and specific steps to reproduce the problem.


Solved Kruskal's Algorithm in C++

Related Issue
Solved issue number: #312
Describe the changes you've made
Added source code for Kruskal's Algorithm for MST in C++.
Describe if there is any unusual behavior of your code(Write NA if there isn't)
NA
Language used for coding
C++
Checklist:

[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have made corresponding changes to the documentation.
[x] New and existing unit tests pass locally with my changes.

Please review my codes :)

Will you please open new pull request from another branch, because it has the commit of "Playing With Characters" which contains extra files in it.
Or you can remove that extra file from this branch only.

Will you please open new pull request from another branch, because it has the commit of "Playing With Characters" which contains extra files in it.
Or you can remove that extra file from this branch only.

I've created a new pull request in another branch and I'll close this pull request. Sorry for the inconvinience @Nivedita967


Add Elasticsearch Reader

Adds a reader and testing for Elasticsearch using the Reader API

Do we need to do anything special to support scroll queries?

Good idea, I'll add a flag for this


[Bug]:  .xs() method on DeferredSeries and DeferredDataFrame doesn't work right when returning single items

What happened?
I've been upgrading dataframe to be compliant with Pandas 2, and a new doctest in Pandas 2 revealed this bug that currently exists in Pandas 1.
Whenever xs will yield a result that is a single item, it will either fail or have the wrong outcome compared to pandas xs. For examples, I have a draft PR with failing tests here
There are two different types of failures. There are the cases where we drop dimensionality (like returning a scalar for ser.xs() or a series for df.xs()) when pick exactly one element for a single Index series/dataframe.  Then we get concatenation failures when trying to combine everything back together, because we are expecting to concat series/frame elements (for ser.xs/frame.xs respectively) but instead recieve a scalar/series because pandas has done the dimension reduction.
The other type of failure is with a MultiIndex, where we call  df.xs() with a tuple the same length as the number of dimensions of the MultiIndex, and only a single item is returned. We still get a df but it looks wrong and has the wrong shape.
Both types of failure examples are in my link above.

        Parameters
        ----------
        left : The first object being compared.
        right : The second object being compared.
        cls : The class type to check against.

        Raises
        ------
        AssertionError : Either `left` or `right` is not an instance of `cls`.
        """
        cls_name = cls.__name__

        if not isinstance(left, cls):
            raise AssertionError(
                f"{cls_name} Expected type {cls}, found {type(left)} instead"
            )
        if not isinstance(right, cls):
>           raise AssertionError(
                f"{cls_name} Expected type {cls}, found {type(right)} instead"
            )
E           AssertionError: Series Expected type <class 'pandas.core.series.Series'>, found <class 'pandas.core.frame.DataFrame'> instead

Issue Priority
Priority: 2 (default / most bugs should be filed as P2)
Issue Components

[X] Component: Python SDK
[ ] Component: Java SDK
[ ] Component: Go SDK
[ ] Component: Typescript SDK
[ ] Component: IO connector
[ ] Component: Beam examples
[ ] Component: Beam playground
[ ] Component: Beam katas
[ ] Component: Website
[ ] Component: Spark Runner
[ ] Component: Flink Runner
[ ] Component: Samza Runner
[ ] Component: Twister2 Runner
[ ] Component: Hazelcast Jet Runner
[ ] Component: Google Cloud Dataflow Runner

Seeing a similar error on a different operation:
from apache_beam.dataframe.doctests import teststring

test = """
   With a DataFrame

            >>> df = pd.DataFrame({'a': [1, 2, 2, 3], 'b': [3, 4, 4, 4]},
            ...                   index=['cat', 'dog', 'dog', 'mouse'])
            >>> df
                   a   b
              cat  1   3
              dog  2   4
              dog  2   4
            mouse  3   4
            >>> df.kurt()
            a   1.5
            b   4.0
            dtype: float64

            Passes on Beam with axis=1

            >>> df = pd.DataFrame({'a': [1, 2], 'b': [3, 4], 'c': [3, 4], 'd': [1, 2]},
            ...                   index=['cat', 'dog'])
            >>> df.kurt(axis=1)
            cat   -6.0
            dog   -6.0
            dtype: float64

            Fails on Beam with axis=None

            >>> df.kurt(axis=None).round(6)
            -0.988693

"""
teststring(test)

    AttributeError: '_DeferredScalar' object has no attribute 'round'


Electron-builder does not properly compile better-sqlite3 for mac-os

This is still an issue. Might have to migrate to sqlite3

https://github.com/UnstoppableSwap/unstoppableswap-gui/commit/bfc3b930d7b400fb6d3c3f330e1d2b6f31d619bc


⚠ Bofrost.com has degraded performance

In dd9a7e8, Bofrost.com (https://www.bofrost.com) experienced degraded performance:

HTTP code: 200
Response time: 728 ms

Resolved: Bofrost.com performance has improved in 0bcdef7 after 8 minutes.


Spike: Add in column level descriptions to source system tables

Tables from source systems (e.g. nomis, delius) mostly don't have column level descriptions.
Can we populate this from existing metadata - e.g. data discovery tool or derived/raw versions of the same tables?
There is a feature in Datahub for propagating descriptions based on lineage: https://datahubproject.io/docs/automations/docs-propagation/#open-source - is this useful for us?

Where are source system metadata available from
It is looking likely we'll need to have this metadata populated via a number of different ways. Existing metadata are available from:

The glue catalog. For some tables there are table and column descriptions which have come direct from the source, e.g. NOMIS. However this is not the case for all the curated databases
The data discovery tool. This will likely need to be further curated because in some instances descriptions are too long for find moj data.

Otherwise it will need to be created via experts of the data, and we'd need to identify people with the necessary knowledge to populate missing descriptions
The route to Datahub
We should ensure that we are able to use create-a-derived-table repo to be the single point where all the metadata are ingested from.
Descriptions sourced from the glue catalog
These will be the simplest to integrate into the existing cadet workflows. There already exists a generate_models.py script that creates yaml config files for all the source tables. It gets all table metadata from the glue catalog however it only uses a small amount of the data it retrieves (which includes descriptions where present)
In the simplest terms the python script (if adding columns and descriptions to created yamls) would need to add new columns as defined in a table template (which it already does) and all columns from the source other than what’s excluded in the generation yaml file. (This may be over simplifying it)
We'd need to have rigorous tests for this as we would not want to break the gha worfklows by creating erroneous dbt configs for source models.
Descriptions sourced from the data discovery tool
We'd potentially need to spend a bit more time curating these for find-moj-data appropriateness and decide whether DDT or glue catalog descriptions take precedence.
The next part is will need much more thinking through but likely we'd want to transfer these metadata to somewhere within the cadet repo and then have the generate_models.py script combine with the above to populate resulting yaml configs with table/column descriptions from both glue and DDT
Descriptions sourced from subject matter experts
This would be the most difficult to implement as it would be dependant on things outside of our control - like allowing the people with the required knowledge time to populate metadata and engagement from other areas to help identify who these people might actually be. We'd likely need senior level buy in if this is something we wanted to do.
I think it would be best to use the same method as above - have these metadata stored within the cadet repo.
In the case of these people being identified and able to contribute they then might not be technical staff or comfortable interacting with create-a-derived-table. So we may need to facilitate a more non technical collection process. Speaking with HMCTS catalogue team, they facilitated a similar process, sending out spreadsheets for subject matter experts to fill in. We could do something similar then converting spreadsheet data in to yaml format for our use
I had considered whether we could simplfy further but just doing a scrape of what's in the glue catalog and then persisting that metadata in cadet but there are advantages to getting the data from source - say if things are changed then they will be automatically picked up and not become stale/outdated. But in reality i'm not sure how often metadata (descriptions) would change if ever

A meeting scheduled for 02/10 with Soumaya and Gwion to discuss

After chatting with Soumaya and Gwion in Data Engineering i think we should initially focus on surfacing what's collected direct from source systems and available in the glue catalog now, as the initial step.
There is a desire to not overly complicate create-a-derived-table and on reflection i'm in agreement with this. So i think we should look to park the data discovery aspect of the descriptions metadata.
The preferred solution would be to have source database tables (curated silver) in find moj data reflect the descriptions as they are held in source systems - However not all of the source system pipelines currently bring in these table and column level descriptions into the AP (aws glue catalog).
There would also need to be an exercise carried out to understand for which source systems this metadata is actually available to ingest
Resulting actions

Refactor the generate_models.py cadet script to use the table and column descriptions pulled form glue in the yaml dbt config files that are produced for each table. These would need robust tests. We also discussed trialling out the new process on a dummy database version. E.g. We could create another nomis database model template to test out the end to end process. If we introduced errors to generated model config files it would cause some quite sever disruption to business critical pipelines.
Work to understand for which source system pipelines it would be possible to extract table and column level descriptions direct from source. Would be for those that currently have no metadata in the glue catalog.
Agree with Data engineering how we might work towards ingesting these metadata for sources systems as part of existing pipelines, where it is not currently collected but has shown to be available at source. (Could the data catalogue team support the development of DE pipelines to ingest additional metadata?)


Extend Launch Endpoint

Launch service could be return all launches users have.
Also, the launch service should return the status of the launch. (Pod-Container status)
ListLaunch Rpc --> All launches user have
Launch message should have  status workload status property

Get Launch Service rpc should be implemented that will give information about the Neko client.


Prevent neatos from falling asleep

The neatos auto sleep. This  happens often with the web interface. why? Can we send audio command?

Either configure the neatos using a hypterminal connection OR implement a keepalive packet solution by sending a play audio  command every N minutes ?

So we found and tested successfully a fix by adding the following lines in the spin() method under the first if block where SPEED, dist_l and dist_r are set:
print("running keepalive")
#keepalive motion
self.robot.requestScan()

This works successfully on chairbot04 with the ui.launch program.
Potential problems with this solution:

Battery might drain more quickly because we are doing a LIDAR Scan though it's debatable whether the LIDAR scan actually happens because we set it to OFF in the same function.

Why didn't we use playSound()?

It's not implemented in the neato driver. We can implement this in the driver by sending a playSound command over serial connection but that needs to be explored and devoted time to.

I am keeping this issue open until we actually commit this fix to the repo.
Why didn't I commit it ? Because we are not sure which version is fresher -- the one on the raspberry or the one in this repo. That needs to be figured out asap.
-- Samar


Feat/chat plugin use render library

fixes #820
Notable changes:

Use preact/compat to make the chat plugin compatible with React libraries
Remove the router form the chat plugin
Replace AiryMessage with the render library
Improve the props API of SourceMessage

@AitorAlgorta Excellent question. Will check that out tomorrow and do a bit more testing.


Require Dockerfile of this project

Is your feature request related to a problem? Please describe.
I'm trying to build a docker image locally but either it's not being built properly or I'm missing some steps
Describe the solution you'd like
It would be great if the existing Dockerfile is committed to the repo so that I can inspect and build my image or use the same Dockerfile to build a docker image out of it.
Describe alternatives you've considered
I tried the following commands in Dockerfile, it created the docker image but the image failed to run with following log
Mar 09, 2023 4:07:58 PM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
|  Welcome to JShell -- Version 11.0.16
|  For an introduction type: /help intro

jshell> %

It would be great if the original Dockerfile is committed to this repository which is used to push the docker image to the Dockerhub.
Additional context
Add any other context or screenshots about the feature request here.

Hi @deveshub !
Have you checked the Docker repository for Castle Mock?
Repo: https://github.com/castlemock/docker
Would this help you?

Oh Awesome, This helps! Sorry for missing this 😃


React enzyme adapter fails with symlinkNodeModules=true

Summary
I'm using stryker in a react project that uses enzyme with react adapter.
With the symlinkNodeModules option to true, enzyme initialization fails with this error :
Enzyme Internal Error: configured enzyme adapter did not inherit from the EnzymeAdapter base class

 > Enzyme.configure({ adapter: new Adapter() });

Thank you
Stryker config

module.exports = function(config) {
   config.set({
      mutate: ["source/**/*.js", "!source/**/*@(.test|.spec|Spec).js", "!source/scripts/**/*.*"],
      files: [
         '*.js',
         '__mocks__/*.js',
         'testUtils/*.js',
         'source/**/*.js?(on)',
         "!source/scripts/**/*.*"
      ],
      mutator: "javascript",
      packageManager: "yarn",
      reporters: ["html", "clear-text", "progress"],
      htmlReporter: {
         baseDir: 'stryker-reports/mutation/html'
      },
      testRunner: "jest",
      coverageAnalysis: "off",
      jest: {
         projectType: "custom",
         config: require('./jestrc.json'),
         enableFindRelatedTests: true
      }
   });
};
}

Stryker environment

+--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>deduped
| +--<EMAIL_ADDRESS>deduped
+--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>deduped
+--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>deduped

+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>
Test runner environment

# Test command

jest --config jestrc.json

jestrc.json
{
   "moduleFileExtensions": [
      "js"
   ],
   "moduleDirectories": [
      "source",
      "node_modules"
   ],
   "moduleNameMapper": {
      "\\.(scss|css)$": "<rootDir>/__mocks__/styleMock.js",
      "\\.(png|svg)$": "<rootDir>/__mocks__/fileMock.js",
      "testUtils": "<rootDir>/testUtils"
   },
   "testPathIgnorePatterns": [
      "/node_modules/",
      "source/scripts/"
   ],
   "coveragePathIgnorePatterns": [
      "/node_modules/",
      "source/scripts/"
   ],
   "setupFiles": ["jest-canvas-mock", "jest-prop-type-error"],
   "setupFilesAfterEnv": ["<rootDir>/unittests.config.js"]
}

unitests.config.json
import Enzyme from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';

Enzyme.configure({ adapter: new Adapter() });

Your Environment

software
version(s)

node
10.15.3

npm
6.4.1

Operating System
Windows 10 Enterprise

Add stryker.log
stryker.log

Interesting, so it does work with symlinkNodeModules set to false?
I think this has something to do with Enzyme or jest not being able to handle symlinked node_modules. #717 seems to have the same issue, so it might be fixed when https://github.com/facebook/jest/issues/5356 gets implemented.
If it does work with setting symlinkNodeModules to false, how would you suggest improving the documentation for that? I guess you did quite a lot of searching to find that option 😅

If it does work with setting symlinkNodeModules to false, how would you suggest improving the documentation for that? I guess you did quite a lot of searching to find that option 😅

Yes I searched for a little while 😄, and yes it does work with symlinkNodeModules to false.
I think it could be documented on the jest plugin readme in the symlinkNodeModules option ?
You think the issue comes from jest ? Not enzyme ?
And last question, does set symlinkNodeModules to false change something for performance ?

Is this issue still present?

Sorry but I don't know if it's still present, I'm not using stryker anymore because of some performance issues.

try Stryker 4.0! its much faster now :)

I'm closing this issue for now.

You can also use the new --inPlace mode, new since Stryker 4.4. Closing this issue for now, please open a new one if this problem persists.

You can also use the new --inPlace mode, new since Stryker 4.4. Closing this issue for now, please open a new one if this problem persists.


See our wiki for possible solutions:
https://github.com/docker/kitematic/wiki/Common-Proxy-Issues-&-Fixes

Think you, It is work.


Missing Product SKU

Team, could Microsoft 365 E5 SKU be added to this list? There may be other new (and missing) SKUs.

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

ID: 7c245452-161d-89a1-c026-99a0721cf071
Version Independent ID: 16dec59a-eb83-1837-4efd-4645e7aeaed2
Content: Product names and service plan identifiers for licensing - Azure AD
Content Source: articles/active-directory/users-groups-roles/licensing-service-plan-reference.md
Service: active-directory
GitHub Login: @ajayanti1
Microsoft Alias: curtand

@luisgiraldo Thanks for the feedback !  I have assigned this issue to content author to investigate and update the document as appropriate.

After a call with Microsoft, I found you can use the following to get a list of all product IDs for all SKUs in your tenant:
Get-MsolAccountSku | Select -ExpandProperty ServiceStatus
Hope it helps someone.

@luisgiraldo - For now, you can use the following commands to get plans for any given SKU that are in your tenant.

Get-AzureADSubscribedSku | Select -Property Sku* (this will list SkuId and SkuPartNumber that are available in your tenant).
$licenses = Get-AzureADSubscribedSku
$licenses[].ServicePlans (it's a 0 based index).

Please let us know if you run into issues. Hope this helps!

@luisgiraldo - I am closing the issue for now. Please tag me for any further questions.
#please-close


How to extend the Item Charge Assignment for Purchase.

I need to extend the Item Charge Assignment for Purchase. Currently it only supports Amount and Equally.
I need to add Weight and Volume.
How would you extend this with the current design?
Currently I would need to modify the Question to the user in SuggestAssgnt:
Selection := STRMENU(Text000,2); // Modify the Text000 to include the new options.
Then I would have to modify the function SuggestAssgnt2 and add additional functionality to distribute based on the new methods. It's very common that our customers wants to distribute this way based on freight bills they receive or containers.

@StanislawStempin : something to get rid of :-)
This has been bothering me for a while now too; there is STRMENU in quite a couple of places in the system. I think those are really some anachronism from the bad old days of the classic client when you dutifully had to push a set of 1-3 buttons on a card that hid almost every functionality it contained. Small wonder there were shortcuts to common things like "post" which then gave you another set of choices... really a menu after the menu.
Since RTC I guess most or all STRMENUs could have been done away with because the menu ribbons can offer the same (or better) navigation.
Since extending a STRMENU would actually require a way to extend inside a function AND within given strings (which will likely never work) or a way to override a function (which Microsoft sadly is reluctant to offer) I would suggest to throw the STRMENU out.
In this case here I would go for extending the page to have two more distinct actions that will suggest both assignment options.

I completely agree with you.
Another area we keep changing for our customers is the Post STRMENU. They want more options for changing the Posing Date etc.
I didn't want to add more menu's to the page because  1. they can still click the old menu, 2. with the tooltips MS is limiting the amount of menus we can have on a page. Don't want to run out.

as far as i know the problem with too many actions/tooltips does not apply to a page extension because this is actually a new object with a clean slate buffer-wise :-)

That would be great if that's the case.

So I tried to go down the route of adding Actions to Page 5805. Unfortunately the way the page is designed this doesn't seem possible. The page uses local variables that are not accessible to my extension page so I cannot call my own AssignItemCharge funtion.
I hope this will be addressed somehow. Right now it seems the extension (Tables and Pages) are just disconnected for some of the more advanced modifications.

We have an ongoing effort to make the application code more extensible. I can you can imagine this is not a small task and it will take some time.
As a part of that process we are also looking at existing code patterns that should be rewritten for extensibility. The scenario solved with the StrMenu() pattern is clearly something that we should provide extensibility for.
It will take us some time to rewrite the application code for extensibility. We are working on it, but please be patient. Input like that describes common scenarios like this are very welcome. It helps us identify code patterns that we should provide extensibility for.
@RafaelKoch You are right. The current problem with too many actions/tooltips are related to how C/SIDE stores the objects. Since page extensions are stored outside the original object, you can add more actions to "full" C/SIDE pages.

@esbenk you guys have done a great job so far. I've converted my module to an app 95% with the current version with some workarounds. I have 2 issues that are currently not possible.

We've added options to allocate Item Charges by Weight and Volume, see latest code for SuggestAssgnt2 in Codeunit 5805, it should solve this problem. Same done for Sales part. You can use this method in extensions.
[External] SuggestAssgnt2(PurchLine : Record "Purchase Line";TotalQtyToAssign : Decimal;TotalAmtToAssign : Decimal;Selection : Integer)
PurchHeader.GET(PurchLine."Document Type",PurchLine."Document No.");
IF NOT Currency.GET(PurchHeader."Currency Code") THEN
Currency.InitRoundingPrecision;
ItemChargeAssgntPurch.SETRANGE("Document Type",PurchLine."Document Type");
ItemChargeAssgntPurch.SETRANGE("Document No.",PurchLine."Document No.");
ItemChargeAssgntPurch.SETRANGE("Document Line No.",PurchLine."Line No.");
IF ItemChargeAssgntPurch.FINDFIRST THEN
CASE Selection OF
1:
AssignEqually(ItemChargeAssgntPurch,Currency,TotalQtyToAssign,TotalAmtToAssign);
2:
AssignByAmount(ItemChargeAssgntPurch,Currency,PurchHeader,TotalQtyToAssign,TotalAmtToAssign);
3:
AssignByWeight(ItemChargeAssgntPurch,Currency,TotalQtyToAssign);
4:
AssignByVolume(ItemChargeAssgntPurch,Currency,TotalQtyToAssign);
END;


ExecuteScalar method missed?

How do i execute a function that returns a scalar value using the library? Thanks in advance for your help.

ExecuteScalar is actually a special usage of ExecuteReader.
ExecuteReader returns the whole result set(s);
ExecuteScalar returns the first column of the first row in the first result set. Additional columns or rows are ignored.

decimal scalarValue;

    ...
    db.ExecuteReader("MY_SCHEMA.MY_PACKAGE.MY_SP",
                     parameters =>
                     {
                         ...
                         parameters.Add("pUsuarioId", pUsuarioId);
                     },
                     row =>
                     {
                         scalarValue = row.Field<decimal>(0);
                     });

If you want to extract a scalar value from a database function, instread of the first column of the first row from the first result set. You should take the scalar value from the Return-Parameter as below:

DbParameter retParam;

    ...
    db.ExecuteReader("MY_SCHEMA.MY_PACKAGE.MY_SP",
                     parameters =>
                     {
                         retParam = parameters.AddReturn("RETURN_VALUE", DbType.Decimal);
                         ...
                         parameters.Add("pUsuarioId", pUsuarioId);
                     },
                     row => { });

decimal scalarValue = retParam.Parameter<decimal>();

Thank you very much. It worked fine.


ActiveRecord like enum

would you consider merging a PR with support for enum-support like in ActiveRecord?
i would like to do something like this
# instead of this with a custom mapping
column :type, :int # 1 -> type_x 2 -> type_y ...

# i would like to
enum :type, { 1 => :type_x, 2 => :type_y ... }

That would be a great feature! I'd definitely merge a PR implementing it.
I'd prefer maintaining the current column class method for column definition rather than adding a new class method just for enums. Also, the value map should be keyed on the meaningful name rather than the id. Those would result in syntax like
column :type, :enum, values: {type_x: 1, type_y: 2}

Having a form that allows an array of values would be nice too, but a lot less important. For example:
column :type, :enum, values: [:type_x, :type_y]


IN的track_running_state是否应该设置为True

因为默认是False，是不是应该手动设置一下True

Yes, and IN will use the utterance-level statistics (mean, var) by default. Here we set it as False so the system is actually not a strict causal SE and you can switch it into True or use other norms (iLN, cLN, BN) to guarantee the causality and we have tested them, and cLN is highly suggested as the performance is relatively better than iLN and BN.

因为默认是False，是不是应该手动设置一下True

Yes, and IN will use the utterance-level statistics (mean, var) by default. Here we set it as False so the system is actually not a strict causal SE and you can switch it into True or use other norms (iLN, cLN, BN) to guarantee the causality and we have tested them, and cLN is highly suggested as the performance is relatively better than iLN and BN.

我在模型中把IN的track_running_state设为了True，在推理时尝试了两种方式
1.model.eval()
with torch.no_grad()
Average WB-PESQ: 2.190
Average NB-PESQ: 2.903
Average STOI: 91.167
Average SISNR: 12.363
2.仅用了with torch.no_grad()
Average WB-PESQ: 2.837
Average NB-PESQ: 3.336
Average STOI: 96.108
Average SISNR: 16.751
第二种方式的结果比第一种好了很多，这是不是因为第二种计算方式是非因果的？


[dialog] In Safari, focus isn't returned to the trigger when dialog is closed

Steps to reproduce
Link to live example:
https://master--base-ui.netlify.app/components/react-dialog/
Current behavior
Focus is returned to the start of the document, apparently
Expected behavior
Focus is returned to the trigger
Context
No response
Your environment
Safari 17.6

npx @mui/envinfo
  Don't forget to mention which browser you used.
  Output from `npx @mui/envinfo` goes here.

Search keywords: safari, focus, return, trigger, close, dialog, modal

@michaldudak this problem is caused by Safari not focusing buttons on mousedown, so the previously focused element isn't the trigger.
When using useClick from Floating UI, this problem is solved, but custom event handlers won't work.
Possible solutions:

Swap to the useClick hook
Add the custom click mouse event to context.dataRef.current.openEvent (that's what the focus manager checks for)
Return focus manually for Safari

I don't think switching to useButton and rendering a <div> (which might take focus instead) will be reliable since they compose a native <button> tag in theory.

Hi @vladmoroz @michaldudak
I would love to pick this up, please let me know if its ready for dev. Thanks !

This is one of the issues that should be resolved once we change the implementation to handle the trigger with Floating UI (similarly to https://github.com/mui/base-ui/issues/619)


packchk test

Codecov Report

Merging #17 (b0ef9d6) into main (cd78838) will not change coverage.
The diff coverage is n/a.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@           Coverage Diff           @@
##             main      #17   +/-   ##
=======================================
  Coverage   58.14%   58.14%
=======================================
  Files         116      116
  Lines       22884    22884
  Branches    12725    12725
=======================================
  Hits        13307    13307
  Misses       7340     7340
  Partials     2237     2237

Flag
Coverage Δ

projmgr-cov
82.76% <ø> (ø)

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

Files Changed
Coverage Δ

tools/packchk/include/RteModelReader.h
100.00% <ø> (ø)

tools/packchk/src/PackChk.cpp
66.00% <ø> (ø)


Texture import issue in latest version

A bug in the new version with the import of textures, on the previous one everything was fine with the import
Blender 3.1.2
Sollumz GitHub version downloaded today (06.04.2022)
CodeWalker v42
https://streamable.com/90h5bp

I can't replicate the Issue, I'm using the exact same version you are using.
Try again with a fresh xml file from CodeWalker.

Replicated on Blender 3.0 + Sollumz version 4144ecc
Reverting to 54d5146 resolved the issue.

I just tested this on another PC that never had any Blender installation before and I still can't replicate the issue, it must be something else.

Upon further investigation, the current behavior of the shared textures folder (which can be set in Sollumz' settings) breaks the model importing if used, as @CFox04 stated in #discussion, in order to load non-embedded textures you have to use Find Missing Files option, you have to avoid using this option to avoid any issue.

#305


Window improvements

Overall the window is buggy in resizable terminals, like in Unix systems and in Power Shells. Improve!

Fixed in https://github.com/buu342/N64-UNFLoader/commit/4a8291e8b7349ba67e55b3a35ced71cf2eb3f595. I'll close this issue when the rewrite branch gets merged.


DSA 4.1.16 Stacks: Iterative Tower of Hanoi - Documentation

Description
How do you implement the Tower of Hanoi problem using Stacks?
Task

[ ] Documentation

Note

Do not use assign command for this issue.
While requesting the issue to be assigned, please mention your NAME & BATCH NUMBER.
Kindly refer to Issue Guidelines.
Changes should be made inside the DSA/directory & DSA branch.

Nisha Tirkey
Batch No.-6
Hey @nimisha-yadav , I would like to work on this issue.

pls assign

can I work on this issue? please assign it to me.
batch=6
kalyani rajebhosale

Can I please work on this topic ?
Maneet kaur
DSA batch 1


External links to Twitter, Mastodon and Linkedln open on same page instead of new tab

patch-2 : Open external links in a new tab
Previously, external links at the bottom of the page opened in the same tab, causing users to navigate away from the current application session. This commit fixes the issue by adding the target="_blank" attribute to these anchor tags, ensuring they open in a new tab.
Changes made:

Added target="_blank" to the GitHub link.
Added target="_blank" to the App Store link.
Added target="_blank" to the Play Store link.
Added target="_blank" to the Open Transit Software Foundation link.

This change improves user experience by preserving the current session when users access external sites.
Testing:
The changes were manually tested to verify that all external links now open in a new tab. No other parts of the application were affected by these changes.
Fixes #31288

@jiya-singhal please only open 1 PR for 1 issue, I see 3 different PRs for the same issue. Please check our contributing guide on how to best contribute to zulip: https://zulip.readthedocs.io/en/latest/contributing/contributing.html

Hi @shubham-padia
I have closed the other pull requests related to this issue. I had to create multiple PRs because some checks were not passing each time. My final pull request addressing the external links opening in a new tab can be found here.
I appreciate your understanding and would be grateful if you could review this final PR at your convenience.
Thank you!

I had to create multiple PRs because some checks were not passing each time.

You don't have to create new PRs every time you need to push a change. Please look up force push for github and have a look at our contributing guide: https://zulip.readthedocs.io/en/latest/contributing/contributing.html, since this PR doesn't follow our commit guidelines.

@jiya-singhal While waiting for a decision on this change, you could update your commit message to match the commit style guidelines. Please follow @shubham-padia 's advice and push your changes to this PR. It'll be good Git practice. :)

Hi @alya
I've updated the commit message as per the guidelines and pushed the changes. Please review and let me know if any further modifications are required. I'll be happy to make any improvements needed.
Thank you!

@jiya-singhal Thanks, but please also update your commit message to match the commit style guidelines.

This introduces a security issue through not using rel="noopener noreferrer" like all our other _blank links do. I also don't think it's correct behavior -- these are normal links on the website, and should just navigate you like the nearby links do. Closing.

I have added rel="noopener noreferrer" for security reasons to external links that use target="_blank". This prevents potential security vulnerabilities related to the window.opener property and ensures referrer information isn't leaked.
Respected project maintainers, I have made these changes to improve security. If you find them appropriate, please let me know, or suggest any improvements that might be needed.


Fix crash

When I set Python to use 3.9 instead of 3.10, it crashes upon materializing a PythonFunction's object. The culprit is the PyCFunction_New function, as documented in https://github.com/clj-python/libpython-clj/issues/105. We can work around this by calling PyCFunction_NewEx and passing nil into the last parameter. This workaround should stay permanent because people might use Python 3.9 in the future.

@philipturner Hi! Could you add some tests for PythonFunction?

I added a test. I really only think one test is necessary because we're just ensuring the crash doesn't happen. Tests for subclassing will test PythonFunction functionality more thoroughly anyway.

@pvieito how do we fix the CI issue on Windows?


Something simpler, please

The idea to display keyboard layout in i3status bar is very good (and frankly should be implemented in i3status conf itself), but all you really need is setxkbmap, which probably comes in every Linux. Specifically, it would be great to somehow display the output of
setxkbmap -query | awk '/layout/{print $2}'
This output should somehow go in i3status bar. I have not found a way to include this in i3status. It is very puzzling to me that i3wm developers, otherwise extremely conscious of utf8 stuff and such, do not allow a simple output like this in i3status.

@ersi-dnd many of us i3 users have developed custom-tailored solutions for little problems like this.
While I find the solution in this repo better engineered, you might want to have a look at an alternate, simpler approach I wrote. I use py3status, therefore I don't need to kill i3 to see the changes.
(sorry for the slightly off-topic comment)

@ersi-dnd agreed! that is exactly what this script does (with grep instead of awk but you get it), the rest is just simple glue to work around the limitation in i3status that you mention.
I'm closing the issue, since this would be an issue in i3status, not here (maybe you want to consider reporting it there). I think though, that their approach is not to include features that can be done with a couple of lines of shell script, and I don't necessarily disagree, since that philosophy seems to be working well for the i3 project, which we all love :smile_cat:
Thank you for the feedback, in any case.


OptionButton dropdown not properly inheriting scale of parent CanvasLayer starting in 3.6.beta1

Tested versions

Reproducible in: v3.6.beta1.official [632a544c6] and all later versions of 3.6.
Not reproducible: in v3.5.3.stable.official [6c814135b] and earlier.

System information
Godot v3.6.beta1- Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3070 Ti (NVIDIA; <IP_ADDRESS>12) - Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz (12 Threads)
Issue description
The scale of a CanvasLayer node is not applying to a child OptionButton's dropdown. The larger the scale for the CanvasLayer the more the click area for the dropdown is off, since it seems to retain its original scale as if it were outside the CanvasLayer.
I was able to narrow down that this issue cropped up in Godot 3.6.beta1, and has not been fixed in any of the later version of 3.6 (I've tested up to 3.6.rc1, the latest version of 3.6 as of my posting). In 3.5.3-stable the issue is not present. I tested as far back as 3.5-stable and couldn't reproduce it.
This is a picture of my test scene in the editor:

Video of expected behavior in v3.5.3.stable.official [6c814135b]:
https://github.com/user-attachments/assets/717c609e-ec18-4c2e-a043-17682e1d62a7
Video of buggy behavior in v3.6.beta1.official [6c814135b]:
https://github.com/user-attachments/assets/f786209a-fc6a-435e-9823-e5803f8b61f2
Steps to reproduce
In order to reproduce, just add an OptionButton as the child of a scaled CanvasLayer in any official release of Godot 3.6 and try to select the options in the dropdown. If the CanvasLayer scale is large enough (it's 3 in my project), the options shouldn't be selectable at all. If the scale is small, you will notice the click area for the buttons is inaccurate.
Minimal reproduction project (MRP)
ViewportBugTest.zip

Will need bisecting but I suspect is to do with input.

Bisected to #66711 . @rsubtil

Fixed by #94559.

I can reproduce this bug in Godot 4.3, should I open a new ticket?


Commands in libcrypto-3.dll or libs changed names or not found

Hi there,
I am trying to use a 3rd Party software in my app which uses OpenSSL.
Until now it was working fine with all 1.1.1 OpenSSL versions.
However after I upgraded to OpenSSL 3.0.3, I noticed following errors in Visual Studio 2019 when building my app:
3rdpartylib.lib(3rdparty.cpp.obj) : error LNK2019: unresolved external symbol _EVP_PKEY_base_id referenced in function "public: enum 3rdpartyvariable __thiscall 3rdparty::keyType(void)const " (?keyType@3rdparty@@QBE?AW43rdpartyPkiKeyType@@XZ) [D:\dev\projectfolder\project.vcxproj]
and a similiar one with "_EVP_PKEY_bits".
Could it be that "_EVP_PKEY_base_id" and "_EVP_PKEY_bits" are not longer available in libcrypto-3.dll and the libs? Are they now without underscore as "EVP_PKEY_base_id" and "EVP_PKEY_bits" available?
Do I have to change some flags when building OpenSSL or does the 3rdParty software need to change for OpenSSL 3?

I guess that the third-party library needs to be rebuilt against OpenSSL 3 (using OpenSSL 3 public headers).

@vskarlsruhe please avoid tagging users with short user names by using code blocks
like this
or like this
multiline block

thank you.

@xtkoba will try that, thanks
@qbe changed, thanks

Yes, the library needs to be rebuilt against 3.0.  These functions were changes to macros in 3.0.


It seems not to happen with blur enabled. Also it doesn't happen if the inner gaps are bigger. I hope the settings seen in the right window of the pictures are enough to reproduce.

cannot reproduce. Are you maybe on legacy renderer?

if you dont know, then you aren't running it. Weird.

can you pass me your full config?

########################################################################################
AUTOGENERATED HYPR CONFIG.
PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
########################################################################################
monitor=,1366x768@60,0x0,1
exec-once=wbg ~/wallpapers/orblue.jpg
input {
kb_layout=de
kb_variant=nodeadkeys
kb_model=
kb_options=ctrl:nocaps
kb_rules=
repeat_rate=39
repeat_delay=280
follow_mouse=1
}
general {
layout="master"
max_fps=60 # deprecated, unused
sensitivity=1.0
main_mod=SUPER
gaps_in=3
gaps_out=6
border_size=0
# col.active_border=0x33ff0000
# col.inactive_border=0x66333333
damage_tracking=full # leave it on full unless you hate your GPU and want to make it suffer
}
decoration {
rounding=10
multisample_edges=2
blur=0
blur_size=1 # minimum 1
blur_passes=1 # minimum 1, more passes = more resource intensive.
blur_ignore_opacity=0
active_opacity=1.0
inactive_opacity=1.0
fullscreen_opacity=0.0
drop_shadow=1
shadow_range=10
shadow_render_power=3
shadow_ignore_window=1
shadow_offset=5 5
# col.shadow=0xc0000050
col.shadow=0xc0ffffff
# col.shadow_inactive=0xd0000000
# Your blur "amount" is blur_size * blur_passes, but high blur_size (over around 5-ish) will produce artifacts.
# if you want heavy blur, you need to up the blur_passes.
# the more passes, the more you can up the blur_size without noticing artifacts.

}
animations {
enabled=1
animation=windows,1,7,default
animation=border,1,10,default
animation=fade,1,10,default
animation=workspaces,1,6,default
}
gestures {
workspace_swipe=1
}
misc {
disable_hyprland_logo=1
}
dwindle {
pseudotile=1 # enable pseudotiling on dwindle
}
example window rules
for windows named/classed as abc and xyz
#windowrule=move 69 420,abc
#windowrule=size 420 69,abc
#windowrule=tile,xyz
windowrule=float,kitty
windowrule=size 1366 380,kitty
windowrule=move 0 0,kitty
#windowrule=pseudo,abc
#windowrule=monitor 0,xyz
windowrule=animation slide bottom,wofi
windowrule=animation slide top,kitty
windowrule=animation slide top,Guake
windowrule=animation fade 0,Guake
windowrule=float,Guake
windowrule=tile,chess
windowrule=size 1366 380,Guake
windowrule=move 0 0,Guake
example binds
bind=SUPER+SHIFT,Q,exit,
bind=SUPER,T,exec,tdrop -ma -y 0 -h 50% kitty
bind=SUPER,C,killactive,
bind=SUPER,E,exec,dolphin
bind=SUPER,V,togglefloating,
bind=SUPER,O,exec,wofi -n -G --show run -o DP-3
bind=SUPER,P,pseudo,
bind=SUPER,f,fullscreen
bind=SUPER,g,exec,guake
bind=SUPER+SHIFT,l,movewindow,r
bind=SUPER+SHIFT,k,movewindow,u
bind=SUPER+SHIFT,h,movewindow,l
bind=SUPER+SHIFT,j,movewindow,d
bind=SUPER,h,movefocus,l
bind=SUPER,l,movefocus,r
bind=SUPER,j,movefocus,d
bind=SUPER,k,movefocus,u
bind=SUPER,1,workspace,1
bind=SUPER,2,workspace,2
bind=SUPER,3,workspace,3
bind=SUPER,4,workspace,4
bind=SUPER,5,workspace,5
bind=SUPER,6,workspace,6
bind=SUPER,7,workspace,7
bind=SUPER,8,workspace,8
bind=SUPER,9,workspace,9
bind=SUPER,0,workspace,10
bind=ALT,1,movetoworkspace,1
bind=ALT,2,movetoworkspace,2
bind=ALT,3,movetoworkspace,3
bind=ALT,4,movetoworkspace,4
bind=ALT,5,movetoworkspace,5
bind=ALT,6,movetoworkspace,6
bind=ALT,7,movetoworkspace,7
bind=ALT,8,movetoworkspace,8
bind=ALT,9,movetoworkspace,9
bind=ALT,0,movetoworkspace,10

whoa, attach it please don't paste it

After some testing i think the damage tracking doesn't take the shadow-offset into account!?

it does

I don't know if that information helps you, but if i enable damage_blink, it works just fine and the damage regions are perfect.

please check with d72f1cc644b30b1517d5a1725fb9014cffde5642

Works perfectly so far.
Thanks again!


Disabled filters still executing during request

Maybe I've done something wrong, but here's the situation, and there are three observable problems here:
I have a number of dynamically generated filters at application startup to support "access rules" where the application admin can map certain model properties to a role or user so that they can/can't access any db entities with the criteria matching the access rule.  These filters are generated and then immediately have called this.DisableFilterGlobally on it, only being enabled for the span of the request when the user or role attached to a certain filter is relevant.
The problem appears to be that these filters are globally disabled, but are still executing.  In debug I checked the filters myself by using this.IsFilterEnabled(nameOfFilter) and it comes back FALSE!  The only filters where a "Contain" expression is being used should be disabled for these requests however, and as I said, I checked all of the possible filters which could trip this exception and they are reported as enabled == false according to this.IsFilterEnabled.
So why would they be executing?  The exception is posted at the bottom of this thread.
Also, for a different filter (also executing while globally disabled...), an evaluation in one filter is done for item.PersonId == null, and another for item.PersonId != null and I get a NotImplementedException error "{"Unhandled Type of Object for Constant value null in LambdaToDbExpressionVisitor.VisitConstant"}.
The first problem in general is the fact that globally disabled filters are executing.
The second problem is that the Contains expression does not appear to be supported.  These dynamically generated filter expressions take the (TEntity item, (TProperty) value) => (evaluation here based against the filter scope variable "value").  TProperty is whatever the type of the property being compared in the expression based on the actual property that is used as an access rule criteria point.  In this case, the "value" is actually IEnumerable type where TProperty is assumed to be a type of Enum, so that a role or user can have a certain list of enumeration values that they are allowed to access on the TEntity (like in this case, Document entities can be 1 of 48 categories, and we want to restrict access for certain roles to only 2 of those categories.  These values are passed in as the "value" and then -> value.Contains(item.Category) is the actual evaluation in the dynamic expression.
The third problem as far as I can tell is that a constant "null" is not handled in expressions?
1st Exception (Contains expression)

   at EntityFramework.DynamicFilters.LambdaToDbExpressionVisitor.MapContainsExpression(MethodCallExpression expression)
   at EntityFramework.DynamicFilters.LambdaToDbExpressionVisitor.VisitMethodCall(MethodCallExpression node)
   at System.Linq.Expressions.ExpressionVisitor.VisitLambda[T](Expression`1 node)
   at EntityFramework.DynamicFilters.LambdaToDbExpressionVisitor.Convert(DynamicFilterDefinition filter, DbExpressionBinding binding, ObjectContext objectContext)
   at EntityFramework.DynamicFilters.DynamicFilterQueryVisitor.BuildFilterExpressionWithDynamicFilters(String entityName, IEnumerable`1 filterList, DbExpressionBinding binding, DbExpression predicate)
   at EntityFramework.DynamicFilters.DynamicFilterQueryVisitor.Visit(DbScanExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DbScanExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpression(DbExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpressionBinding(DbExpressionBinding binding)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.Visit(DbJoinExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DbJoinExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpression(DbExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpressionBinding(DbExpressionBinding binding)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpressionBindingEnterScope(DbExpressionBinding binding)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.Visit(DbFilterExpression expression)
   at EntityFramework.DynamicFilters.DynamicFilterQueryVisitor.Visit(DbFilterExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DbFilterExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpression(DbExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpressionBinding(DbExpressionBinding binding)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpressionBindingEnterScope(DbExpressionBinding binding)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.Visit(DbProjectExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DbProjectExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpression(DbExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpressionBinding(DbExpressionBinding binding)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpressionBindingEnterScope(DbExpressionBinding binding)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.Visit(DbSortExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DbSortExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpression(DbExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.Visit(DbLimitExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DbLimitExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpression(DbExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpressionBinding(DbExpressionBinding binding)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.Visit(DbJoinExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DbJoinExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpression(DbExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpressionBinding(DbExpressionBinding binding)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpressionBindingEnterScope(DbExpressionBinding binding)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.Visit(DbProjectExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DbProjectExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpression(DbExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitBinary(DbBinaryExpression expression, Func`3 callback)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.Visit(DbUnionAllExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DbUnionAllExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpression(DbExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpressionBinding(DbExpressionBinding binding)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpressionBindingEnterScope(DbExpressionBinding binding)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.Visit(DbSortExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DbSortExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpression(DbExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpressionBinding(DbExpressionBinding binding)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpressionBindingEnterScope(DbExpressionBinding binding)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.Visit(DbProjectExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DbProjectExpression.Accept[TResultType](DbExpressionVisitor`1 visitor)
   at EntityFramework.DynamicFilters.DynamicFilterInterceptor.TreeCreated(DbCommandTreeInterceptionContext interceptionContext)
   at System.Data.Entity.Infrastructure.Interception.DbCommandTreeDispatcher.<Created>b__0(IDbCommandTreeInterceptor i, DbCommandTreeInterceptionContext c)
   at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TInterceptionContext,TResult](TResult result, TInterceptionContext interceptionContext, Action`2 intercept)
   at System.Data.Entity.Infrastructure.Interception.DbCommandTreeDispatcher.Created(DbCommandTree commandTree, DbInterceptionContext interceptionContext)
   at System.Data.Entity.Core.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree, DbInterceptionContext interceptionContext)
   at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition..ctor(DbProviderFactory storeProviderFactory, DbCommandTree commandTree, DbInterceptionContext interceptionContext, IDbDependencyResolver resolver, BridgeDataReaderFactory bridgeDataReaderFactory, ColumnMapFactory columnMapFactory)
   at System.Data.Entity.Core.EntityClient.Internal.EntityProviderServices.CreateCommandDefinition(DbProviderFactory storeProviderFactory, DbCommandTree commandTree, DbInterceptionContext interceptionContext, IDbDependencyResolver resolver)
   at System.Data.Entity.Core.EntityClient.Internal.EntityProviderServices.CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree, DbInterceptionContext interceptionContext)
   at System.Data.Entity.Core.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree, DbInterceptionContext interceptionContext)
   at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlanFactory.CreateCommandDefinition(ObjectContext context, DbQueryCommandTree tree)
   at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlanFactory.Prepare(ObjectContext context, DbQueryCommandTree tree, Type elementType, MergeOption mergeOption, Boolean streaming, Span span, IEnumerable`1 compiledQueryParameters, AliasGenerator aliasGenerator)
   at System.Data.Entity.Core.Objects.ELinq.ELinqQueryState.GetExecutionPlan(Nullable`1 forMergeOption)
   at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__6()
   at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
   at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__5()
   at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)
   at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
   at System.Data.Entity.Core.Objects.ObjectQuery`1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0()
   at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at CareConnext.WebControls.SearchViewModelBase`1.SetResults(IEnumerable`1 results) in c:\__Development__\Freelance\CareConnext\__PROJECTS__\Core\CareConnext\model\view\SearchViewModelBase.cs:line 67
   at CareConnext.Data.GenericRepository`1.Search(ISearchModel`1 model) in c:\__Development__\Freelance\CareConnext\__PROJECTS__\Core\CareConnext\data\repository\GenericRepository.cs:line 61
   at CareConnext.Data.AuditedRepository`1.SearchAuditable(ISearchModel`1 model) in c:\__Development__\Freelance\CareConnext\__PROJECTS__\Core\CareConnext\data\repository\AuditedRepository.cs:line 52
   at CareConnext.Business.SearchHandler.<>c__DisplayClass7`1.<SearchAuditableAsync>b__6() in c:\__Development__\Freelance\CareConnext\__PROJECTS__\Viewer\CareConnext.Business\handlers\SearchHandler.cs:line 33
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()

2nd exception
  at EntityFramework.DynamicFilters.LambdaToDbExpressionVisitor.VisitConstant(ConstantExpression node)
   at System.Linq.Expressions.ExpressionVisitor.VisitBinary(BinaryExpression node)
   at EntityFramework.DynamicFilters.LambdaToDbExpressionVisitor.VisitBinary(BinaryExpression node)
   at System.Linq.Expressions.ExpressionVisitor.VisitLambda[T](Expression`1 node)
   at EntityFramework.DynamicFilters.LambdaToDbExpressionVisitor.Convert(DynamicFilterDefinition filter, DbExpressionBinding binding, ObjectContext objectContext)
   at EntityFramework.DynamicFilters.DynamicFilterQueryVisitor.BuildFilterExpressionWithDynamicFilters(String entityName, IEnumerable`1 filterList, DbExpressionBinding binding, DbExpression predicate)
   at EntityFramework.DynamicFilters.DynamicFilterQueryVisitor.Visit(DbScanExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpression(DbExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitGroupExpressionBinding(DbGroupExpressionBinding binding)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.Visit(DbGroupByExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpression(DbExpression expression)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpressionBinding(DbExpressionBinding binding)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.VisitExpressionBindingEnterScope(DbExpressionBinding binding)
   at System.Data.Entity.Core.Common.CommandTrees.DefaultExpressionVisitor.Visit(DbProjectExpression expression)
   at EntityFramework.DynamicFilters.DynamicFilterInterceptor.TreeCreated(DbCommandTreeInterceptionContext interceptionContext)
   at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TInterceptionContext,TResult](TResult result, TInterceptionContext interceptionContext, Action`2 intercept)
   at System.Data.Entity.Infrastructure.Interception.DbCommandTreeDispatcher.Created(DbCommandTree commandTree, DbInterceptionContext interceptionContext)
   at System.Data.Entity.Core.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree, DbInterceptionContext interceptionContext)
   at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition..ctor(DbProviderFactory storeProviderFactory, DbCommandTree commandTree, DbInterceptionContext interceptionContext, IDbDependencyResolver resolver, BridgeDataReaderFactory bridgeDataReaderFactory, ColumnMapFactory columnMapFactory)

The stack trace you are showing is not actually for a filter that is being executed and sent to the db server.  That stack trace shows the query compilation that happens the first time the query is executed.  And it will do all that stuff (including evaluating your filter) regardless of whether or not the filter is currently enabled.  That is necessary because EF only gives us 1 chance to evaluate the query and modify it (to inject our dynamic filter).  There is an extra condition that I add that is used to actually disable the filter (which just modifies the sql to ignore whatever other conditions are there).  The actual parameter values (and the "is filter disabled" flag) are injected into the raw SQL each time the query is sent to the db server.
For your second issue (the contains filter): Contains is supported (and there is a set of unit tests around it that you can see in the src).  But, the problem may be that you are using enums.  I will see if I can reproduce the problem that way and if there is something I can do about that.  And if that's why the exception is being thrown, then what I said above should explain why you are hitting it even when the filter is disabled.
I'll also need to go back and test your 3rd issue (with the null constant).  That should be supported and there are unit tests in NullTests.cs that should be covering it.  You should be able to work around it using "item.HasValue" or "!item.HasValue".

Good points, with the enums it is easy enough to convert them to integers assuming the DynamicFilters can support enum->int cast and then I can just pass in an enumerable of integers instead to represent the expression (only Enum properties generate these expressions and it will always use a simple Contains evaluation, so if the property can be cast to int then the variable passed in can be IEnumerable instead since it is fixed for enum properties.
I'll try HasValue instead of the null checks as you have advised and let you know if there is still any issues.  I think the 3rd issue may just be a method stub that was never filled as somewhere in the stack trace it showed a NotImplementedException

So I tried changing the expressions around a bit.  Still getting errors on the Contains expression.  The stack trace is the exact same but has an additional line at the top of the stack:
The generated expression.ToString():
{(item, value) => value.Contains(Convert(item.DocumentType))}
(new line added in the exception)
at System.Object.GetType()
(same as above)
at EntityFramework.DynamicFilters.LambdaToDbExpressionVisitor.MapContainsExpression(MethodCallExpression expression)
at EntityFramework.DynamicFilters.LambdaToDbExpressionVisitor.VisitMethodCall(MethodCallExpression node)
at System.Linq.Expressions.ExpressionVisitor.VisitLambda[T](Expression1 node)    at EntityFramework.DynamicFilters.LambdaToDbExpressionVisitor.Convert(DynamicFilterDefinition filter, DbExpressionBinding binding, ObjectContext objectContext)    at EntityFramework.DynamicFilters.DynamicFilterQueryVisitor.BuildFilterExpressionWithDynamicFilters(String entityName, IEnumerable1 filterList, DbExpressionBinding binding, DbExpression predicate)
at EntityFramework.DynamicFilters.DynamicFilterQueryVisitor.Visit(DbScanExpression expression)

The Convert isn't supported.  We are limited in what we can do in that linq statement.  The conversion from enum->int will need to be handled internally.
For the null/HasValue issue: Can you post the relevant parts of the model and the filter that is failing?  I don't understand why that isn't working.

My mistake, it appears to be the same Contains expression after all, so I guess those are working.  Just need to solve the enum->int cast in the expression unless you think you can fix to support enum / IEnumerable types in the filter expressions.

I'm going to check to see if I can support it inside the filter expressions.  It will be much cleaner that way.  I always prefer to make my properties Enum and let EF handle the conversion to int so I'd like the filtering to work the same way.
But I won't be able to work on it more until later tonight.  If I can't fix it tonight, I'll at least get you some kind of ETA or let you know if it's going to be a problem.  And I'll focus on the Contains issue since you at least have a workaround for the null issue.

The Contains() problem was actually because you were using IEnumerable as the parameter type.  For some reason, IEnumerable.Contains() is stored into a linq expression differently than for List, IList, and IContains.  But I was able to make a small change to support it.  Pull down the latest and see if that fixes your problem.
I also took a look at the null issue.  And the error message you are getting is actually saying that the type "Object" (as in System.Object) is not valid.  Which is telling me that when you said you have a filter of "item.ParentId == null" that "ParentId" is of type System.Object.  That can't be translated into the EF/SQL query.  It must be an EF supported type.  Which is then confusing if the .HasValue workaround really did work because that should not have worked either if that's what is going on...
If that's not the case, I will need the relevant parts of your model and the full filter you are declaring so I can try to reproduce the problem.  At the moment, I cannot.

Well your latest update does work (so far, not getting the exception while
the filter is disabled...have not yet tested with the activated filter
though)!  Do you still want to take a look at the expression code?
On Tue, Mar 22, 2016 at 6:52 PM, jcachat<EMAIL_ADDRESS>wrote:

The Contains() problem was actually because you were using IEnumerable as
the parameter type. For some reason, IEnumerable.Contains() is stored into
a linq expression differently than for List, IList, and IContains. But I
was able to make a small change to support it. Pull down the latest and see
if that fixes your problem.
I also took a look at the null issue. And the error message you are
getting is actually saying that the type "Object" (as in System.Object) is
not valid. Which is telling me that when you said you have a filter of
"item.ParentId == null" that "ParentId" is of type System.Object. That
can't be translated into the EF/SQL query. It must be an EF supported type.
Which is then confusing if the .HasValue workaround really did work because
that should not have worked either if that's what is going on...
If that's not the case, I will need the relevant parts of your model and
the full filter you are declaring so I can try to reproduce the problem. At
the moment, I cannot.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/jcachat/EntityFramework.DynamicFilters/issues/59#issuecomment-200097896

I'm still curious about why a filter on "item.PersonId == null" was throwing an exception (the 2nd exception in VisitConstant in your original post).  If you have a chance to re-test that and then send me the model & filter (assuming it still fails), I can take a look at what is happening there.

Well I can confirm the generated filters are all working as expected!  I'm really not sure why it was treating that expression as an object, because PersonId should be a Nullable and the type is set by a generic.  Here is a snippet of the code where these expressions are generated.  The properties on any entity model with a certain attribute have a dynamic filter set aside for them based on the comparison enumerated type.  I.E. if you want to create a filterable condition based on PersonId, you can attribute the PersonId property twice, one with the Comparison type "IsNull" and one with "IsNotNull" to get two dynamic filters where an evaluation vs. HasValue or !HasValue is used.
There are two expression invocation classes nested in the context for creating these during initialization:
`   protected override void OnFilterCreating(DbModelBuilder mb) {
            base.OnFilterCreating(mb);

            foreach (var type in TypeFactory.GetTypes<IModel>()) {
                foreach (var propertyInfo in type.GetProperties().Where(pi => pi.HasCustomAttribute<AccessFilterPropertyAttribute>())) {
                    foreach (var attr in propertyInfo.GetCustomAttributes<AccessFilterPropertyAttribute>()) {
                        if (propertyInfo.PropertyType.IsEnum) {
                            TypeWrapper.InvokeWrapper(typeof(_EnumFilterExpressionBuilder<,>),
                                                      new Type[] { type, propertyInfo.PropertyType },
                                                      mb,
                                                      propertyInfo);
                        }
                        else {
                            TypeWrapper.InvokeWrapper(typeof(_PropertyFilterExpressionBuilder<,>),
                                                      new Type[] { type, propertyInfo.PropertyType },
                                                      mb,
                                                      propertyInfo,
                                                      attr.PropertyComparer);
                        }
                    }
                }
            }
        }

        private PartitionScopeContext GetPartitionScope() {
            return this.PartitionScope;
        }

        private class _EnumFilterExpressionBuilder<TModel, TProperty> : TypeWrapper where TModel : class, IModel {
            private readonly DbModelBuilder _builder;
            private readonly PropertyInfo _propertyInfo;

            public _EnumFilterExpressionBuilder(DbModelBuilder builder, PropertyInfo pi) {
                _builder = builder;
                _propertyInfo = pi;
            }

            public override void Run() {
                //System.Diagnostics.Debugger.Launch();
                var paramItem = Expression.Parameter(typeof(TModel), "item");
                var paramValues = Expression.Parameter(typeof(IEnumerable<TProperty>), "value");

                var prop = Expression.Property(paramItem, _propertyInfo);
                //var cast = Expression.Convert(prop, typeof(Int32));

                MethodInfo mi = typeof(Enumerable).GetMethods()
                                                  .Where(m => m.Name.Equals("Contains"))
                                                  .Single(m => m.GetParameters().Length == 2)
                                                  .MakeGenericMethod(typeof(TProperty));

                var expContains = Expression.Call(null, mi, paramValues, prop);

                var lambda = Expression.Lambda<Func<TModel, IEnumerable<TProperty>, bool>>(expContains, paramItem, paramValues);

                string filterName = string.Format("AF__{0}_{1}_{2}", typeof(TModel).Name, _propertyInfo.Name, "Enum");

                _builder.Filter(filterName, lambda, new List<TProperty>());
                _builder.DisableFilterGlobally(filterName);
            }
        }

        private class _PropertyFilterExpressionBuilder<TModel, TProperty> : TypeWrapper where TModel : class, IModel {
            private readonly DbModelBuilder _builder;
            private readonly PropertyInfo _propertyInfo;
            private readonly Comparison _comparison;

            public _PropertyFilterExpressionBuilder(DbModelBuilder builder, PropertyInfo pi, Comparison comparison) {
                _builder = builder;
                _propertyInfo = pi;
                _comparison = comparison;
            }

            public override void Run() {
                var paramItem = Expression.Parameter(typeof(TModel), "item");
                var paramValue = Expression.Parameter(typeof(TProperty), "value");

                var prop = Expression.Property(paramItem, _propertyInfo);

                var expComparison = (_propertyInfo.PropertyType.IsGenericType &&
                                     _propertyInfo.PropertyType.GetGenericTypeDefinition().IsEquivalentTo(typeof(Nullable<>).GetGenericTypeDefinition()) &&
                                     _comparison.IsAnyOf(Comparison.IsNull, Comparison.IsNotNull))
                                        ? GetNullableComparisonExpression(prop, _comparison)
                                        : Comparer.GetComparisonExpression(prop, _comparison, paramValue);

                var lambda = Expression.Lambda<Func<TModel, TProperty, bool>>(expComparison, paramItem, paramValue);

                string filterName = string.Format("AF__{0}_{1}_{2}", typeof(TModel).Name, _propertyInfo.Name, _comparison.ToString());

                _builder.Filter(filterName, lambda, default(TProperty));
                _builder.DisableFilterGlobally(filterName);
            }

            private Expression GetNullableComparisonExpression(MemberExpression exp, Comparison comparison) {
                return (comparison == Comparison.IsNotNull) ? Expression.Property(exp, "HasValue") as Expression
                                                            : Expression.Not(Expression.Property(exp, "HasValue")) as Expression;
            }
        }

The filters are by default globally disabled and during a request a cached list of user/role associations to those filters are enabled only in that scope (not globally) for that user/role based request, and their allowed values for those expressions are injected into the "value" argument of the expression using SetFilterScopeParameter.
Assume though originally for
    var expComparison = (_propertyInfo.PropertyType.IsGenericType &&
                                    _propertyInfo.PropertyType.GetGenericTypeDefinition().IsEquivalentTo(typeof(Nullable<>).GetGenericTypeDefinition()) &&
                                    _comparison.IsAnyOf(Comparison.IsNull, Comparison.IsNotNull))
                                       ? GetNullableComparisonExpression(prop, _comparison)
                                       : Comparer.GetComparisonExpression(prop, _comparison, paramValue);

The IsNull/IsNotNull comparison was doing the original expression I told you of, where it was item.PersonId != null or item.PersonId == null.
This is the expression that would be used for a non Nullable type still.  But maybe you can see why this tripped that exception, where it should have correctly cast the filter to <TModel, TProperty, bool> where TProperty should've been typeof(int?) based on the pattern above.

It's going to be pretty difficult for me to determine from looking at your code.  That's a pretty complicated setup.  I would need to be able to use a debugger to step through it to examine how the expressions are being created.
If there's a full project example you can send me, I'd be happy to take a closer look at it.  But otherwise, if the "HasValue" method is working for you, maybe we just leave it at that.

I'd have to link you up to the whole solution which is proprietary code unfortunately.  But yeah it's working perfectly.
Sent from my iPhone

On Mar 23, 2016, at 6:56 PM, jcachat<EMAIL_ADDRESS>wrote:
It's going to be pretty difficult for me to determine from looking at your code. That's a pretty complicated setup. I would need to be able to use a debugger to step through it to examine how the expressions are being created.
If there's a full project example you can send me, I'd be happy to take a closer look at it. But otherwise, if the "HasValue" method is working for you, maybe we just leave it at that.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub


GROOVY-10010: check GString element vs String collection for method call

https://issues.apache.org/jira/browse/GROOVY-10010

Merged. Thanks!


Exclude executables from getting shims.

Generates a .ignore file next to pluginval executable to prevent it from getting shims.
https://docs.chocolatey.org/en-us/create/create-packages#how-do-i-exclude-executables-from-getting-shims
Also adds the new location of pluginval to the user path.

Directly Related to #2

I have tested pluginval installed via the package generated with this Pull Request, with two plugins, on one VST (Dexed) and one VST3(Surge).
So I am going to merge this Pull Request and, see if I can regenerate the package to replace the one available on Chocolatey, even if this package is already "working".


[FLINK-33097][autoscaler] Initialize the generic autoscaler module and interfaces

What is the purpose of the change
The first subtask of FLIP-334.
Brief change log

[FLINK-33097][autoscaler] Initialize the generic autoscaler module and interfaces

User will re-implement these EventHandler, StateStore and ScalingRealizer, so mark these classes to the @Experimental.
User will use the Flink-Kubenetes-Operator or StandaloneAutoscaler, and don't use the JobAutoScaler directly, so  mark JobAutoScaler as the @Internal.

[FLINK-33098][autoscaler] Move non-kubernetes related autoscaler classes to flink-autoscaler module

[FLINK-33098][autoscaler] Support kubernetes autoscaler using generic interface

Migrate all generic classes from flink-kubernetes-operator-autoscaler module to autoscaler moudle
Migrate all kubernetes implementation classes from flink-kubernetes-operator-autoscaler module to flink-kubernetes-operator moudle
Support all old tests
Removing the flink-kubernetes-operator-autoscaler module

[FLINK-33098][autoscaler] Removing the operator prefix for all autoscaler options

Removing the option prefix(kubernetes.operator.) for all options and update the doc(All old option names are marked with withDeprecatedKeys to ensure the compatibility.)

Verifying this change
All old tests have been supported.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): yes
The public API: yes
Core observer or reconciler logic that is regularly executed: no

Documentation

Does this pull request introduce a new feature? yes

The refactor also completely changes how the autoscaler module is loaded in the operator. Previously we intentionally loaded this as a service so it would be possible to potentially upgrade the autoscaler without the rest of the operator.
Now @1996fanrui you moved the operator related autoscaler classes in the main operator module resulting in a tight coupling.
@mxm how do you feel about this? Originally you were the one who introduced the service loader approach :)

Sorry for breaking this due to I don't know the background before. And thanks to @gyfora for pointing it out.
If it's still needed, I can restore the flink-kubernetes-operator-autoscaler module. And moving all kubernetes-autoscaler related classes to this module. WDYT?
cc @mxm

@1996fanrui Sorry I merged a PR related to event triggering from the ScalingExecutor. I will try to avoid merging further autoscaler related PRs until this is finalised. Please take care when rebasing

If it's still needed, I can restore the flink-kubernetes-operator-autoscaler module. And moving all kubernetes-autoscaler related classes to this module. WDYT?

Given that the autoscaler module is now decoupled from the operator version, it would make more sense than ever to have it pluggable. But given that the backends are not pluggable, the pluggability wouldn't be as useful anymore. I'm ok with removing the support for now if it proves difficult to maintain it.

Hi @mxm @gyfora , thanks for your hard review!
I addressed all comments of this PR so now. Some interfaces, code design and code style are improved, and no big changes during reviewing, I have updated the latest interfaces to the FLIP doc.
About manual testing, I rebuilt the image to check whether it's fine just now, and run the AutoscalingExample with autoscaling.yaml. In general, it works well. There are some warn log due to these demo job still use the deprecated configuration key, and I have updated them in the last fix commit.
Please help review again in your free time, big thanks~ ❤
I can squash the last commit after your check. Also, please let me know if you think more manual testing is needed, thanks.
2023-10-17 15:33:56,930 o.a.f.c.Configuration          [WARN ] [default.autoscaling-example] Config uses deprecated configuration key 'kubernetes.operator.job.autoscaler.enabled' instead of proper key 'job.autoscaler.enabled'
2023-10-17 15:33:56,931 o.a.f.c.Configuration          [WARN ] [default.autoscaling-example] Config uses deprecated configuration key 'kubernetes.operator.job.autoscaler.enabled' instead of proper key 'job.autoscaler.enabled'
2023-10-17 15:33:57,205 o.a.f.a.ScalingMetricCollector [INFO ] [default.autoscaling-example] Job updated at 2023-10-17T07:32:56.133Z. Clearing metrics.
2023-10-17 15:33:57,331 o.a.f.c.Configuration          [WARN ] [default.autoscaling-example] Config uses deprecated configuration key 'kubernetes.operator.job.autoscaler.metrics.window' instead of proper key 'job.autoscaler.metrics.window'
2023-10-17 15:33:57,332 o.a.f.c.Configuration          [WARN ] [default.autoscaling-example] Config uses deprecated configuration key 'kubernetes.operator.job.autoscaler.stabilization.interval' instead of proper key 'job.autoscaler.stabilization.interval'
2023-10-17 15:33:57,397 o.a.f.a.ScalingMetricCollector [WARN ] [default.autoscaling-example] pendingRecords metric for cbc357ccb763df2852fee8c4fc7d55f2 could not be found. Either a legacy source or an idle source. Assuming no pending records.
2023-10-17 15:33:57,620 o.a.f.a.ScalingMetricCollector [INFO ] [default.autoscaling-example] Metric window not full until 2023-10-17T07:36:56.931915Z
2023-10-17 15:33:57,623 o.a.f.c.Configuration          [WARN ] [default.autoscaling-example] Config uses deprecated configuration key 'kubernetes.operator.job.autoscaler.target.utilization.boundary' instead of proper key 'job.autoscaler.target.utilization.boundary'
2023-10-17 15:33:57,624 o.a.f.c.Configuration          [WARN ] [default.autoscaling-example] Config uses deprecated configuration key 'kubernetes.operator.job.autoscaler.target.utilization.boundary' instead of proper key 'job.autoscaler.target.utilization.boundary'

Hi @mxm @gyfora , thanks for your hard review!
I addressed all comments of this PR so now. Some interfaces, code design and code style are improved, and no big changes during reviewing, I have updated the latest interfaces to the FLIP doc.
About manual testing, I rebuilt the image to check whether it's fine just now, and run the AutoscalingExample with autoscaling.yaml. In general, it works well. There are some warn log due to these demo job still use the deprecated configuration key, and I have updated them in the last fix commit.
Please help review again in your free time, big thanks~ ❤
I can squash the last commit after your check. Also, please let me know if you think more manual testing is needed, thanks.
2023-10-17 15:33:56,930 o.a.f.c.Configuration          [WARN ] [default.autoscaling-example] Config uses deprecated configuration key 'kubernetes.operator.job.autoscaler.enabled' instead of proper key 'job.autoscaler.enabled'
2023-10-17 15:33:56,931 o.a.f.c.Configuration          [WARN ] [default.autoscaling-example] Config uses deprecated configuration key 'kubernetes.operator.job.autoscaler.enabled' instead of proper key 'job.autoscaler.enabled'
2023-10-17 15:33:57,205 o.a.f.a.ScalingMetricCollector [INFO ] [default.autoscaling-example] Job updated at 2023-10-17T07:32:56.133Z. Clearing metrics.
2023-10-17 15:33:57,331 o.a.f.c.Configuration          [WARN ] [default.autoscaling-example] Config uses deprecated configuration key 'kubernetes.operator.job.autoscaler.metrics.window' instead of proper key 'job.autoscaler.metrics.window'
2023-10-17 15:33:57,332 o.a.f.c.Configuration          [WARN ] [default.autoscaling-example] Config uses deprecated configuration key 'kubernetes.operator.job.autoscaler.stabilization.interval' instead of proper key 'job.autoscaler.stabilization.interval'
2023-10-17 15:33:57,397 o.a.f.a.ScalingMetricCollector [WARN ] [default.autoscaling-example] pendingRecords metric for cbc357ccb763df2852fee8c4fc7d55f2 could not be found. Either a legacy source or an idle source. Assuming no pending records.
2023-10-17 15:33:57,620 o.a.f.a.ScalingMetricCollector [INFO ] [default.autoscaling-example] Metric window not full until 2023-10-17T07:36:56.931915Z
2023-10-17 15:33:57,623 o.a.f.c.Configuration          [WARN ] [default.autoscaling-example] Config uses deprecated configuration key 'kubernetes.operator.job.autoscaler.target.utilization.boundary' instead of proper key 'job.autoscaler.target.utilization.boundary'
2023-10-17 15:33:57,624 o.a.f.c.Configuration          [WARN ] [default.autoscaling-example] Config uses deprecated configuration key 'kubernetes.operator.job.autoscaler.target.utilization.boundary' instead of proper key 'job.autoscaler.target.utilization.boundary'

Thank you @1996fanrui for the persistence and all the nice work. I will do a final pass on this later today, let's try to merge this as soon as possible to unblock current work on the autoscaler :)

I've also manually tested this change on Flink 1.18 (both reactive and non-reactive), and worked flawlessly.
Thank you for the effort you've put into this, I really like the direction the autoscaler is heading.

I've also manually tested this change on Flink 1.18 (both reactive and non-reactive), and worked flawlessly. Thank you for the effort you've put into this, I really like the direction the autoscaler is heading.

Thanks @mateczagany  for the test!


[Bug] If the server closes the ws connection, mqttx seems to ignore this event.

What did I do
I used mqttx to connect my mqtt server on websocket connection with mqtt v5.
I published a message with  no topic but a topic alias, as a result, the server cannot recognize it and close the ws connection.
What happened
If the server closes the ws connection as a result of a protocol error, mqttx seems to ignore this event, and keep its connecting state.
Then if I clicks the red disconnect button, mqttx blocks.
Expected
mqttx receive the close event, and change its state from connecting to disconnecting, like tcp connection.
Environment

OS:  windows 11
MQTTX version: v1.9.8

Hi, thanks for your feedback!
I noticed that when using MQTT over WebSocket to connect to EMQX, the connection was closed normally after the server initiated the disconnection. Please specify which MQTT service you are using. This information could help you better understand the context of your issue.
Additionally, you might want to try using MQTTX CLI with the --debug option. This will enable debug logging and could provide more insights into why the connection is not receiving disconnection messages during Ping Check. This detailed information could be crucial in diagnosing the issue you're experiencing.

Yes, my mistake.


Add clarification about JSONPath syntax to doc

Add clarification about JSONPath syntax to SQL JSON functions doc.
This PR has:

[ ] been self-reviewed.

Clint doesn't think this is worth adding - closing.


Linking errors during examples build

Hi there,
Thanks for your code. I find that during the cmake --build process for the c++ examples files, the executables keep generating linker errors such as
Linking CXX executable assignment_learning_ex
/usr/local/lib/x86_64-linux-gnu/liblapack.a(dgesvd.f.o): In function `dgesvd_':
dgesvd.f:(.text+0x35e): undefined reference to `_gfortran_concat_string'
dgesvd.f:(.text+0xd36): undefined reference to `_gfortran_concat_string'
/usr/local/lib/x86_64-linux-gnu/liblapack.a(dormbr.f.o): In function `dormbr_':
dormbr.f:(.text+0x38f): undefined reference to `_gfortran_concat_string'
dormbr.f:(.text+0x599): undefined reference to `_gfortran_concat_string'
dormbr.f:(.text+0x619): undefined reference to `_gfortran_concat_string'
/usr/local/lib/x86_64-linux-gnu/liblapack.a(dormbr.f.o):dormbr.f:(.text+0x681): more undefined references to `_gfortran_concat_string' follow

Now when I manually add the -lgfortran linker to the example in question
         target_link_libraries(assignment_learning_ex dlib::dlib gfortran)

the errors do not go away. Do you have a suggestion?

Ah, it seems the OpenBlas distributed Lapack helps eliminate the linker errors. Sorry for the noise. Closing now.


Implement a landing page and navigation

As a [role]
I need [function]
So that [benefit]
Details and Assumptions
* [document what you know]

Acceptance Criteria
gherkin
Given [some context]
When [certain action is taken]
Then [the outcome of action is observed]

Exercise 5: Triage new issues


Poetry on macos apple silicon not working

Installing dependencies from lock file
Package operations: 1 install, 0 updates, 0 removals

Installing torch (2.3.1+cpu)

RuntimeError
Unable to find installation candidates for torch (2.3.1+cpu)
at /opt/homebrew/lib/python3.11/site-packages/poetry/installation/chooser.py:74 in choose_for
70│
71│             links.append(link)
72│
73│         if not links:
→  74│             raise RuntimeError(f"Unable to find installation candidates for {package}")
75│
76│         # Get the best link
77│         chosen = max(links, key=lambda link: self._sort_key(package, link))
78│
Cannot install torch.

just using pip install I managed to install the package.
Using the tutorial code for NLP I get the following warning and a completely empty website:
huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...
To disable this warning, you can either:
- Avoid using tokenizers before the fork if possible
- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)
Spotlight running on http://<IP_ADDRESS>:54899/
huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...
To disable this warning, you can either:
- Avoid using tokenizers before the fork if possible
- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)
I tried adding TOKENIZERS_PARALLELISM=false to .env file but that didn't make a difference.

The warning might not represent the problem.
I understand that you start spotlight but you cant access it from your browser afterwards.
Can you try to review the dataframe you are passing into spotlight before you start spotlight?

The browser just returns an empty frame when I connect to my local adress.
I'll have a look at the dataframe.


theme.toml not found

An error occur when I use the theme:
Failed to build the site
Error: No `theme.toml` file found. Are you in the right directory?
Reason: No such file or directory (os error 2)

what I do:

clone the theme "hyde" and place it under folder themes
add theme config in config.toml

I can't reproduce that on a new site (gutenberg init, cd themes, git clone https://github.com/Keats/hyde.git, cd .., gutenberg build) on my laptop.
Can you push a reproduction on GitHub so I can have a look?

I just clone the wrong theme rep from https://github.com/poole/hyde, sorry...
I replace it with the right one https://github.com/Keats/hyde.git and it work fine, it's cool!
Thank you~


Validators generator uses wrong generator name for optional body parameters

The issue is related to incorrect usage of the type name by Container types

Fixed in 0.1.5


Use PhysicsFS as underlying VDFS implementation

This PR allows ZenLib to load other archive types other than VDFs

@degenerated1123 I made the changes directly to our repository (The author still hasn't responded) and I resolved the merge conflict.