chore(di): Move service container to use brandi

In https://github.com/kumahq/kuma-gui/pull/507 we added an env service/function to help us get hold of 'environment variables' from lots of different places (build-time CLI, run-time DOM etc). We also introduced a very rudimentary service container to make the behaviour of this service/function centralised and more flexible.
This PR goes one more step (towards https://github.com/kumahq/kuma-gui/issues/521) and introduces a more featured service container based on brandi.
Further notes:

As noted in #507 I wanted to move KUMA_NAME to KUMA_PRODUCT_NAME, so I did this here.
'Services' live in @/services/service-name/. They are folders. This means we can add different implementations, tests, and docs inside this folder and the service itself is like a 'little module'. I almost made an index.ts file in this folder to get 'default setups' I'm 99% sure I want to do something like that and only ~90% sure of exactly what I want to go in the index.ts file.
Docs for the service live in the same service folder - I added one here, which is relatively sparse, but as these services are built up I would imagine these READMEs will be super handy as we add more and more of them.
I included a CookiedEnv, an alternative implementation of Env, which will let us change environment variables when we can't and/or it's hassle-y to rebuild the application, i.e. on our Netlify preview sites. This also gave me the opportunity to test out the whole use case/flow ( We have some use cases (enterprise fork or test mocks) where we should be able to replace entire components with another and add an extra functionality  ) in the one single repository, so it was nice to have something to check the use case with here.
I added an alternative vite config using a "development container", but I didn't as yet add this into our default package scripts, we can discuss if/when we want to do that, but for the purposes of this PR you can use npx vite -c vite.config.development.js

P.S. Oh I forget to mention

I added some very thin helper functions over brandi

Those bits are done, lemme know if there's anything else.


HDDS-6789. Omit download progress in builds

What changes were proposed in this pull request?
Without Maven cache hit build output is flooded with downloading/downloaded messages:
[INFO] Downloading from central: https://repo.maven.apache.org/maven2/kr/motd/maven/os-maven-plugin/1.5.0.Final/os-maven-plugin-1.5.0.Final.pom
[INFO] Downloaded from central: https://repo.maven.apache.org/maven2/kr/motd/maven/os-maven-plugin/1.5.0.Final/os-maven-plugin-1.5.0.Final.pom (6.4 kB at 10 kB/s)
[INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/9/oss-parent-9.pom
[INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/9/oss-parent-9.pom (6.6 kB at 97 kB/s)
[INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-api/3.2.1/maven-plugin-api-3.2.1.pom
[INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-api/3.2.1/maven-plugin-api-3.2.1.pom (3.4 kB at 45 kB/s)
[INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven/3.2.1/maven-3.2.1.pom
[INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven/3.2.1/maven-3.2.1.pom (23 kB at 290 kB/s)
[INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/23/maven-parent-23.pom
[INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/23/maven-parent-23.pom (33 kB at 434 kB/s)

This PR disables progress output in the scripts used by CI checks.
https://issues.apache.org/jira/browse/HDDS-6789
How was this patch tested?
No more verbose downloading/downloaded messages in logs:
https://github.com/adoroszlai/hadoop-ozone/actions/runs/2369883623

Thanx @adoroszlai for the contribution!!!

Thanks @ayushtkn for reviewing and merging this.


Improve lot management

Changes

The previous implementation assumed that, from the start of the auction, lot amount of Gem would be received for a bid of price * lot.  This isn't true; while the auction price is higher than tab, some collateral is returned to the vault.  I've updated the keeper to calculate slice, such that Dai proceeds are calculated based upon the amount of collateral which would be received if a bid at the current price was accepted.
The daiAmount configuration was confusing; it seemed to be used as a max amount, but when converted to Gem terms, was labeled as a minAmount in code.  As an enhancement, I created separate configuration knobs which can be used to limit participation in small gas-inefficient takes (minLotDaiValue) and a maximum to let user tune slippage/opportunity tradeoff (maxLotDaiValue).
Reduced output verbosity, reducing redundancy and showing priceWithProfit only for Oasis, the only place where it is used.

did you test it on kovan?


Upgrade Exodus Reader to read variables and time varying properties of the mesh

An engineering user was wondering how feasible it would be to upgrade our Exodus reader. I'm not familiar with Exodus, so I may not understand fully, but he told me that there are two Exodus file formats, one that just reads in meshes and material blocks, and one (perhaps called Exodus 2?) that lets you add in variables and time varying properties of meshes. He told me that Paraview can read the latter, and that some of our codes output this. He was wondering how feasible it would be to upgrade our Exodus reader to support these features. He said he could get more information if necessary.

Our Exodus reader reads Exodus II. All our test data for that reader is ExodusII. If you send me contact info, I can reach out for clarification.

There are cases like node sets, side  sets, and history variables that folks use Paraview for & they are interested in using VisIt to view these instead.  @markcmiller86 @JustinPrivitera  and @cyrush should meet with engineering users and figure out the comprehensive list and a plan

Maybe next scheduled visit/eng meeting? Thursday June 20th. I can invite @markcmiller86

I believe I coded the plugin to handle Exodus nodesets and sidesets (there is a special case of nodal vars on sidesets that I don't think we handle).


Move DownloadDrivers.psm1 to separated nuget package

Things to accomplish this issue:

Create a separated nuget package with DownloadDrivers.psm1 (name proposal: Tellurium.SeleniumDriversInstaller)
Add parameter that allows to select driver architecture (x86 and x64)
Add parameter that allows to select driver version
Add command that allows to list all available versions of given driver
Configure package deployment

The purpose of this issue is to simplify driver installation from the official sources.

Edge driver requires installation. Try to use msiexec in quite mode http://stackoverflow.com/questions/8560166/silent-installation-of-a-msi-package


[Question] Getting an error on new install, UI is unavailable but I have some logs

Question
I was successful installing it on 3 nodes in digitalocean, did the same on 3 x k3s nodes but its failing.
kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.1.0/deploy/longhorn.yaml

Not sure how I do a support bundle as I can't get access to the UI as the system won't start.
I do have some of this data, is this helpful ? its from a log using kutectl
❯ kubectl get pods --namespace longhorn-system
NAME                                       READY   STATUS     RESTARTS   AGE
longhorn-driver-deployer-cdb7464c6-sqnh9   0/1     Init:0/1   0          20m
longhorn-manager-kqrtp                     0/1     Running    1          20m
longhorn-manager-sdg96                     0/1     Running    1          20m
longhorn-manager-shmzf                     0/1     Running    3          20m
longhorn-ui-849c455d79-shrcz               1/1     Running    0          20m

❯ kubectl get all  --namespace longhorn-system
NAME                                           READY   STATUS     RESTARTS   AGE
pod/longhorn-driver-deployer-cdb7464c6-sqnh9   0/1     Init:0/1   0          21m
pod/longhorn-manager-kqrtp                     0/1     Running    1          21m
pod/longhorn-manager-sdg96                     0/1     Running    1          21m
pod/longhorn-manager-shmzf                     0/1     Running    3          21m
pod/longhorn-ui-849c455d79-shrcz               1/1     Running    0          21m

NAME                        TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
service/longhorn-backend    ClusterIP   <IP_ADDRESS>   <none>        9500/TCP   21m
service/longhorn-frontend   ClusterIP   <IP_ADDRESS>   <none>        80/TCP     21m

NAME                              DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
daemonset.apps/longhorn-manager   3         3         0       3            0           <none>          21m

NAME                                       READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/longhorn-driver-deployer   0/1     1            0           21m
deployment.apps/longhorn-ui                1/1     1            1           21m

NAME                                                 DESIRED   CURRENT   READY   AGE
replicaset.apps/longhorn-driver-deployer-cdb7464c6   1         1         0       21m
replicaset.apps/longhorn-ui-849c455d79               1         1         1       21

time="2021-02-06T10:15:01Z" level=info msg="Start overwriting built-in settings with customized values"
W0206 10:15:01.785117       1 client_config.go:541] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
time="2021-02-06T10:15:01Z" level=info msg="cannot list the content of the src directory /var/lib/rancher/longhorn/engine-binaries for the copy, will do nothing: Failed to execute: nsenter [--mount=/host/proc/1/ns/mnt --net=/host/proc/1/ns/net bash -c ls /var/lib/rancher/longhorn/engine-binaries/*], output , stderr, ls: cannot access '/var/lib/rancher/longhorn/engine-binaries/*': No such file or directory\n, error exit status 2"
I0206 10:15:01.806284       1 leaderelection.go:241] attempting to acquire leader lease  longhorn-system/longhorn-manager-upgrade-lock...
I0206 10:15:01.855987       1 leaderelection.go:251] successfully acquired lease longhorn-system/longhorn-manager-upgrade-lock
time="2021-02-06T10:15:01Z" level=info msg="Start upgrading"
time="2021-02-06T10:15:01Z" level=info msg="No API version upgrade is needed"
time="2021-02-06T10:15:01Z" level=info msg="Finish upgrading"
time="2021-02-06T10:15:01Z" level=info msg="Upgrade leader lost: onechain-lab2"
W0206 10:15:01.970766       1 client_config.go:541] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
I0206 10:15:01.977761       1 shared_informer.go:197] Waiting for caches to sync for longhorn datastore
E0206 10:15:01.993424       1 reflector.go:123] github.com/longhorn/longhorn-manager/k8s/pkg/client/informers/externalversions/factory.go:117: Failed to list *v1beta1.EngineImage: the server could not find the requested resource (get engineimages.longhorn.io)
E0206 10:15:01.997634       1 reflector.go:123] github.com/longhorn/longhorn-manager/k8s/pkg/client/informers/externalversions/factory.go:117: Failed to list *v1beta1.Node: the server could not find the requested resource (get nodes.longhorn.io)
E0206 10:15:02.005422       1 kubernetes_node_controller.go:232] couldn't get kubernetes node onechain-lab2: node "onechain-lab2" not found
E0206 10:15:02.996238       1 reflector.go:123] github.com/longhorn/longhorn-manager/k8s/pkg/client/informers/externalversions/factory.go:117: Failed to list *v1beta1.EngineImage: the server could not find the requested resource (get engineimages.longhorn.io)
E0206 10:15:02.999078       1 reflector.go:123] github.com/longhorn/longhorn-manager/k8s/pkg/client/informers/externalversions/factory.go:117: Failed to list *v1beta1.Node: the server could not find the requested resource (get nodes.longhorn.io)
E0206 10:15:03.998502       1 reflector.go:123] github.com/longhorn/longhorn-manager/k8s/pkg/client/informers/externalversions/factory.go:117: Failed to list *v1beta1.EngineImage: the server could not find the requested resource (get engineimages.longhorn.io)
E0206 10:15:03.999624       1 reflector.go:123] github.com/longhorn/longhorn-manager/k8s/pkg/client/informers/externalversions/factory.go:117: Failed to list *v1beta1.Node: the server could not find the requested resource (get nodes.longhorn.io)
E0206 10:15:05.000677       1 reflector.go:123] github.com/longhorn/longhorn-manager/k8s/pkg/client/informers/externalversions/factory.go:117: Failed to list *v1beta1.EngineImage: the server could not find the requested resource (get engineimages.longhorn.io)
E0206 10:15:05.003801       1 reflector.go:123] github.com/longhorn/longhorn-manager/k8s/pkg/client/informers/externalversions/factory.go:117: Failed to list *v1beta1.Node: the server could not find the requested resource (get nodes.longhorn.io)
E0206 10:15:06.002314       1 reflector.go:123] github.com/longhorn/longhorn-manager/k8s/pkg/client/informers/externalversions/factory.go:117: Failed to list *v1beta1.EngineImage: the server could not find the requested resource (get engineimages.longhorn.io)

Ok, I have it working. So what happened was I was missing the iscsi that I had to install using apt install etc...
So my first install failed...
so I did the standard kutectl delete - thinking all would be ok and appeared to be
But looking at the questions I noticed that it's not enough just to do that ...
SO I want and uninstalled it correctly, re-installed and the UI is working now!

Glad that you were able to solve the issue.
For reference we have uninstall instruction here:
https://longhorn.io/docs/1.1.0/deploy/uninstall/
Installation requirements here:
https://longhorn.io/docs/1.1.0/deploy/install/#installation-requirements


feat(createruntoken): adding createRunToken

Why
Adding createRunToken function
How
Added function to retrieve token from api
Checklist

[X] Commit messages are formatted as per the convention, and breaking changes are marked

:tada: This PR is included in version 3.2.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Remove specifying a component when deleting

What type of PR is this?

Uncomment only one  /kind line, and delete the rest.
For example, > /kind bug would simply become: /kind bug

/kind bug
What does does this PR do / why we need it:
This is a temporary fix by removing the current feature of being able to
pass in a component name to odo delete.
For example. odo delete foobar does not work. We remove that
functionality so you may only specify odo delete in the current
directory.
Which issue(s) this PR fixes:
Does not fix any issues, but please see: https://github.com/openshift/odo/issues/3892
PR acceptance criteria:

[X] Unit test

[X] Integration test

[X] Documentation

[X] I have read the test guidelines

How to test changes / Special notes to the reviewer:
odo create nodejs --starter
odo push
odo delete

Signed-off-by: Charlie Drage<EMAIL_ADDRESS>

Closing for now. We should check this post-release as to not break any compatibility with current s2i components.


Add support for multi-page documentation

Overview
We specifically want to target support for a docusaurus site

Work for this issue will begin begin on branch work-liquid-labs/command-line-documentation/8.

We started development on this, but are putting it on hold and will just use single page docs for the time being. Refer to src/lib/command-line-documentation.mjs in the work branch for notes on how to proceed.


Accept type=GeometryCollection as input

It’d be nice to pass an entire GeoJSON object to get a single envelope.
See also https://github.com/Turfjs/turf-extent/issues/5.

Now supports any geojson type thx to turf-meta.


Optional arguments false positive

Both of these examples trigger an error DOC105: Function test: Argument names match, but type hints do not match:
def test(var1: Optional[str] = None) -> str:
    """Test function.

    Args:
        var1 (str, optional): var1

    Returns:
        str
    """

def test(var1: str | None = None) -> str:
    """Test function.

    Args:
        var1 (str, optional): var1

    Returns:
        str
    """

Changing the var1 type to str | None solves it, but this is a bit redundant and, as far as I know, inconsistent with how most other tools work. You can see for example the function module_level_function from Sphinx napoleon documentation.

Hi @ghjklw,
I understand your point.  However, I am a bit concerned that this could become a slippery slope.
For example, if pydoclint allows str, optional to be equivalent to Optional[str], shall it also allow :obj:`str`, optional (what the Sphinx doc uses)?  And what about other variations, such as str or None, str or `None`  , str or ``None`` ?
It is possible that, with lots of bespoke logic, pydoclint can support all these variations, but I'm also a bit concerned that parsing these variations will make pydoclint a lot slower.

Another example to show that things could become intractable is a type hint like this:
Optional[Union[int, float, Optional[bool], List[str]]]

To "translate" this to pseudo natural language, it would have to be:
"int or float or (bool, optional) or list of str, optional"
😅

Optional[Union[int, float, Optional[bool], List[str]]]

Well, this could be simplified to
int | float | bool | list[str] | None

Which could be written in pseudo natural language like this:
int, float, bool or list of str, optional

While I think pydoclint should support the syntaxes for optional arguments as defined in the official specifications, I don't think it should bother to support things like list of str. However, one could discuss supporting natural language lists like int, float or bool in another issue.

First of all, I checked the official Google Python style guide, and I didn't see Google recommending/enforcing any guidance for writing type hints in docstrings.
The example shown in the Sphinx documentation is Sphinx's style ("str, optional").  It's a fine style, but not quite practical for a linter.
There is only one way to specify type before Python 3.10, and a new way since Python 3.10.  This standardization simplifies people's lives.  At least, I personally only need to remember that "docstring's type hint should match the signature's type hint".
On the contrary, allowing natural languages can introduce ambiguities, variations, and people forgetting what the rules are.
Let me give you another example:
int | float | bool | str

Shall we allow int, float, bool, or str or int, float, bool or str or both?  The former contains the Oxford comma and the latter does not.

Hi!
I now realise my initial comment was a bit misleading! I actually didn't understand str, optional as pseudo natural language nor as an equivalent to Optional[str] or str | None. I understood it as a special keyword to indicate that a keyword argument is not required / has a default value.
I thought this was a part of the Google format, but you're right, it isn't. However, it is part of Numpy's style guide:

If it is not necessary to specify a keyword argument, use optional:
x : int, optional

Optional keyword parameters have default values, which are displayed as part of the function signature. They can also be detailed in the description:
Description of parameter `x` (the default is -1, which implies summation
over all axes).

or as part of the type, instead of optional. If the default value would not be used as a value, optional is preferred. These are all equivalent:
copy : bool, default True
copy : bool, default=True
copy : bool, default: True

In other words, the logic here could be quite simple: if the function signature defines a default value, then the type should either contain , optional or , default=XXX. The opposite should also be tested
I couldn't however find a good example to determine whether the type in the docstring should be var1 (str, optional) or var1 (str | None, optional). I personally think the second one makes more sense (and works fine as-is with Pydoclint) and is less ambiguous (it's not obvious with the first option that None is a valid value for var1)

Optional[Union[int, float, Optional[bool], List[str]]]

Well, this could be simplified to
int | float | bool | list[str] | None

Putting aside the question of the natural language representation of types (which I think, if desirable, should be tracked as an independent issue), this raises another interesting point:
from typing import Optional

def example1(var: str | None) -> None:
    """Test function 1.

    Args:
        var (str | None): Variable description.
    """

def example2(var: str | None) -> None:
    """Test function 2.

    Args:
        var (str|None): Variable description.
    """

def example3(var: Optional[str]) -> None:
    """Test function 3.

    Args:
        var (str | None): Variable description.
    """

Raises the following validation errors:
    12: DOC105: Function `example2`: Argument names match, but type hints do not match
    20: DOC105: Function `example3`: Argument names match, but type hints do not match

I guess that's because types are compared as strings, but it is also possible to do:
>>> (str | None) == (str|None)
True
>>> (str | None) == Optional[str]
True
>>> Optional[Union[int, float, Optional[bool], List[str]]] == (int | float | bool | List[str] | None)
True

Wouldn't that be a better way of comparing types? Do you want to create another feature request to discuss it?

Wouldn't that be a better way of comparing types? Do you want to create another feature request to discuss it?

It definetly be a desirable feature but I imagine it could be quite difficult to implement.

Interesting!
I didn't know that we can directly compare type hints (str | None == str|None).  TIL.
@ghjklw you are correct that the comparison of types in pydoclint is currently done via string comparison.
Here's a code snippet: https://github.com/jsh9/pydoclint/blob/1a3596f641a83a0847931f803a32294f353cbb3e/pydoclint/utils/arg.py#L31-L35
pydoclint only does static syntax analysis (more in what I mentioned in this comment: https://github.com/jsh9/pydoclint/pull/35#discussion_r1244892786).  Doing "dynamic" code analysis on the full source code is most likely why darglint is slow.
That said, dynamically parsing type hint strings may not be that slow.
This is something I can do right now:
exec('left = str | None')
exec('right = str|None')
assert left == right

However, I don't know how to handle cases where we need quotes in type hints.  For example, the argument type is a custom class that needs to be quoted.  Any suggestions or ideas?

For example, the argument type is a custom class that needs to be quoted.

What do you mean by that? No type hints have to be quoted and why would that be a problem?

No type hints have to be quoted and why would that be a problem?

See this example:
https://github.com/jsh9/pydoclint/blob/1a3596f641a83a0847931f803a32294f353cbb3e/pydoclint/utils/arg.py#L37

from __future__ import annotations doesn't fix that?

exec('left = str | None')
exec('right = str|None')
assert left == right

However, I don't know how to handle cases where we need quotes in type hints. For example, the argument type is a custom class that needs to be quoted. Any suggestions or ideas?

Putting aside the security risk of using exec (probably acceptable in this case, but I might be wrong), I think there's possibly an even greater challenge than quoted type hints: the types could come from a large number of places: standard libraries, imports, wildcard imports, objects defined in the same script, libraries specific to the environment you're using (e.g. Spark when working in an environment like Databricks or Azure Synapse), dyamically created types or typevars... The more I think about it, the more I'm afraid this again comes back to the ast vs inspect approach...

Oh wow, I didn't know about from __future__ import annotations.  TIL.
Naturally, there will be people like me who don't know about from __future__ import annotations and thus still use quotes around not-yet-defined types.  When designing a linter, we have to consider this possibility.
I agree with @ghjklw 's comment above; there may be too many edge cases that we can't possibly think of.
That said, I wonder whether we can compare 2 string when ignoring any spaces?  If we remove any spaces from both strings and they are the same, can we consider them to represent the same type?

Thinking about it I only see the following cases where it might make sense to have a docstring type that doesn't match the type hint.

Type Aliases (In case of a library exposing an API, they make sense to be used as a type hint but might not make sense to be use in docstrings read by the users of the API)
Type Variables, ParamSpec, TypeVarTuple (I am very unsure how to document them best)
White spaces
Optional[] (However you could use from __futures__ import annotations instead)
Union[] (same as above)
Dict, Set, List, ... (same as above)
Literal (to improve readability)
Annotated
TypeGuard (basically an alias for bool)
Imported types (If I import a type with from foo import T, I would want to document it as foo.T)

thus still use quotes around not-yet-defined types. When designing a linter, we have to consider this possibility.

The type system will use typing.ForwardRef to represent those. For string to string comparisons you can simply strip any quotes (outside Literal[]).

hat said, I wonder whether we can compare 2 string when ignoring any spaces? If we remove any spaces from both strings and they are the same, can we consider them to represent the same type?

I don't know of a type hint that doesn't separate two types by either , or |. So that should be possible.

A bit hacky, but can probably be improved and certainly more robust/generic than just ignoring spaces:
ast.dump(ast.parse("str|None")) == ast.dump(ast.parse("str | None"))

I already have a method to remove quotes from the type hint:
https://github.com/jsh9/pydoclint/blob/1a3596f641a83a0847931f803a32294f353cbb3e/pydoclint/utils/arg.py#L96-L98
And I think using ast.dump(ast.parse(...)) is a good idea.
With _stripQuotes() and ast.dump(ast.parse(...)), we can at least tackle the following cases:

str | int | None vs str|int|None
'MyClass' | None vs 'MyClass'|None
Union[int, bool] vs Union[int,bool]

But ast.dump(ast.parse('str | None')) == ast.dump(ast.parse('Optional[str]')) is still False, simply because ast doesn't actually know what | does and what Optional means -- it's a static syntax parser and that's why it's fast.

Hi @ghjklw , I forgot to address your previous point above

I thought this was a part of the Google format, but you're right, it isn't. However, it is part of Numpy's style guide:

If it is not necessary to specify a keyword argument, use optional:
x : int, optional

Optional keyword parameters have default values, which are displayed as part of the function signature. They can also be detailed in the description:
Description of parameter `x` (the default is -1, which implies summation
over all axes).

or as part of the type, instead of optional. If the default value would not be used as a value, optional is preferred. These are all equivalent:
copy : bool, default True
copy : bool, default=True
copy : bool, default: True

In other words, the logic here could be quite simple: if the function signature defines a default value, then the type should either contain , optional or , default=XXX. The opposite should also be tested>

I used to write , default=True after bool, but darglint reported it as a style violation ("type hints don't match"), so I trained myself to put "default = True` in the argument description.
And now in pydoclint, I'm actually "inheriting" that behavior from darglint.
I think there are 2 new features that I can potentially add:

For numpy-style docstrings, parse the string "bool, default: True" to ignore , default: True, so that people don't have to move it away from the type hint
Parse the default value from the docstring and compare that with the default value in the signature

No. 2 is a slippery slope, because rule-based natural language parsers are never easy to implement.  Too many edge cases.  I can already think of some:

arg1 : int, default is 1
arg1 : int, default value: 1
arg1 : int (default = 1)
arg1 : bool = True

No. 2 is a slippery slope, because rule-based natural language parsers are never easy to implement.

In this case you would only want to implement a single syntax: the one described in the numpydoc style guide (, default=XXX).

Update: I haven't got a chance to get to it yet.  But this issue is still on my mind.

Hi @ghjklw , I found that this PR (https://github.com/jsh9/pydoclint/pull/58) actually fixed the issue of comparing str|int|bool with str | int     | bool (only spaces are different).
However, I still think that to consider str | int and Union[str, int] equal, the implementation may be too cumbersome and fragile.
Therefore, I'll label str | int vs Union[str, int] as "may tackle in the future", and close this issue for now.
But if you have any additional comments or suggestions, please feel free to add comments below, or re-open this issue.
Thanks!


Feature request: Use something other than Spray so I can use it with Akka version 2.4.?

You currently use Spray, it works with Akka 2.3.something but not 2.4.something. This prevents me from using your project. Akka http replaces Spray.

This should be straight forward. The only file that needs to be ported is RestService.scala.
I'm busy right now, so I'd appreciate a pull request.
If you have any questions or need help, just ask.

I'm interested, I'll have a go.

Works here with latest Akka http but its a hacky message
https://github.com/PhilAndrew/renesca_hacking
https://github.com/PhilAndrew/renesca_hacking/blob/master/src/main/scala/renesca/RestService.scala
Will push after doing cleanup later.

This looks good. Thank you for hacking!

Created the pull request here
https://github.com/renesca/renesca/pull/55

I got Renesca working in OSGi using Akka HTTP and JSON4S

I have Renesca and Neo4jOGM working in OSGi for my project. Do you have any opinion on Neo4JOGM vs this?

I never worked with neo4j-ogm, but it looks like it would be better to compare it to renesca-magic, since both introduce a schema over the untyped graph.
If there is anything significant you find out, please share.
I'm closing this thread, since it is resolved with https://github.com/renesca/renesca/pull/55.
The next step will be #27 (Asynchronous IO).


How to send the vacuum to a specific area?

Hi there, thanks for the update to beta 14!
Now, the customization is working perfectly.
I just need to know... suppose that I need to clean my kitchen, are id = 7... what's the command to send the vacuum to a specific area?
Thanks.

https://github.com/Tasshack/dreame-vacuum/blob/dev/docs/services.md#dreame_vacuumvacuum_clean_segment

thanks man, I just write " - 7" instead of "7" so this service doesn't work properly.
Now it's ok and finally I can say that all its working!
Thanks for your efforts.


How is / should localization be supported?

See https://identity.foundation/presentation-exchange/#localization

What concrete changes to the spec are proposed, as the spec does account for localization by indicating locale values. (typically actual localization is an external process)

What concrete changes to the spec are proposed, as the spec does account for localization by indicating locale values. (typically actual localization is an external process)


Can receive a per-SP and per-IdP/SP setting from Manage to require StepUp

This issue is imported from pivotal - Originaly created at Jun 17, 2019 by Thijs Kinkhorst
This story is about being able to consume new settings from manage to configure the stepup policy in engine. We want to be able to support three different scenarios:

Require Stepup for all authentications to a specific SP
Require Stepup for all authentications from a specific IdP to a specific SP
In scenarios 1. and 2. above, only require the stepup when a user has an active token registered in OpenConext-Stepup

Scenario 1
In manage, one should be able to configure a coin:stepup:requireloa for an SP. This is a single-value string (url) with the LoA policy to apply to the authentication . The meaning is that any authentication for this SP will cause a SFO callout.
Because the goal is to implement the same policies as the Stepup-Gateway does for its standard authentication (I.e. not SFO), we want to configure the AuthnConextClassRefs for LoA 2 and LoA 3 in manage. Currently these are gateway_loa_loa2 and gateway_loa_loa3 as defined in https://github.com/OpenConext/Stepup-Gateway/blob/develop/app/config/parameters.yml.dist#L122-L123. New policies may be added tot OpenConext-Stepup at a later date.
Scenario 2
Additionally, in manage, one should be able to configure the same single value string (url) as for  coin:stepup:requireloa in scenario 1 for a given IdP/SP combination. Very similar to how consent settings are administrated in manage. This would work similarly as the first option, but then only for the given combination and not for the SP wholesale. Except, when coin:stepup:requireloa is present for an SP, it is not allowed to configure this for a IdP/SP specific combination. Doing so is an error. The reasoning is that we do not want to introduce any ambiguity as to what setting has precedence.
Scenario 3
In manage, one should be able to configure a coin:stepup:allow_no_token for an SP. This boolean, if set, has only meaning when either scenario 1 or scenario 2 is active. When set to true, it will allow authentication to succeed if the user does not (yet) have a token registered that allows authentication at the requested LoA level (see https://www.pivotaltracker.com/story/show/166729672). When set to false, it behaves as if coin:stepup:allow_no_token is not present.
Setting coin:stepup:allow_no_token to true indicates a SP capability: the SP will act on the AuthnConextClassRef in the Assertion that it receives.
Estimation: 8 - 12h (depending on state manage, mocking, updating manage in deploy etc)

In scenario 3 I would propose to strike "Setting this option without either coin:stepup:requireloa or at least one IdP specific setting being present must result in an error.". It complicates matters because the setting is not otherwise needed at that point and we can handle that in manage checker for example. (Thijs Kinkhorst - Jun 18, 2019)

@thijskh Agreed. Updated the description to remove that requirement. (Pieter van der Meulen - Jun 18, 2019)

@thijskh Is manage already able to push this coin to EngineBlock? If not, we could start work on this ticket, but only if we can agree on the format that manage will send us (in case of the idp/sp combination) (Michiel Kodde - Jul 9, 2019)

Should we implement extensive push validation?
https://www.pivotaltracker.com/n/projects/1425900 (bstrooband - Jul 18, 2019)

I think you refer to https://www.pivotaltracker.com/story/show/167369040
The short answer is that I'd say "no" (Thijs Kinkhorst - Jul 19, 2019)


CTRL+C does not stop the liberty server

Hi, I'm rewriting the Gradle Intro guide to use dev mode and noticed that if I start OL in dev mode using the Gradle wrapper, the server fails to stop when I use CTRL+C. This also happens when using Gradle's CLI tool gradle directly. This does not happen when I use q to quit.
See terminal output below:
...
Press the Enter key to run tests on demand. To stop the server and quit dev mode, use Ctrl-C or type 'q' and press the Enter key.

> Task :compileJava UP-TO-DATE
> Task :processResources NO-SOURCE

BUILD SUCCESSFUL in 337ms
1 actionable task: 1 up-to-date
> Task :compileJava UP-TO-DATE
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE
> Task :compileTestJava UP-TO-DATE
> Task :processTestResources NO-SOURCE

BUILD SUCCESSFUL in 318ms
2 actionable tasks: 2 up-to-date

> Task :libertyDev
Source compilation was successful.
Tests compilation was successful.
<-------------> 0% EXECUTING [4m 36s]
> :libertyDev
^C%                                                                                ➜  finish git:(dev-mode) ✗ ./gradlew libertyDev
> Task :libertyDev FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':libertyDev'.
> java.lang.Exception: The server defaultServer is already running. Terminate all instances of the server before starting dev mode. You can stop a server instance with the command 'gradle libertyStop'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s

I'm running liberty-gradle-plugin:3.0 on Gradle 5.6.3

This is a known issue related to how Gradle works. See related issue https://github.com/OpenLiberty/ci.gradle/issues/187.

Thanks, closing due to duplication.


Update MapOverlay.js

Fixing PropTypes usage for modern React

@tmaly1980 thanks for the PR, could you please fix the errors Travis is complaining about?

@rborn Done. Sorry, I didn't expect someone to actually attempt to merge so soon, and I put in that extra line of code for my own use even though it's useless.

LGTM.


ioredis support

Using ioredis inside an app: devtool web.js throws this error, while node web.js doesn't.

<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
https://github.com/luin/ioredis/blob/48d9701ba9e245a8a650c96f59762d1344e417ef/lib/redis/parser.js#L18
TypeError: this.Parser is not a function
    at Redis.exports.initParser (/some-project/node_modules/ioredis/lib/redis/parser.js:18:22)
    at Socket.<anonymous> (/some-project/node_modules/ioredis/lib/redis/event_handler.js:30:10)
    at Socket.g (events.js:260:16)
    at emitNone (events.js:72:20)
    at Socket.emit (events.js:166:7)

Hmm I wonder how that code is even supposed to run? I don't see this.Parser defined anywhwere.

@mattdesl I also had a lot of trouble looking into how this work before posting. You really have to go down the rabbit hole to find it.
./lib/redis/parser.js iniParser -> this.Parser() <- ./lib/redis/event_handler.js l30 <- ./lib/redis.js l273 .....  ./lib/redis.js l108

Just tested with node@5, <EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>and not getting any errors.
I tested with the following file:
https://github.com/luin/ioredis/blob/012ad51d0c4a803f08949e1a1e85f6084ed98369/examples/basic_operations.js

@mattdesl Tried node 5 but currently blocked by https://github.com/Jam3/devtool/issues/54 - Also would be nice to stick LTS version, https://github.com/Jam3/devtool/issues/34

Confirmed working with<EMAIL_ADDRESS>and<EMAIL_ADDRESS>or<EMAIL_ADDRESS>Really weird that execution works in the later devtool which uses node 5 via electron.
The code works just fine standalone on<EMAIL_ADDRESS>and<EMAIL_ADDRESS>


Remove prerelease from curriculum-downloads

Description
Remove prerelease feature flags from curriculum-downloads (docx) and make it live 🎉
Issue(s)
CUR-757

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


Enhance the Privacy Policy Website according to the home page

Current Behavior
Currently the privacy policy page looks out of place, with no navbar and a minimal footer, also the design of the page looks odd
Desired Behavior
Make the website design according to the home page with some additions to it
Screenshots / Mockups

@akshathar-navada

Hey @PoulavBhowmick03 , the privacy page is built through standard template, so it's not required to change anything in that. If there is anything else, u would like to work on, pls go ahead!!


No relations on  Model Generation has no effect

Hi, I'm having an issue that I don't know exactly how to overcome... I have a table with some relations, for example: Bank, BankAccount. I'm generating the Model and CRUD using IO, but the CRUD of Bank table is showing BankAccount too, and I don't wanna that.
I need to be only the Bank table on the CRUD forms
I already set to ignore relations
I already set skipped relations, without success
I’m not sure, but I probably found a bug on enhanced-gii regarding the relations...
To give some information, I created a video and changed to gif, to show whant is happening here.
http://imgur.com/CUbNhBM
I think that this would explain what I was asking before regarding don’t want have all tables related on the same form on CRUD.

Could you generate anything on official gii? Could you send any schema? And don't forget to check your db engine too.. to be perfect,it should be built upon innodb engine
Sent from my ZUK Z2131 using FastHub

Is there any hasOne relation between Bank and BankAccount table? I just add that on last commit.
Sent from my ZUK Z2131 using FastHub

I already generated with official gii and I have the expected result: on CRUD for a table with relations, there are only the form for that table, even having the relations on database.
I'm sending the schema attached.
labor_union_ms.sql.zip

Hmm...not happening to me.. have you tried to use * on table name?

Also experiencing the same issue.
Fixed by changing line 191 in /vendor/mootensai/yii2-enhanced-gii/BaseGenerator.php and removing the preceding not.
From:
if (!$this->generateRelations === self::RELATIONS_NONE) {     return []; }
To:
if ($this->generateRelations === self::RELATIONS_NONE) {     return []; }


Add YAML based RackHD configuration option

It would be nice to use YAML (as an option) instead of JSON with RackDH, so the configuration looks similar to docker-compose, Ansible, etc.

Hey @tschwaller, we use JSON pretty extensively through the system - which pieces are you interested in seeing replicated with YAML support? The configuration for the application, or the declarative language/resource structure for the workflows?
You interested in helping make some of that happen?


markdown-template failing for us since generator-react-sdk:0.1.5 was released

For a few hours our Markdown documentation generation fails. Since it indicates this module as the cause and fetches the version just released I thought this is the cause rather than something with markdown-template. Generation worked fine before that.
Here's the output (project references anonymized - I hope):
$ npm run asyncapi-md

><EMAIL_ADDRESS>asyncapi-md /home/martin/project
> ag ./docs/asyncapi.yaml @asyncapi/markdown-template --param outFilename=events.md --output ./docs/ --force-write

npm http fetch GET 304 ...
...

+<EMAIL_ADDRESS>added 162 packages from 85 contributors, removed 168 packages and moved 2 packages in 10.37s

11 packages are looking for funding
  run `npm fund` for details

Something went wrong:
Error: Cannot find module '/home/martin/project/node_modules/@asyncapi/generator/node_modules/<EMAIL_ADDRESS>Please verify that the package.json has a valid "main" entry
    at tryPackage (internal/modules/cjs/loader.js:295:19)
    at Function.Module._findPath (internal/modules/cjs/loader.js:508:18)
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:802:27)
    at Function.Module._load (internal/modules/cjs/loader.js:667:27)
    at Module.require (internal/modules/cjs/loader.js:887:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (/home/martin/project/node_modules/@asyncapi/generator/node_modules/@asyncapi/markdown-template/__transpiled/asyncapi.js:5:25)
    at Module._compile (internal/modules/cjs/loader.js:999:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
    at Module.load (internal/modules/cjs/loader.js:863:32)
    at Function.Module._load (internal/modules/cjs/loader.js:708:14)
    at Module.require (internal/modules/cjs/loader.js:887:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at /home/martin/project/node_modules/@asyncapi/generator-react-sdk/src/renderer/template.ts:45:25
    at new Promise (<anonymous>)
    at importComponent (/home/martin/project/node_modules/@asyncapi/generator-react-sdk/src/renderer/template.ts:38:10)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>asyncapi-md: `ag ./docs/asyncapi.yaml @asyncapi/markdown-template --param outFilename=events.md --output ./docs/ --force-write`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>asyncapi-md script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/martin/.npm/_logs/2021-02-05T14_16_38_557Z-debug.log

I also attached the (also anonymized) 2021-02-05T14_16_38_557Z-debug.log.
Providing a full project would take a bit longer. Just let me know if this doesn't show up for you at all and I'll dig into that.
Thanks for any pointers! Or a fix :)

Thanks @bjoernmartin
Let us track progress in this first issue that was created few minutes ago https://github.com/asyncapi/generator/issues/498


🧪 Create integration tests for help view

🧪 This is the view that should be tested

💻  How to run this project locally

Fork this repository by clicking on fork button on the top right. This will create a copy of this repository on your account.

Clone your fork.
Get the URL of your fork by clicking on code button on GitHub.
Clone it to your local with command git clone <URL you copied>
git clone <https://github.com/><your-username>/dashboard.git.

Install dependencies using command npm i.

cd dashboard
npm i

Run dashboard via the following ways .

Run in the debug mode

npm run start_dev-server
testServer will be running on http://localhost:5000 by default

npm run start-dashboard
Dashboard will be served on http://localhost:3000 by default

🏃♀ How to get there.
Click on the option Help from the sidebar on the left
The component of interest are NotFound
🧪  How to run integration tests
Run npm run cy:dev from your console. This will open cypress and you can run the test suites you want to run by clicking on it.
When you're done working, make sure that npm run cy:run passes without any errors.
📝 Where to make changes?
In cypress/integration/views directory and in the components you want to test.
Check this pull request
Pay attention to the changes in files cypress/integration/views/logsView.ts and src/components/LogStream/BarChartBase.tsx. You'll have to make similar changes.
📖 How to learn about writing integration tests?
We use a framework called cypress for integration tests. Their documentation is quite helpful.
Go through their best practices, interacting with elements, structuring tests and you'll get a great understanding of how to write good integration tests
🖐 I want to work on this.
If you're interested in working on this issue, please write a comment down below. 💬
If you need any help or have questions, you can ask questions here or ask in our slack group

Hello, I'd like to help with this issue!

Hello, I'd like to help with this issue!

Hi @rjgallego, thank you for your interest. Try running this project locally by following the steps in the issue description. If you run into any problems or have questions about the issue, you can ask here.

Hi @rjgallego, thank you for your interest. Try running this project locally by following the steps in the issue description. If you run into any problems or have questions about the issue, you can ask here.

Fixed in #136

Fixed in #136


RouteClaimsRequirement conundrum

Expected Behavior / New Feature
RouteClaimsRequirement should work with IdentityServer4 + AddJwtBearer
or
IdentityServer4 + Action should have token validated event
Actual Behavior
Currently, when using IdentityServer4 you have to choose whether you want to use multiple roles along with RouteClaimsRequirement, or if you want to be able to capture additional properties like the username for logging, but you can't do both.
Steps to Reproduce the Problem
If you use a scheme for IdentityServer4 with AddJwtBearer it does appear to work and I have the ability to listen to the token validation event so I can grab additional information for logging.  Problem is, RouteClaimsRequirement doesn't work with roles.  Here is the configuration of my scheme for this scenario:
services.AddAuthentication()
    .AddJwtBearer("IDP", jwtOptions =>
    {
    jwtOptions.Authority = $"{ Configuration["IDP:Authority"]}";
    jwtOptions.Audience = Configuration["IDP:Audience"];
    jwtOptions.TokenValidationParameters = new TokenValidationParameters
    {
        ValidateIssuerSigningKey = true,
        ValidateIssuer = false
    };
    jwtOptions.Events = new JwtBearerEvents
    {
        OnAuthenticationFailed = context =>
        {
            return myRemoteFailure(context);
        },
        OnTokenValidated = context =>
        {
            // this is where I grab username for logging purposes
            return myIDPUserValidationLogic(context);
        }
    };
})

If you use a scheme for IdentityServer4 like the documentation suggests using Action, RouteClaimsRequirement now works with multiple roles no problem, but there is no way for me to listen to the token validation event.  I need this so I can grab the username for logging purposes.  Here is my other custom scheme:
var authenticationProviderKey = "IDP2";
        Action<IdentityServerAuthenticationOptions> isoptions = o =>
        {
            o.Authority = $"{ Configuration["IDP:Authority"]}";
            o.ApiName = Configuration["IDP:ClientId"];
            o.SupportedTokens = SupportedTokens.Both;
            o.ApiSecret = Configuration["IDP:Secret"];
            // how can I grab the username for logging?
        };
services.AddAuthentication()
.AddIdentityServerAuthentication(authenticationProviderKey, isoptions)

Specifications

Version: 12.0.1
Platform: .Net Core 2.1

I can add the following to the bottom scheme shown above ("IDP2") but the events never get raised:
Action<IdentityServerAuthenticationOptions> isoptions = o =>
        {
            //o.Authority = "https://intapi.smpcorp.com/testing/idp01/v1.0";
            o.Authority = $"{ Configuration["IDP:Authority"]}";
            o.ApiName = Configuration["IDP:ClientId"];
            o.SupportedTokens = SupportedTokens.Both;
            o.ApiSecret = Configuration["IDP:Secret"];
            o.Events = new JwtBearerEvents
            {
                OnAuthenticationFailed = context =>
                {
                    return myRemoteFailure(context);
                },
                OnTokenValidated = context =>
                {
                    return myIDPUserValidationLogic(context);
                }

            };
        };

Hi Clay!
You've described rare user scenario.
Ocelot is not responsible for any user security models.
I cannot accept this ticket for development. I see several unsubstantiated phrases that need to be checked.
If you have intention to contribute with absolutely new Authorization features, then we can discuss where to goю
Going to convert to a discussion...


Prisma incorrectly exiting process on SIGUSR1

Bug description
According to the Node.js documentation on signal events, prisma is incorrectly calling process.exit() onSIGUSR1.

'SIGUSR1' is reserved by Node.js to start the debugger. It's possible to install a listener but doing so might interfere with the debugger.

How to reproduce
Call the undocumented process._debugProcess(process.pid) after instantiating a PrismaClient instance.
Expected behavior
Based on my interpretation of the Node.js documentation, I believe the SIGUSR1 listener should be removed from initHooks.
Prisma information
N/A
Environment & setup

OS: macOS
Node.js version: v16.9.1

Prisma Version
prisma                  : 3.0.2
@prisma/client          : 3.0.2
Current platform        : darwin
Query Engine (Node-API) : libquery-engine 2452cc6313d52b8b9a96999ac0e974d0aedf88db (at<EMAIL_ADDRESS>Migration Engine        : migration-engine-cli 2452cc6313d52b8b9a96999ac0e974d0aedf88db (at ../../../node_modules/@prisma/engines/migration-engine-darwin)
Introspection Engine    : introspection-core 2452cc6313d52b8b9a96999ac0e974d0aedf88db (at ../../../node_modules/@prisma/engines/introspection-engine-darwin)
Format Binary           : prisma-fmt 2452cc6313d52b8b9a96999ac0e974d0aedf88db (at ../../../node_modules/@prisma/engines/prisma-fmt-darwin)
Default Engines Hash    : 2452cc6313d52b8b9a96999ac0e974d0aedf88db
Studio                  : 0.423.0

Related code:

https://github.com/prisma/prisma/blob/2333361757714c00c53cc1c01587af93eaf1a54e/packages/engine-core/src/library/LibraryEngine.ts#L736
https://github.com/prisma/prisma/blob/2333361757714c00c53cc1c01587af93eaf1a54e/packages/engine-core/src/binary/BinaryEngine.ts#L1275

I agree with @jaridmargolin and marking this as a confirmed bug.


Has import.meta.window been considered?

I couldn't see anything in previous discussion here, but since this contains contextual scope information, it doesn't seem a bad home for global either.
import.window could even work too possibly.
Completely understand if a unique identifier is the goal though, but wondering if this would side-step any of those frictions.

A syntactic solution is a nonstarter, because that means it couldn’t be denied to untrusted code.

(Also, it needs to work in Scripts, not just Modules, and import.meta is not yet stage 4)

it needs to work in Scripts, not just Modules

Too bad import global from this would have been really ingenious cause you can rename the default however you want.

import would only work in Modules as well.


Implement n choose k in elixir

As a basis for the other implementations in #3 nCk was needed.
The tests are copied from the original repository.

Thanks :)


[R][CI] Arrow nightly binaries require aws sdk system dependency

Describe the bug, including details regarding any error messages, version, and platform.
It seems that https://github.com/apache/arrow/pull/14235 introduced aws-sdk as a system dependency for the ubuntu libarrow binaries created by the R nightlies. @raulcd detected the issue while working on the cookbook: https://github.com/apache/arrow/pull/14235#issuecomment-1357539110 .
We confirmed that it is loading the nighly binary and not building from source https://github.com/raulcd/arrow-cookbook/actions/runs/3733167177/jobs/6333699829#step:6:2572.  Changing the scripts and workflows to use bundled dependencies in any case should fix the issue.
Component(s)
Continuous Integration, R

It seems that we can fix this by removing --static from pkg-config command line.
I dug why we use --static. I suggested it...:  https://github.com/apache/arrow/pull/10404#issuecomment-871034191
(Oh, I didn't remember...)
I reconsider the --static approach.


Problem with union type?

For this code:
/* @flow */
type Row = Object|Array<Object>;
let x: Row = {};
if(typeof x === 'object')
  x.id = 10;

flow shows the error:
5:   x.id = 10;
       ^ property `id`. Property not found in
5:   x.id = 10;
     ^ Array

typeof x === 'object' is true for arrays, use !Array.isArray instead

Thanks!


Rename package name

Rename package pipeline to goodman-pipeline.

This was done on #234
The project and the package were renamed to goodman_pipeline so, the structure is more or less like this.
goodman_pipeline
  goodman_pipeline
    core
    images
    ...
  docs
  README

For pip install the package is called goodman-pipeline.


contact existing *.meltanodata.com users asking them to acknowledge the TOS

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/1704
Originally created by @dmor on 2020-02-11 21:23:29

This is also an opportunity to get them to log back in and improve our retention metrics, so the email content could be more than TOS acknowledgement.

[ ]  Create a short Typeform that can be emailed as a link
[ ]  Set up a spreadsheet
[ ]  Test the form
[ ]  Build the list to email
[ ]  Draft the email
[ ]  Send the email

View 5 previous comments from the original issue on GitLab


LPRNet model evaluation(tools/eval.py) ZeroDivisionError: float division by zero

Hi, thanks for this great rep
I'm following LPRNet: License Plate Recognition(CPU) guide. I've prepared dataset based on 8k numeric only vehicle plates. Currently I've reached 209000 / 250000 iteration, but when using python3 tools/eval.py chinese_lp/config.py to start evaluation process got ZeroDivisionError.
Stacktrace:

Traceback (most recent call last):
File "tools/eval.py", line 174, in
tf.app.run(main)
File "/home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/platform/app.py", line 125, in run
_sys.exit(main(argv))
File "tools/eval.py", line 170, in main
validate(cfg)
File "tools/eval.py", line 140, in validate
tf.Summary(value=[tf.Summary.Value(tag='evaluation/acc', simple_value=float(mean_accuracy / num)),
ZeroDivisionError: float division by zero

The terminal output:

WARNING:tensorflow:From tools/eval.py:53: string_input_producer (from tensorflow.python.training.input) is deprecated and will be removed in a future version.
Instructions for updating:
Queue-based input pipelines have been replaced by tf.data. Use tf.data.Dataset.from_tensor_slices(string_tensor).shuffle(tf.shape(input_tensor, out_type=tf.int64)[0]).repeat(num_epochs). If shuffle=False, omit the .shuffle(...).
WARNING:tensorflow:From /home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/training/input.py:278: input_producer (from tensorflow.python.training.input) is deprecated and will be removed in a future version.
Instructions for updating:
Queue-based input pipelines have been replaced by tf.data. Use tf.data.Dataset.from_tensor_slices(input_tensor).shuffle(tf.shape(input_tensor, out_type=tf.int64)[0]).repeat(num_epochs). If shuffle=False, omit the .shuffle(...).
WARNING:tensorflow:From /home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/training/input.py:190: limit_epochs (from tensorflow.python.training.input) is deprecated and will be removed in a future version.
Instructions for updating:
Queue-based input pipelines have been replaced by tf.data. Use tf.data.Dataset.from_tensors(tensor).repeat(num_epochs).
WARNING:tensorflow:From /home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/training/input.py:199: QueueRunner.init (from tensorflow.python.training.queue_runner_impl) is deprecated and will be removed in a future version.
Instructions for updating:
To construct input pipelines, use the tf.data module.
WARNING:tensorflow:From /home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/training/input.py:199: add_queue_runner (from tensorflow.python.training.queue_runner_impl) is deprecated and will be removed in a future version.
Instructions for updating:
To construct input pipelines, use the tf.data module.
WARNING:tensorflow:From /home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/training/input.py:202: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.cast instead.
WARNING:tensorflow:From tools/eval.py:38: TextLineReader.init (from tensorflow.python.ops.io_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Queue-based input pipelines have been replaced by tf.data. Use tf.data.TextLineDataset.
WARNING:tensorflow:From tools/eval.py:48: batch (from tensorflow.python.training.input) is deprecated and will be removed in a future version.
Instructions for updating:
Queue-based input pipelines have been replaced by tf.data. Use tf.data.Dataset.batch(batch_size) (or padded_batch(...) if dynamic_pad=True).
WARNING:tensorflow:From /home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
WARNING:tensorflow:From /home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/contrib/layers/python/layers/layers.py:1624: flatten (from tensorflow.python.layers.core) is deprecated and will be removed in a future version.
Instructions for updating:
Use keras.layers.flatten instead.
WARNING:tensorflow:From tools/eval.py:84: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.cast instead.
WARNING:tensorflow:From tools/eval.py:87: sparse_to_dense (from tensorflow.python.ops.sparse_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Create a tf.sparse.SparseTensor and use tf.sparse.to_dense instead.
WARNING:tensorflow:From /home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/util/tf_should_use.py:193: initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.
Instructions for updating:
Use tf.global_variables_initializer instead.
2019-10-27 14:09:01.524225: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-10-27 14:09:01.546937: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency:<PHONE_NUMBER> Hz
2019-10-27 14:09:01.547231: I tensorflow/compiler/xla/service/service.cc:150] XLA service 0x22bed10 executing computations on platform Host. Devices:
2019-10-27 14:09:01.547248: I tensorflow/compiler/xla/service/service.cc:158]   StreamExecutor device (0): ,
WARNING:tensorflow:From tools/eval.py:101: start_queue_runners (from tensorflow.python.training.queue_runner_impl) is deprecated and will be removed in a future version.
Instructions for updating:
To construct input pipelines, use the tf.data module.
WARNING:tensorflow:tf.train.start_queue_runners() was called when no queue runners were defined. You can safely remove the call to this deprecated function.
WARNING:tensorflow:From /home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/training/saver.py:1266: checkpoint_exists (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version.
Instructions for updating:
Use standard file APIs to check for files with this prefix.

Hi @olegshentz1
Looks like you have annotated labels which do not match paterns.

Thanks a lot. I made that successfully.
But now while running the eval.py file for validation  it is checking GT Label and then after showing Test acc and Time per step,it is printing "|||||....." and the validation process is not ending.

WARNING:tensorflow:From tools/eval.py:53: string_input_producer (from tensorflow.python.training.input) is deprecated and will be removed in a future version.
Instructions for updating:
Queue-based input pipelines have been replaced by tf.data. Use tf.data.Dataset.from_tensor_slices(string_tensor).shuffle(tf.shape(input_tensor, out_type=tf.int64)[0]).repeat(num_epochs). If shuffle=False, omit the .shuffle(...).
WARNING:tensorflow:From /home/ubuntu/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/training/input.py:278: input_producer (from tensorflow.python.training.input) is deprecated and will be removed in a future version.
Instructions for updating:
Queue-based input pipelines have been replaced by tf.data. Use tf.data.Dataset.from_tensor_slices(input_tensor).shuffle(tf.shape(input_tensor, out_type=tf.int64)[0]).repeat(num_epochs). If shuffle=False, omit the .shuffle(...).
WARNING:tensorflow:From /home/ubuntu/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/training/input.py:190: limit_epochs (from tensorflow.python.training.input) is deprecated and will be removed in a future version.
Instructions for updating:
Queue-based input pipelines have been replaced by tf.data. Use tf.data.Dataset.from_tensors(tensor).repeat(num_epochs).
WARNING:tensorflow:From /home/ubuntu/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/training/input.py:199: QueueRunner.init (from tensorflow.python.training.queue_runner_impl) is deprecated and will be removed in a future version.
Instructions for updating:
To construct input pipelines, use the tf.data module.
WARNING:tensorflow:From /home/ubuntu/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/training/input.py:199: add_queue_runner (from tensorflow.python.training.queue_runner_impl) is deprecated and will be removed in a future version.
Instructions for updating:
To construct input pipelines, use the tf.data module.
WARNING:tensorflow:From /home/ubuntu/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/training/input.py:202: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.cast instead.
WARNING:tensorflow:From tools/eval.py:38: TextLineReader.init (from tensorflow.python.ops.io_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Queue-based input pipelines have been replaced by tf.data. Use tf.data.TextLineDataset.
WARNING:tensorflow:From tools/eval.py:48: batch (from tensorflow.python.training.input) is deprecated and will be removed in a future version.
Instructions for updating:
Queue-based input pipelines have been replaced by tf.data. Use tf.data.Dataset.batch(batch_size) (or padded_batch(...) if dynamic_pad=True).
WARNING:tensorflow:From /home/ubuntu/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
WARNING:tensorflow:From /home/ubuntu/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/contrib/layers/python/layers/layers.py:1624: flatten (from tensorflow.python.layers.core) is deprecated and will be removed in a future version.
Instructions for updating:
Use keras.layers.flatten instead.
WARNING:tensorflow:From tools/eval.py:84: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.cast instead.
WARNING:tensorflow:From tools/eval.py:87: sparse_to_dense (from tensorflow.python.ops.sparse_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Create a tf.sparse.SparseTensor and use tf.sparse.to_dense instead.
WARNING:tensorflow:From /home/ubuntu/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/util/tf_should_use.py:193: initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.
Instructions for updating:
Use tf.global_variables_initializer instead.
2019-10-28 08:22:56.211649: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-10-28 08:22:56.234842: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency:<PHONE_NUMBER> Hz
2019-10-28 08:22:56.235222: I tensorflow/compiler/xla/service/service.cc:150] XLA service 0x201f980 executing computations on platform Host. Devices:
2019-10-28 08:22:56.235265: I tensorflow/compiler/xla/service/service.cc:158]   StreamExecutor device (0): ,
WARNING:tensorflow:From tools/eval.py:101: start_queue_runners (from tensorflow.python.training.queue_runner_impl) is deprecated and will be removed in a future version.
Instructions for updating:
To construct input pipelines, use the tf.data module.
WARNING:tensorflow:tf.train.start_queue_runners() was called when no queue runners were defined. You can safely remove the call to this deprecated function.
WARNING:tensorflow:From /home/ubuntu/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/training/saver.py:1266: checkpoint_exists (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version.
Instructions for updating:
Use standard file APIs to check for files with this prefix.
INFO:tensorflow:Restoring parameters from /home/ubuntu/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/model/model.ckpt-51.ckpt
Check GT label: 10000009
10000009 --  Edit Distance: 8
Test acc: 0.0
Test acc-1: 0.0
Time per step: 0.06437230110168457 for test size 1
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||..........
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||.........
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||........
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||.......
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||......
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||...

Is it correct processing? Do you have any suggestions why it takes so long time?
Thanks,
Oleg

Thanks a lot. I made that successfully.
Great

Is it correct processing?
Yes, the eval process is waiting new checkpoint from training process.
train.py and eval.py scripts should be runed in two terminals in one time.

Yes, the eval process is waiting new checkpoint from training process.
train.py and eval.py scripts should be runed in two terminals in one time.

Thanks a lot!
But there is still problem with running the model via OpenVINO on Raspberry Pi.
When using python3 tools/export.py --data_type FP16 --output_dir model/export chinese_lp/config.py I get three files lpr.bin lpr.mapping lpr.xml
The terminal output:

/home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/model/model.ckpt-750.ckpt
WARNING:tensorflow:From /home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
WARNING:tensorflow:From /home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/contrib/layers/python/layers/layers.py:1624: flatten (from tensorflow.python.layers.core) is deprecated and will be removed in a future version.
Instructions for updating:
Use keras.layers.flatten instead.
WARNING:tensorflow:From tools/export.py:51: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.cast instead.
WARNING:tensorflow:From tools/export.py:53: sparse_to_dense (from tensorflow.python.ops.sparse_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Create a tf.sparse.SparseTensor and use tf.sparse.to_dense instead.
WARNING:tensorflow:From /home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/util/tf_should_use.py:193: initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.
Instructions for updating:
Use tf.global_variables_initializer instead.
2019-10-29 16:34:04.818373: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-10-29 16:34:04.838346: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency:<PHONE_NUMBER> Hz
2019-10-29 16:34:04.838625: I tensorflow/compiler/xla/service/service.cc:150] XLA service 0x2261790 executing computations on platform Host. Devices:
2019-10-29 16:34:04.838644: I tensorflow/compiler/xla/service/service.cc:158]   StreamExecutor device (0): ,
WARNING:tensorflow:From /home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/training/saver.py:1266: checkpoint_exists (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version.
Instructions for updating:
Use standard file APIs to check for files with this prefix.
INFO:tensorflow:Restoring parameters from /home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/model/model.ckpt-750.ckpt
WARNING:tensorflow:From tools/export.py:60: convert_variables_to_constants (from tensorflow.python.framework.graph_util_impl) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.compat.v1.graph_util.convert_variables_to_constants
WARNING:tensorflow:From /home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/venv/lib/python3.6/site-packages/tensorflow/python/framework/graph_util_impl.py:245: extract_sub_graph (from tensorflow.python.framework.graph_util_impl) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.compat.v1.graph_util.extract_sub_graph
INFO:tensorflow:Froze 66 variables.
INFO:tensorflow:Converted 66 variables to const ops.

mo.py --framework=tf --input_model=model/export/frozen_graph/graph.pb.frozen --output_dir=model/export/IR/FP16 --framework=tf --model_name=lpr --input=input --output=d_predictions --reverse_input_channels --scale=255 --input_shape=[1,24,94,3] --data_type=FP16
Model Optimizer arguments:
Common parameters:

Path to the Input Model: 	/home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/model/export/frozen_graph/graph.pb.frozen
Path for generated IR: 	/home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/model/export/IR/FP16
IR output name: 	lpr
Log level: 	ERROR
Batch: 	Not specified, inherited from the model
Input layers: 	input
Output layers: 	d_predictions
Input shapes: 	[1,24,94,3]
Mean values: 	Not specified
Scale values: 	Not specified
Scale factor: 	255.0
Precision of IR: 	FP16
Enable fusing: 	True
Enable grouped convolutions fusing: 	True
Move mean values to preprocess section: 	False
Reverse input channels: 	True
TensorFlow specific parameters:
Input model in text protobuf format: 	False
Path to model dump for TensorBoard: 	None
List of shared libraries with TensorFlow custom layers implementation: 	None
Update the configuration file with input/output node names: 	None
Use configuration file used to generate the model with Object Detection API: 	None
Operations to offload: 	None
Patterns to offload: 	None
Use the config file: 	None
Model Optimizer version: 	2019.3.0-375-g332562022

[ SUCCESS ] Generated IR model.
[ SUCCESS ] XML file: /home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/model/export/IR/FP16/lpr.xml
[ SUCCESS ] BIN file: /home/oleg/Documents/openvino_training_extensions/tensorflow_toolkit/lpr/model/export/IR/FP16/lpr.bin
[ SUCCESS ] Total execution time: 5.04 seconds.

But when I try to run the model via OpenVINO on Raspberry Pi using
./armv7l/Release/security_barrier_camera_demo -i /home/pi/Downloads/333.jpg -m /home/pi/models/vehicle-license-plate-detection-barrier-0106.xml -d MYRIAD -m_va /home/pi/models/vehicle-attributes-recognition-barrier-0039.xml -d_va MYRIAD -m_lpr /home/pi/models/lpr.xml -d_lpr MYRIAD
I get `[ ERROR ] Error reading network: cannot parse future versions: 6
The terminal output:

[ INFO ] InferenceEngine:
API version ............ 1.6
Build .................. 22443
[ INFO ] Parsing input parameters
[ INFO ] Capturing video streams from the video files or loading images
[ INFO ] Files were added: 1
[ INFO ]     /home/pi/Downloads/333.jpg
[ INFO ] Number of input image files: 1
[ INFO ] Number of input video files: 0
[ INFO ] Number of input channels: 1
[ INFO ] Display resolution: 1920x1080
[ INFO ] Loading plugin MYRIAD

API version ............ 1.6
Build .................. 22443
Description ....... myriadPlugin
[ INFO ] Loading network files for VehicleDetection
[ INFO ] Batch size is forced to  1
[ INFO ] Checking Vehicle Detection inputs
[ INFO ] Checking Vehicle Detection outputs
[ INFO ] Loading Vehicle Detection model to the MYRIAD plugin
[ INFO ] Loading network files for VehicleAttribs
[ INFO ] Batch size is forced to 1 for Vehicle Attribs
[ INFO ] Checking VehicleAttribs inputs
[ INFO ] Checking Vehicle Attribs outputs
[ INFO ] Loading Vehicle Attribs model to the MYRIAD plugin
[ INFO ] Loading network files for Licence Plate Recognition (LPR)
[ ERROR ] Error reading network: cannot parse future versions: 6

Maybe I need to convert trained data to model in different way?
Thanks,
Oleg

@olegshentz1
You have too old version on Raspberry Pi, 22443 build is 2019 R1.
Update OpenVINO to 2019R3 (latest), it should fix this problem.

Thanks.
I've downloaded a  OpenVINO to 2019R3 (l_openvino_toolkit_runtime_raspbian_p_2019.3.334.tgz) but there's no  Security Barrier Camera sample. I tried to take Security Barrier Camera sample from R1 version and install with R3 but it throws error.

It's now publicly available in the "Open Model Zoo":
https://github.com/opencv/open_model_zoo/tree/master/demos/security_barrier_camera_demo

@AlexanderDokuchaev

Oh, i was fixed it some time ago and forget create PR with fix.
AlexanderDokuchaev/open_model_zoo@adc45bb

I took net_wrappers.hpp  form your fork and rebuild /security_barrier_camera_demo with it. Now on Ubuntu everything works fine. Thanks!
I've tried to do the same on Raspberry Pi using:
./security_barrier_camera_demo -i /home/pi/Downloads/car-detection3.mp4 -m /home/pi/models/vehicle-license-plate-detection-barrier-0106.xml -d MYRIAD -m_va /home/pi/models/vehicle-attributes-recognition-barrier-0039.xml -d_va MYRIAD -m_lpr /home/pi/models/license-plate-recognition-barrier-0001.xml -d_lpr MYRIAD
I still get the same error.
The terminal output:

[ INFO ] InferenceEngine:
API version ............ 2.1
Build .................. custom_releases/2019/R3_cb6cad9663aea3d282e0e8b3e0bf359df665d5d0
Description ....... API
[ INFO ] Files were added: 1
[ INFO ]     /home/pi/Downloads/car-detection3.mp4
*** Error in `./security_barrier_camera_demo': munmap_chunk(): invalid pointer: 0x016cd8

It's harder, Could you find the line that failed?
Can you explain me how I can do it? Because in terminal output there is no print of line that failed.

Can you explain me how I can do it?

The oldest and simplest debug method std::cout << "line N" << std::endl; :smile:
But firstly, you can try install OpenVINO R2. May be some component for Raspberry Pi was build incorrectly in R3.

@AlexanderDokuchaev
I installed OpenVINO R2. Recompiled open_model_zoo. But I still have the same problem when I try to run default pre-trained models with security_barrier_camera_demo :

./security_barrier_camera_demo -i /home/pi/Downloads/car-detection3.mp4 -m /home/pi/models/vehicle-license-plate-detection-barrier-0106.xml -d MYRIAD -m_va /home/pi/models/vehicle-attributes-recognition-barrier-0039.xml -d_va MYRIAD -m_lpr /home/pi/models/license-plate-recognition-barrier-0001.xml -d_lpr MYRIAD

The terminal output:

[ INFO ] InferenceEngine:
API version ............ 2.1
Build .................. custom_releases/2019/R3_cb6cad9663aea3d282e0e8b3e0bf359df665d5d0
Description ....... API
[ INFO ] Files were added: 1
[ INFO ]     /home/pi/Downloads/car-detection3.mp4
*** Error in `./security_barrier_camera_demo': munmap_chunk(): invalid pointer: 0x016cd8

:(

@olegshentz1
Ok, another way, try to use image instead of video as input.

@AlexanderDokuchaev
When I use image instead of video I get Segmentation fault
./security_barrier_camera_demo -i /home/pi/Downloads/1.jpg -m /home/pi/models/vehicle-license-plate-detection-barrier-0106.xml -d MYRIAD -m_va /home/pi/models/vehicle-attributes-recognition-barrier-0039.xml -d_va MYRIAD -m_lpr /home/pi/models/license-plate-recognition-barrier-0001.xml -d_lpr MYRIAD
The terminal output:

[ INFO ] InferenceEngine:
API version ............ 2.0
Build .................. custom_releases/2019/R2_f5827d4773ebbe727c9acac5f007f7d94dd4be4e
Description ....... API
[ INFO ] Files were added: 1
[ INFO ]     /home/pi/Downloads/1.jpg
[ INFO ] Loading device MYRIAD
MYRIAD
myriadPlugin version ......... 2.0
Build ........... 27579

[ INFO ] Loading detection model to the MYRIAD plugin
Segmentation fault

@AlexanderDokuchaev

Return R3, and try again with image.

I get the same error with image.
./security_barrier_camera_demo -i /home/pi/Downloads/1.jpg -m /home/pi/models/vehicle-license-plate-detection-barrier-0106.xml -d MYRIAD -m_va /home/pi/models/vehicle-attributes-recognition-barrier-0039.xml -d_va MYRIAD -m_lpr /home/pi/models/license-plate-recognition-barrier-0001.xml -d_lpr MYRIAD
The terminal output:

[ INFO ] InferenceEngine:
API version ............ 2.1
Build .................. custom_releases/2019/R3_cb6cad9663aea3d282e0e8b3e0bf359df665d5d0
Description ....... API
[ INFO ] Files were added: 1
[ INFO ]     /home/pi/Downloads/1.jpg
[ INFO ] Loading device MYRIAD
MYRIAD
myriadPlugin version ......... 2.1
Build ........... 30677

[ INFO ] Loading detection model to the MYRIAD plugin
Segmentation fault

I will try find RasberryPi and reproduce it. But i'm need some time.
Thanks! I'll be waiting for your comment

@AlexanderDokuchaev Hi. Is there any news about issue?

@olegshentz1, can you share build instructions? Have you considered -march=armv7-a compiler flag? (source https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_raspbian.html)

@dkurt
Hi. I've build openvino for raspbian using this guide
( https://docs.openvinotoolkit.org/2019_R3/_docs_install_guides_installing_openvino_raspbian.html )

Have you considered -march=armv7-a compiler flag?

No. I have not use -march=armv7-a. I'll try to set -march=armv7-a compiler flag
Thanks.


Testing To Do list - part 2

Second PR for this project.
Changes

Test list modifiers: modify task status and description, clear all completed items.
Use mocked pure functions of the original project

STATUS: APPROVED 🟢 🥳
Hi @lu-jim 🥇 ,
Congratulations!!! 🥳 🎉
You have successfully completed all the expectations for this project, there is nothing more to do here, now you can go on your way and keep improving your skills.
Cheers and Happy coding!👏👏👏

If anything is not 100% clear please leave your questions or comments in the PR thread, we will be glad to help you 😄.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


libgcrypt: set enableParallel{Building,Checking}=true

cc @trofi
Built on:

[x] x86_64-linux
[x] powerpc64le-linux
[x] aarch64-linux (cross from x86_64-linux)
[x] mips64el-linux (cross from x86_64-linux)

I am unable to reproduce ofborg's failure; let's have it try again.


Verbose output?

Is there a way to get verbose logging output from robotjs? I've poked around the docs and searched but didn't find anything. If not, consider it requested. :) If it exists and I just missed it, I'd be happy to make a PR to the docs about it.
Context: The actual problem I'm trying to solve (which I might open a separate issue for, once I'm satisfied it's not my own fault) is a couple different instances of a click or a key combination not doing what I expect under certain circumstances. Right now I can't tell if the actions aren't happening when they should, or they're being sent to the OS correctly but just not having the results I want. Chatty output from robotjs would be a big help. I'm open to other debugging suggestions as well.

This issue has been closed because it has been inactive for > 240 days.
You may reopen this issue if it has been closed in error.


chore(FrameworkConfigurationContainer): fix react warning

Fixes React proptype warning
It is possible for this component to receive an Application instance from js/components/HighOrderServiceConfiguration
Testing

Add nginx service
Navigate to nginx service details, Configuration tab

No React warning
Trade-offs
Should there be an ApplicationConfigurationContainer added to the various containers delegated to by  js/components/HighOrderServiceConfiguration ?
Dependencies
None
Screenshots
Warning seen here:

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


Downgrade a couple of tracing::warn! logs

As per the request of @Ancient123, we should downgrade the logging on the legacy builder from tracing::warn to tracing::info in a couple of places.
https://github.com/EspressoSystems/marketplace-builder-core/blob/526782bbe1b04d76c0b931b00cd266017089c20b/crates/legacy/src/builder_state.rs#L663
https://github.com/EspressoSystems/marketplace-builder-core/blob/526782bbe1b04d76c0b931b00cd266017089c20b/crates/legacy/src/service.rs#L468
These logs occur when we don't have transactions to send, which is considered normal behavior at the moment.  So their current log level adds too much noise for investigation when we're looking into issues.

I believe this has been closed by #122

Closing


Request: timeout on wait_for_tag

It would be nice to have a timeout argument on the wait_for_tag function. I'm using it to listen for tags on a looping thread that checks on a 'global' exit flag at each loop, but since wait_for_tag can never exit I have no nice way of killing it so I was forced to make my own modified version.
It should be a simple change, like this:
def wait_for_tag(self, timeout):
	# enable IRQ on detect
	start_time = time.time()
	rdr.init()
	rdr.irq.clear()
	rdr.dev_write(0x04, 0x00)
	rdr.dev_write(0x02, 0xA0)
	# wait for it
	waiting = True
	while waiting and time.time() - startTime < timeout:
		rdr.dev_write(0x09, 0x26)
		rdr.dev_write(0x01, 0x0C)
		rdr.dev_write(0x0D, 0x87)
		waiting = not rdr.irq.wait(0.1)
	rdr.irq.clear()
	self.init()

It's just a little detail that would improve usability.

Just wanted to open a new feature request for rdr.wait_for_tag(timeout=10).
So GitHub "similar issues" works 😃


Add example building a layer_model or model_ds from scratch

It would be useful to have examples that show how to build up a layer_model or model_ds (if that is relevant) dataset from scratch.

What are the requisite data variables, coordinates and dimensions for the datasets?
Should you start from a layer_model or can you create a model_ds directly?
Structured and unstructured examples
...

This is related with issue #74, where I propose to make a method called create_default_ds. What do you think?

Closed by #110


"Resource does not exist" log errors fix

Closes #2167
Has always been a bug here but a recent change from using isActive to using the deploymentStatus field exposed it. The get_resource_dict_by_id should not be filtering for 'active' resources only, it's not a list operation and we want to return the resource regardless of the status.
When resources were being deleted this error was being seen as the status was deleted and the new clause was filtering those items out. It only worked previously as updating the status and updating the isActive field happened in 2 different steps.

E2E already passed
/test-force-approve

/test-force-approve


python311Packages.pyduotecno: 2023.9.0 -> 2023.10.0

Diff: https://github.com/Cereal2nd/pyDuotecno/compare/refs/tags/2023.9.0...2023.10.0
Changelog: https://github.com/Cereal2nd/pyDuotecno/releases/tag/2023.10.0
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

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

5 packages built:

home-assistant-component-tests.duotecno
python310Packages.pyduotecno
python310Packages.pyduotecno.dist
python311Packages.pyduotecno
python311Packages.pyduotecno.dist


Add function as posible value of extension option

I was setting up a project with Astroturf and realized that it would be very useful and powerful if the developer could set a function as the value of the extension option in the configurations. This function gets the current complete file path being processed as an argument and should return the desired extension for the extracted file.
This simple addition enables a lot of flexibility for users that want to trigger different build paths depending on the file name or folder location of the files containing the styles. For example, I can configure css-loader to treat files differently based on name with the modules.mode option and then, configure astroturf to name my files ending in global.js to be exported as global.css if I want those to be processed by CSS Modules with a default global scope, and local.js to local.css if I want them to be processed with default local scope. This is just one example but the possible configurations and build workflows it opens are quite big, specially when used along other PostCSS plugins and CSSModules.
For this to work we only need to refactor the createFileName function inside src/utils/createFileName.js to the following:
export default function createFilename(hostFile, { extension = '.css' }, id) {
  let base, finalExt;

  switch (typeof extension) {
    case 'function':
      finalExt = extension(hostFile);
      break;
    case 'string':
      finalExt = extension;
      break;
    default:
      throw new Error(
        'The extension option provided is not of type String or Function. ' +
          'Please ensure you provide an extention option of any of those types.',
      );
  }

  if (getNameFromFile(hostFile) === id) base = id;
  else base = `${basename(hostFile, extname(hostFile))}-${id}`;

  return join(dirname(hostFile), base + finalExt);
}

Let me know your opinion about this addition and I can create a PR including unit tests as well. I tried to create it but seems I don't have permissions.
git push origin feature/extension-option-function
ERROR: Permission to 4Catalyzer/astroturf.git denied to yusuphgammut.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

you can already do this by providing a getFileName() option i believe

you can already do this by providing a getFileName() option i believe

Yeah, that's what I needed. It would be useful if you can add that to the list of options in the README file. Right now it's only shown in the last example.
Thanks @jquense .


[id: 'com.facebook.react.settings'] > java.io.UncheckedIOException:

Description
Just started the project with the latest version of React Native
at first build only got this error
What went wrong:
Error resolving plugin [id: 'com.facebook.react.settings']
java.io.UncheckedIOException: Could not move temporary workspace
i tried removing gradle caches etc
Nope!
Steps to reproduce
create latest react native project
run in andriod
and thats where you see this error
React Native Version
0.75.3
Affected Platforms
Runtime - Android
Output of npx react-native info
System:
  OS: Windows 11 10.0.22631
  CPU: (8) x64 11th Gen Intel(R) Core(TM) i5-11300H @ 3.10GHz
  Memory: 3.88 GB / 15.79 GB
Binaries:
  Node:
    version: 18.17.0
    path: C:\Program Files\nodejs\node.EXE
  Yarn: Not Found
  npm:
    version: 10.8.3
    path: ~\AppData\Roaming\npm\npm.CMD
  Watchman: Not Found
SDKs:
  Android SDK: Not Found
  Windows SDK: Not Found
IDEs:
  Android Studio: AI-241.18034.62.2412.12266719
  Visual Studio: Not Found
Languages:
  Java: 17.0.10
  Ruby: Not Found
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.3.1
    wanted: 18.3.1
  react-native:
    installed: 0.75.3
    wanted: 0.75.3
  react-native-windows: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: Not found
  newArchEnabled: Not found

Stacktrace or Logs
Error resolving plugin [id: 'com.facebook.react.settings']
> java.io.UncheckedIOException: Could not move temporary workspace (C:\Users\sofim\Desktop\SalescrmApk\android\.gradle\8.8\dependencies-accessors\569c8b261a8a714d7731d5f568e0e5c05babae10-257b0a10-5d39-44f3-ab1a-c8ed796303ff) to immutable location (C:\Users\sofim\Desktop\SalescrmApk\android\.gradle\8.8\dependencies-accessors\569c8b261a8a714d7731d5f568e0e5c05babae10)

Reproducer
https://github.com/idonthave
Screenshots and Videos
No response

Duplicates https://github.com/facebook/react-native/issues/46210


Test failure in 3.0

Following test fails for me
[ERROR] Failures:
[ERROR]   ClientDelegateTest.bulkTest:153->checkHostIsAsExpected:189
Expected: "localhost"
     but: was "localhost.localdomain"
[INFO]
[ERROR] Tests run: 1723, Failures: 1, Errors: 0, Skipped: 5

$ grep localhost /etc/hosts
<IP_ADDRESS>	localhost.localdomain	localhost

I'm not sure how common localhost.localdomain is but that is the default value on Arch Linux.
I think the test just needs to be a bit less specific, perhaps requiring the name start with "localhost" but not be an exact match, or accepting "localhost.localdomain" as alternative.

ups, good catch. You are right. I will fix it tomorrow

It should now be fixed in the master branch.


RuntimeError: cuda runtime error (78) : a PTX JIT compilation failed at

Wonderful code!
Howerever,I encountered the following error.Did I miss something that caused this error?
mode : predcls
save_path : /media/wow/disk2/AG/save
model_path : /media/wow/disk2/AG/predcls.tar
data_path : /media/wow/disk2/AG/dataset
datasize : large
ckpt : None
optimizer : adamw
lr : 1e-05
nepoch : 10
enc_layer : 1
dec_layer : 3
bce_loss : False
-------loading annotations---------slowly-----------
--------------------finish!-------------------------
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
There are 1750 videos and 56923 valid frames
41 videos are invalid (no person), remove them
19 videos are invalid (only one frame), remove them
8636 frames have no human bbox in GT, remove them!
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
loading word vectors from data/glove.6B.200d.pt
loading word vectors from /media/wow/disk2/AG/glove.6B.200d.pt
background -> background
fail on background

CKPT /media/wow/disk2/AG/predcls.tar is loaded
THCudaCheck FAIL file=/home/cong/Dokumente/faster-rcnn.pytorch/lib/model/csrc/cuda/ROIAlign_cuda.cu line=297 error=78 : a PTX JIT compilation failed
Traceback (most recent call last):
File "test.py", line 80, in
entry = object_detector(im_data, im_info, gt_boxes, num_boxes, gt_annotation, im_all=None)
File "/home/wow/anaconda2/envs/STTran/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in call
result = self.forward(*input, **kwargs)
File "/media/wow/disk2/STT/STTran-main/lib/object_detector.py", line 306, in forward
FINAL_FEATURES = self.fasterRCNN.RCNN_roi_align(FINAL_BASE_FEATURES, FINAL_BBOXES)
File "/home/wow/anaconda2/envs/STTran/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in call
result = self.forward(*input, **kwargs)
File "/media/wow/disk2/STT/STTran-main/fasterRCNN/lib/model/roi_layers/roi_align.py", line 58, in forward
input, rois, self.output_size, self.spatial_scale, self.sampling_ratio
File "/media/wow/disk2/STT/STTran-main/fasterRCNN/lib/model/roi_layers/roi_align.py", line 20, in forward
output = _C.roi_align_forward(input, roi, spatial_scale, output_size[0], output_size[1], sampling_ratio)
RuntimeError: cuda runtime error (78) : a PTX JIT compilation failed at /home/cong/Dokumente/faster-rcnn.pytorch/lib/model/csrc/cuda/ROIAlign_cuda.cu:297

I complied by the three 'python setup.py build_ext --inplace' from two readme in the project.I met this error when I wanted to evaluate the STTran.

It seems the issue is caused by the compiled code. Could you download the roi align module from https://github.com/jwyang/faster-rcnn.pytorch/tree/pytorch-1.0 and replace the roi align file. Then compile it.

I have directly uploaded the local code which is already compiled on my computer.. It seems the issue is caused by the compiled code. Could you download the roi align module from https://github.com/jwyang/faster-rcnn.pytorch/tree/pytorch-1.0 and update the roi align file. Then compile it.

Thanks for your reply.I deleted those files which were generated from the compiling before and recompiled.The problem was solved then,it worked.