Add support for type=<class Enum> to list the possible choices.

The python add_argument() method supports a type field which can be set to an Enum class object. Then using the metavar field it can be defined to mimic the choices field. Then the prog --help shows the correct values, and this includes the basic usage in the sphinx-argparse output as well.
However the individual parameter listing for sphinx-argparse does not list the possible choices in the same way as it does for the choices field.
This will enable that functionality where if the type is set to an EnumType instance, then it will append the Possible Choices list if there is no choices defined already.

"""
test.py

.. argparse::
    :ref: test.argParser
    :prog: test.py
"""

import argparse
from enum import Enum, auto

class someStringEnum(str, Enum):
    value1 = 'value1'
    value2 = 'value2'
    value3 = 'value3'

class someIntEnum(str, Enum):
    int1 = auto()
    int2 = auto()
    int3 = auto()

def argParser():
    parser = argparse.ArgumentParser('description')
    parser.add_argument('--string', type=someStringEnum, help='String based enum', metavar='{' + ','.join(someStringEnum) + '}')
    parser.add_argument('--int', type=someIntEnum, help='Int based enum', metavar='{' + ','.join(someIntEnum) + '}')
    return parser

def main():
    parser = argParser()
    args = parser.parse_args()
    print(args)

if __name__ == '__main__':
    main()

$ test.py --help
usage: description [-h] [--string {value1,value2,value3}] [--int {1,2,3}]

options:
    -h, --help            show this help message and exit
    --string {value1,value2,value3}
                          String based enum
    --int {1,2,3}         Int based enum
$ test.py --string unknown
usage: description [-h] [--string {value1,value2,value3}] [--int {1,2,3}]
description: error: argument --string: invalid someStringEnum value: 'unknown'
$ test.py --string value1 --int 2
Namespace(string=<someStringEnum.value1: 'value1'>, int=<someIntEnum.int2: '2'>)
$

Output Example:

workflow appears to be failing due to an unknown package 'commonmark'. Does not appear related to my PR
Running Sphinx v7.2.6
making output directory... done
building [mo]: targets for 0 po files that are out of date
writing output...
building [html]: targets for 9 source files that are out of date
updating environment: [new config] 9 added, 0 changed, 0 removed
reading sources... [ 11%] changelog
reading sources... [ 22%] contrib
reading sources... [ 33%] extend
reading sources... [ 44%] index
reading sources... [ 56%] install
reading sources... [ 67%] markdown
Traceback (most recent call last):
  File "/home/docs/checkouts/readthedocs.org/user_builds/sphinx-argparse/envs/47/lib/python3.12/site-packages/sphinxarg/markdown.py", line 2, in <module>
    from commonmark import Parser
ModuleNotFoundError: No module named 'commonmark'

I don't think I've ever seen anyone use the metavar like that.
Is that something that the Argparse docs recommend?

I don't think I've ever seen anyone use the metavar like that.
Is that something that the Argparse docs recommend?

I use it somewhat frequently in my scripts. I've found it is only needed with the type=<enum> syntax as by default argparse doesn't treat it quite like the choices=[<list of values>].
Originally I had used the choices but the help output isn't very clear. It only shows the field name in all caps when using type=<Enum>, and I want it to look like the same output for choices=[<list>]. For example:
#!/usr/bin/env python3
"""
test.py

.. argparse::
    :ref: test.argParser
    :prog: test.py
"""

import argparse
from enum import Enum, auto

class someStringEnum(str, Enum):
    value1 = 'value1'
    value2 = 'value2'
    value3 = 'value3'

class someIntEnum(str, Enum):
    int1 = auto()
    int2 = auto()
    int3 = auto()

def argParser():
    parser = argparse.ArgumentParser('description')
    parser.add_argument('--string', type=someStringEnum, help='String based enum')
    parser.add_argument('--int', type=someIntEnum, help='Int based enum')
    parser.add_argument('--other-choice', choices=[1, 2, 3], help='Normal list of choices')
    parser.add_argument('--string-choice', choices=[v for v in someStringEnum], help='String based choice')
    parser.add_argument('--int-choice', choices=[v for v in someIntEnum], metavar='{' + ','.join(someIntEnum) + '}',
                        help='String based choice')
    return parser

def main():
    parser = argParser()
    args = parser.parse_args()
    print(args)

if __name__ == '__main__':
    main()

This will yield the following:
$ test.py --help
usage: description [-h] [--string STRING] [--int INT] [--other-choice {1,2,3}]
                   [--string-choice {someStringEnum.value1,someStringEnum.value2,someStringEnum.value3}]
                   [--int-choice {1,2,3}]

options:
  -h, --help            show this help message and exit
  --string STRING       String based enum
  --int INT             Int based enum
  --other-choice {1,2,3}
                        Normal list of choices
  --string-choice {someStringEnum.value1,someStringEnum.value2,someStringEnum.value3}
                        String based choice
  --int-choice {1,2,3}  String based choice
$ test.py --int-choice 1
Namespace(string=None, int=None, string_choice=None, int_choice='1')
$ test.py --int-choice 10
usage: description [-h] [--string STRING] [--int INT] [--other-choice {1,2,3}]
                   [--string-choice {someStringEnum.value1,someStringEnum.value2,someStringEnum.value3}]
                   [--int-choice {someIntEnum.int1,someIntEnum.int2,someIntEnum.int3}]
description: error: argument --int-choice: invalid choice: '10' (choose from <someIntEnum.int1: '1'>, <someIntEnum.int2: '2'>, <someIntEnum.int3: '3'>)
$

So when just using choices=[v for v in <Enum>] the enforcement works fine, but the look from the usage statement is not meaningful as a user that doesn't know the actual values of those Enum instances won't be able to really use it.
The metavar=<string> is a easy way to get the usage statement to show what you want it to show to help the user. This is fully documented in the standard python library documentation here:
https://docs.python.org/3/library/argparse.html#metavar
In any of these cases though, the sphinx-argparse will format it just like the normal usage statement, except the metavar doesn't get used by sphinx-argparse. So even if I were to use the metavar along with the choices like above for the --int-choice parameter, sphinx-argparse still doesn't display the metavar value and so shows the possible choices as someIntEnum.int1, someIntEnum.int2, ... in the Named Arguments section. Though note, the usage DOES display correctly.

So this PR will allow the usage of type=<Enum> and will format both correctly for sphinx-argparse, but then also using the metavar=... allows the usage statement to be rendered correctly from the script command line args as well.

The docs on choices don't show anything about using metavar like that
https://docs.python.org/3/library/argparse.html#choices
This is too niche to support, sorry


Error while installing multiple packs via configs

Hey community, i'm trying to install packs using k8s helm chart, but running into an error while doing helm upgrade.
config in values.yaml:
configs:
      core.yaml: |
        ---
        # example core pack config yaml
      pagerduty.yaml: |
        api_key: abcd
        service_key: abcd
        debug: false
        ---
      jira.yaml: |
        api_key: abcd
        ---

error in job-st2-register-content:
2024-01-24 00:37:59,098 WARNING [-] Failed to register configs: Failed to register config "/opt/stackstorm/configs/jira.yaml" for pack "jira": expected a single document in the stream
  in "/opt/stackstorm/configs/jira.yaml", line 1, column 1
but found another document
  in "/opt/stackstorm/configs/jira.yaml", line 2, column 1
Traceback (most recent call last):
  File "/opt/stackstorm/st2/lib/python3.8/site-packages/st2common/bootstrap/configsregistrar.py", line 84, in register_from_packs
    self._register_config_for_pack(pack=pack_name, config_path=config_path)
  File "/opt/stackstorm/st2/lib/python3.8/site-packages/st2common/bootstrap/configsregistrar.py", line 129, in _register_config_for_pack
    values = self._meta_loader.load(config_path)
  File "/opt/stackstorm/st2/lib/python3.8/site-packages/st2common/content/loader.py", line 253, in load
    result = self._load(PARSER_FUNCS[file_ext], file_path)
  File "/opt/stackstorm/st2/lib/python3.8/site-packages/st2common/content/loader.py", line 265, in _load
    return parser_func(fd)
  File "/opt/stackstorm/st2/lib/python3.8/site-packages/st2common/constants/meta.py", line 53, in yaml_safe_load
    return yaml.load(stream, Loader=YamlSafeLoader)
  File "/opt/stackstorm/st2/lib/python3.8/site-packages/yaml/__init__.py", line 114, in load
    return loader.get_single_data()
  File "/opt/stackstorm/st2/lib/python3.8/site-packages/yaml/constructor.py", line 49, in get_single_data
    node = self.get_single_node()
  File "yaml/_yaml.pyx", line 719, in yaml._yaml.CParser.get_single_node
yaml.composer.ComposerError: expected a single document in the stream
  in "/opt/stackstorm/configs/jira.yaml", line 1, column 1
but found another document
  in "/opt/stackstorm/configs/jira.yaml", line 2, column 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/st2-register-content", line 22, in <module>
    sys.exit(content_loader.main(sys.argv[1:]))
  File "/opt/stackstorm/st2/lib/python3.8/site-packages/st2common/content/bootstrap.py", line 458, in main
    register_content()
  File "/opt/stackstorm/st2/lib/python3.8/site-packages/st2common/content/bootstrap.py", line 404, in register_content
    register_configs()
  File "/opt/stackstorm/st2/lib/python3.8/site-packages/st2common/content/bootstrap.py", line 388, in register_configs
    raise e
  File "/opt/stackstorm/st2/lib/python3.8/site-packages/st2common/content/bootstrap.py", line 378, in register_configs
    registered_count = configs_registrar.register_configs(
  File "/opt/stackstorm/st2/lib/python3.8/site-packages/st2common/bootstrap/configsregistrar.py", line 188, in register_configs
    result = registrar.register_from_packs(base_dirs=packs_base_paths)
  File "/opt/stackstorm/st2/lib/python3.8/site-packages/st2common/bootstrap/configsregistrar.py", line 92, in register_from_packs
    raise ValueError(msg)
ValueError: Failed to register config "/opt/stackstorm/configs/jira.yaml" for pack "jira": expected a single document in the stream
  in "/opt/stackstorm/configs/jira.yaml", line 1, column 1
but found another document
  in "/opt/stackstorm/configs/jira.yaml", line 2, column 1

Solution: https://stackoverflow.com/questions/14359557/reading-yaml-file-with-python-results-in-yaml-composer-composererror-expected-a

Figured out that the --- should be at the start of the yaml.
Correct config:
      core.yaml: |
        ---
        # example core pack config yaml
      pagerduty.yaml: |
        ---
        api_key: abcd
        service_key: abcd
        debug: false

      jira.yaml: |
        ---
        api_key: abcd


feat(aws): Ability to override client on chat_models class for more granular options

This PR introduces the ability to pass a client field in the ChatModel constructor, enabling users to provide additional parameters to the underlying API BedrockRuntimeClient.
Key changes:

Ability to override client parameter to ChatModel constructor
Updated relevant type definitions

This enhancement allows for greater flexibility in configuring API requests, such as requestHandler, timeouts, or other client-specific options.

Thanks @jacoblee93 when is next release being targeted with this change?

Ah it's actually live in<EMAIL_ADDRESS>https://www.npmjs.com/package/@langchain/aws
Tagging on this repo currently happens on main langchain package releases, which are pretty infrequent these days - though we should start creating tags for all subpackage repo releases.


Add optional check for non-ECMA 262 regular expressions

See #119.
The .NET documentation is here

Looks great, thanks!


Upgrade Java compatibility from 11 to 17

Describe the bug
Unable to compile on Android since all modules in Capacitor 5.x are built with Java 17 and this module is compiled with Java 11 in accordance to build.gradle file
To Reproduce
Build an app with capacitor 5.x
Expected behavior
Should compile with Java 17 but build.gradle is blocking compilation
Upgrading to 17 like other plugins in the build.gradle file works but needs testing
Plugin version:

@capacitor-community/bluetooth-le: main branch

I have this problem as well and can confirm changing the sourceCompatibility and targetCompatibility in the plugin's build.gradle file to JavaVersion.VERSION_17 seems to help in my case too.

If you folks know it works, why not submit a PR.


Is the Sandbox code 0.38?

Is the Sandbox code 0.38 or has it been amended?
Specifically wrt the response to Discover Tax Year[ GET /self-assessment/{utr}/{tax-year} ] was there a change from 'liabilities' to 'liability'?

Hi,
The latest version in production sandbox and the 3rd Party Integration Test environment is https://github.com/hmrc/self-assessment-api/releases/tag/v0.61.0.
I have updated the git and the changelog to reflect the same.

Can close?

Just to be clear was 61 marked as pre release and amended this morning to release?  I accept I might have missed 61 being release but I am surprised.

Yes. The git tag was edited today.
The communication regarding the 3rd party integration test environment which was sent to MTD private beta developers should have also mentioned clearly that documentation on API Developer Hub and production sandbox endpoints will also be updated.
From now on, any breaking change or enabling of new features on production and integration test environment will be properly communicated.

@rakeshavasarala.  Thanks for clarifying that.
Can you clarify an additional set of questions.
I was certainly on the initial private beta which looked at the OAuth2 mechanism.  Post a conversation with an 'important' fellow at the dev meeting at Dover House on 23rd September I am no longer convinced that I am still on the program.
Q1: Am I on the current private beta?
Q2: If I am not on the current private beta, what if anything will I not have access to, which members of the private beta have access to? Documents, support, additional test environments et al?

Hi,
I have asked SDST to confirm

if Wolfsmart Ltd's are part of Making Tax Digital(MTD) Private Beta and
if MTD communications are sent to you.

I will update once I have more info.

Assuming we are not part of the private beta can you at least outline the range of documents, code and other info provided to members of the private beta which would not be available to non members?

Can you inform me whether the breaking changes (0.38 -> 0.61) were communicated to anyone outside HMRC?
Would it be easier if I made this an FOI request?  For an open source project you come across as remarkably opaque.

Hi Andy,
@rakeshavasarala is currently in discussion with our software development support team to try to get Wolfsmart Ltd added to the private beta. As you are outside of the private beta, you will not receive any communications related to the Making Tax Digital project. I will follow up with Rakesh today to try and get you an update.
Thanks,
Jacob

Hi Andy,
You can see the latest changes in our change log, which contains some information about the breaking changes we have made: https://github.com/hmrc/self-assessment-api/blob/master/CHANGELOG.md
In 0.61, the GET liability endpoint was changed to no longer take an identifier. You may now only retrieve the latest liability calculation.
We have also developer documentation available, however this is currently limited to private beta participants only. Could you please send an e-mail to<EMAIL_ADDRESS>requesting access to the private beta? You will need to provide your company name in addition to the IP addresses that you intend to use when communicating with our services.
Please do let me know if you have any issues.
Thanks,
Jacob

Jacob,
Thanks for the feedback.  I have done as you suggested and communicated my frustration and annoyance to SDS.

Hi @andyws, have you received any communication back from SDST? If so, do let me know so I can close this issue.

I have heard nothing.
I would prefer this to remain open for now.

Hi @andyws I have been informed that SDST has messaged you asking for further details - can you confirm this is the case?

Hi Jacob,
Yes I heard from Martin yesterday evening.  I have supplied a list of IP addresses to be added to the whitelist.
So this issue can be closed.
Andy


[improve] rename remote repo to openshift (origin might be already used)

I think it's done, check...


fit_generator accumulates data on GPU?

I use generators on my model using fit_generator.
After a few samples i get a GPU error that says i run out of memory.
Is it possible that the GPU stores the batches and accumulate data when using generators?

No, that's not possible. While the generator is backed by a queue that stores samples, that's on CPU RAM.
Rather, VRAM usage will spike occasionally, so maintain some headroom. I like to see an average GPU memory use of 80%, and have the remaining 20% for spikes, just to play things safe.
Consider running nvidia-smi dmon in a terminal, when training your model, and look at the total memory usage.

Ok, problem solved.
My generator was making samples with different size for every batch. So once it was too big the GPU rised an error

Good. Close this issue as it is resolved, please.


--order_type=auto

Hi,
I missed the pull the request of the --order_type parameter, but I would like to share this idea.
How about an automatic order_type? The bot will start with no fee type (maker), when if the slippage cross one defined value the bot will make the fee order (taker).
In most cases the bot sell/buy without any slippage and sometimes with positive slippage, which is nice. We could for example set a maximum slippage of -0.01%, and if the slippage cross that value the bot will sell/buy with the taker type order.
What do you think?

I was just thinking about exactly the same feature, the possibility to switch to taker when a % slippage threshold is passed. Sometimes the price is increasing or dropping so fast that is impossible for the bot to close an order, and closing it as a taker could be an option

This is what has just happened:
https://puu.sh/xB28l/2d64ba2c6e.JPG
A slippage of 1% wasn't enough for the big drop and the bot didn't sell, losing a lot. This is a typical situation where it should enable a taker order


退出，redis的缓存数据没有清空

https://github.com/smallsnail-wh/interest-pro/issues/4

https://github.com/smallsnail-wh/interest-pro/issues/4


Internal services are bound twice to the server

When internalServicePort and managementServerPort are the same,
https://github.com/line/armeria/blob/57295d3ed82748dc6949f825910705a6c17d098f/spring/boot3-autoconfigure/src/main/java/com/linecorp/armeria/internal/spring/ArmeriaConfigurationUtil.java#L119-L129
internal services are bound twice:
https://github.com/line/armeria/blob/57295d3ed82748dc6949f825910705a6c17d098f/spring/boot3-autoconfigure/src/main/java/com/linecorp/armeria/internal/spring/ArmeriaConfigurationUtil.java#L155-L161
We should dedup the ports.

We should dedup the ports.

If that happens, users may have set that value by mistake. What do you think of raising an IllegalStateException rather than deduplication for that case?


Rewrite locale generator, update translations, and add new languages

Summary
The locale generator was copying outdated locale dictionaries from the locales directory into the app. I have rewritten it to download the locale dicts from the devise-i18n repository. That way, generated dicts will always be up to date. The README was updated to reflect this new behavior.
The locale dicts in the locales directory were updated (copied from the devise-i18n repo), and new languages were added.
Issues for further discussion
Those changes introduced an inconsistency: locale dicts downloaded by the generator will always be up to date, whereas the dictionaries in the locales directory are not updated automatically and will soon be outdated.
I've noticed an initializer in the devise-bootstrap-views.rb file which loads locale dicts from the locales directory corresponding to the application's available_locales. If I understood that correctly, it is supposed to provide locale dicts without the need for manually downloading them or running the generator. Is that correct?
That initializer seems to be the only piece of code using the files in the locales directory. If that's correct and you agree to eliminate the initializer, we could probably remove the locales directory altogether and prevent the translations from being outdated. That will force the user to download the locale dict manually or run the generator, which may be inconvenient but will ensure the dicts are always up to date. What do you think?
This is my first contribution to an open source project, so please let me know if I'm breaking any "pull request etiquette" rules.

Thanks you so much for the contribution 👍


Re-running chomp build always tries to install packages

When I run chomp build the first time, it makes sense that targets with packages marked autoInstall = true install packages via pnpm.
However, when I re-run chomp build, I expect the package management to be done and to not run again.
This is the output after running chomp build the 2nd time:
$ chomp
- lib/assets/royal_esplanade_1k.hdr [- 405.656µs]
- lib/assets/Default_normal.jpg [- 551.638µs]
- package.json [- 217.317µs]
  node_modules/svelte invalidated by package.json.
○ node_modules/svelte
  node_modules/@swc/core invalidated by package.json.
○ node_modules/@swc/core
- lib/assets/Default_emissive.jpg [- 2.882522ms]
  node_modules/@jspm/generator invalidated by package.json.
○ node_modules/@jspm/generator
- lib/assets/Default_albedo.jpg [- 3.799818ms]
- lib/assets/Default_metalRoughness.jpg [- 3.855873ms]
- lib/assets/DamagedHelmet.gltf [- 4.125918ms]
- lib/assets/Default_AO.jpg [- 4.169401ms]
- lib/assets/DamagedHelmet.bin [- 4.250695ms]
- :copy [- 4.394801ms]
Progress: resolved 1, reused 0, downloaded 0, added 0
Progress: resolved 1, reused 0, downloaded 0, added 0
 WARN  @jspm/generator > ipfs-client > ipfs-grpc-client<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
 WARN  @jspm/generator > ipfs-client > ipfs-grpc-client > ipfs-core-types > multiaddr > dns-over-http-resolver<EMAIL_ADDRESS>requires a peer of node-fetch@* but none was installed.
 WARN  @jspm/generator > ipfs-client > ipfs-grpc-client<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
 WARN  @jspm/generator > ipfs-client > ipfs-grpc-client > ipfs-core-types > multiaddr > dns-over-http-resolver<EMAIL_ADDRESS>requires a peer of node-fetch@* but none was installed.
Already up-to-date
 WARN  @jspm/generator > ipfs-client > ipfs-grpc-client<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
 WARN  @jspm/generator > ipfs-client > ipfs-grpc-client > ipfs-core-types > multiaddr > dns-over-http-resolver<EMAIL_ADDRESS>requires a peer of node-fetch@* but none was installed.
Already up-to-date
Already up-to-date
Progress: resolved 150, reused 139, downloaded 0, added 0, done
√ node_modules/@swc/core [573.1474ms 575.99461ms]
- lib/helmet.js [- 576.042333ms]
- lib/main.js [- 576.049968ms]
- lib/setup.js [- 576.059158ms]
Progress: resolved 150, reused 139, downloaded 0, added 0, done
√ node_modules/svelte [612.150277ms 614.15801ms]
- lib/App.js [- 614.149749ms]
- :svelte [- 614.219651ms]
√ node_modules/@jspm/generator [615.134442ms 619.007555ms]
  lib/index.html invalidated by :svelte.
○ lib/index.html
√ lib/index.html [174.482914ms 794.79709ms]
- :build [- 794.900256ms]

Edit: Adding my chompfile:

[env]
PKG_MANAGER = "pnpm"

[[task]]
  name = "build"
  deps = [":generate"]

[[task]]
  name = "svelte"
  template = "svelte"
  target = "lib/#.js"
  deps = ["src/#.svelte"]
  [task.args]
    autoInstall = true

[[task]]
  name = "swc"
  template = "swc"
  target = "lib/#.js"
  deps = ["src/#.ts"]
  [task.args]
    autoInstall = true

[[task]]
  name = "generate"
  template = "jspm:generate"
  target = "lib/index.html"
  deps = ["public/index.html", "svelte", "swc", "copy"]
  [task.args]
    autoInstall = true

[[task]]
  name = "copy"
  target = "lib/assets/#"
  deps = ["public/assets/#"]
  run = "cp $DEP $TARGET"

[[task]]
  name = "clean"
  run = "rm -rf lib/assets/; rm lib/*"```

This should be resolved with the update in #31 now.


Infinite file size ballooning, memory leaks, and crashes being caused by langflow.db

Related separate issue: https://github.com/langflow-ai/langflow/issues/3970
Bug Description
Whenever I try to embed my 70MB text file, it overtime starts eating up all my RAM.
Then even booting langflow begins eating up ram, I am assuming because of that 70MB file
Initially, I was attempting to perform RAG and noticed my system lagging heavily then I narrowed it down to the file component
Reproduction
Before installation, I created a python venv using
python3 -m venv langflow
source langflow/bin/activate

Then I installed langflow while in that environment
pip install langflow -U

Steps to reproduce
Please see both of these links
https://github.com/langflow-ai/langflow/issues/4008#issuecomment-2399700910
https://github.com/langflow-ai/langflow/issues/4008#issuecomment-2407550796
Who can help?
No response
Operating System
OS: Ubuntu 24.04.1 LTS x86_64
Langflow Version
Langflow v1.0.18
Python Version
3.12
Screenshot

Flow File
No response

Related: #3970
Bug Description
Whenever I try to embed my 70MB text file, it overtime starts eating up all my RAM. Then even booting langflow begins eating up ram, I am assuming because of that 70MB file
Initially, I was attempting to perform RAG and noticed my system lagging heavily then I narrowed it down to the file component
Reproduction
Before installation, I created a python venv using
python3 -m venv langflow
source langflow/bin/activate

Then I installed langflow while in that environment
pip install langflow -U

Steps to reproduce
Command used to generate the file
head -c 70000000 /dev/zero | tr '\0' 'a' > random_ascii_70MB.txt

Create a normal "file" component in Langflow and select the file we had generated
Build the component then wait for it to build successfully then rebuild Notice that the total memory consumption of langflow increases by ~1GB after every successful build
Also, if I now go back to "My Collection" then attempt to open my flow, it spikes up my ram before I get a crash from langflow(image attached below).
Expected behavior
Upon building the same "file" component over and over, the total memory usage of langflow shouldn't increase.
Who can help?
No response
Operating System
OS: Ubuntu 24.04.1 LTS x86_64
Langflow Version
Langflow v1.0.18
Python Version
3.12
Screenshot

Flow File
No response

Through further experimentation, I discovered that even uploading is causing a memory leak.
If you simply upload the same file multiple times, you'll notice the memory usage increasing

I've tested running this multiple times while the other parts are commented out
data = parse_text_file_to_data(resolved_path, silent_errors)

It wasn't causing any memory leaks(after loading it, memory returned back to the exact same spot)
However, this was problematic
self.status = data if data else "No data"

It seems that this line is causing a memory leak as every time I rebuild the component with that line, memory doesn't seem to get back but rather increases on every build

Figured out something very problematic. The langflow.db file is storing all every component's output, it seems

Seems like this file plays a huge role
langflow_source-code/src/backend/base/langflow/services/database/models/vertex_builds/crud.py
It commits to the db the output results of the component, I am assuming for caching upon rebuilds.
The problem is, it doesn't really cache properly as it caches the same file's content over and over again then committing to the db making it balloon

Found more. What's the purpose of logging every vertex build? As it seems to be accumulating and taking up tremendous amounts of storage space in the db file causing langflow to crash

@nicoloboschi

Hey @EDLLT, thanks for providing this step-by-step to reproduce the issue!
I observed the same issue when processing huge volume of data. Looks like in both vertex_build table and transaction table both are logging the input and output of each component.
so if you are logging 70MB worth of text in one column, this will make the consumption of that table impossible. then if you delete those tables, everything will resume working, but you loose the metadata stored in langflow DB.
Hey @Cristhianzl can you please help with this issue?

hey @codenprogressive, @EDLLT how are you?
We have a fix for this error coming soon in the next release. The front end can now handle this amount of data without breaking, as it did for you, @EDLLT.
The point is that we can't truncate the data to save it in the database because it would break other features like the freeze/freeze path. We need to save the runs on vertex_build and transaction tables for these features to work properly.
So my advice is: when you're working with large files or large amounts of data, please try to use these features as well. This way, the file or large data won't be processed twice. :)

I'm closing this issue because the error has been fixed on the MAIN branch and will be included in the next Langflow release!
Thank you!!

@Cristhianzl Hey!
Thanks for the prompt fix.
I have tested it out and unfortunately the issues that I had mentioned in previous comments still occur and new issues that arise from the frontend
In these, I talk about the file component but I think the same issue occurs to every component that deals with data
Issues that still occur

Deleting the entire flow clears up the relevant parts of the vertex_build cache; however, deleting the file component does not delete its relevant data from the vertex_build cache. This causes langflow.db to pile up space from non-existing components overtime within the flow

When rebuilding the file component explicitly(doesn't matter if it's frozen or not), the previously cached does not get removed from vertex_build in langflow.db and the data gets duplicated within vertex_build.

Uploading the same file multiple times using langflow's file component increases memory usage. In my case, uploading it 10 times increased memory usage by ~1GB

New issues

When processing a large amount of data using the file component

After it has built successfully, we are able to press on Data within langflow to view the contents of our file.
Then, when I try to refresh the page and try to view the data within my already built file component, it crashes my tab(tested on both brave and chrome)

Taking data from the file component then using split text processes successfully but

Upon reloading the page(on the flow not the main menu), langflow starts taking up a significant amount of ram(reached up to ~15GB) before it settles down and afterwards, the browser's memory starts spiking up to 2~3GB before crashing the tab(tested on both brave and chrome)

@EDLLT hi,
Are you using the freeze/freeze path feature to prevent reprocessing files that have already been processed?
Are you on the main branch locally? Please note that we haven't released the fix for this yet.

Are you using the freeze/freeze path feature to prevent reprocessing files that have already been processed? Note that if you don't use these features, the database will be increased each time you run the flow.
Yes, I have tried the freeze feature

Are you on the main branch locally? Please note that we haven't released the fix for this yet.
Yes, I am building langflow from the source code's main branch, commit bffb0f129bc61bacc57ec2591d3e6525e3088b93

I'll try to get to the bottom of this. Meanwhile, could this issue be reopened?
Here's a useful patch I've written for debugging purposes. It helps show how many vertex builds there are, when they get returned and when they are getting committed to the database
Here's a patch to crud.py to make it more verbose for debugging.
verbose-vertex-crud-py.patch

Example of what it outputs when building components/refreshing the page
When building a component, the data gets committed into the db
/usr/lib/python3.12/asyncio/base_events.py:726: ResourceWarning: unclosed event loop <_UnixSelectorEventLoop running=False closed=False debug=False>
  _warn(f"unclosed event loop {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
log_vertex_build called with vertex_build id: File-osnlJ
Vertex build data size: 1816 bytes
Created VertexBuildTable with id: File-osnlJ
Table contents:
  timestamp: 2024-10-08T15:05:12.996697+00:00
  id: File-osnlJ
  data: {"results": {}, "outputs": {"data": {"message": {"file_path": "/home/edllt/.cache/langflow/b2e77365-53e4-4f56-80a9-7d51a553913d/2024-10-08_18-01-39_random_text.txt"...
  artifacts: {"data": {"rep...
  params: None
  valid: True
  flow_id: b2e77365-53e4-4f56-80a9-7d51a553913d
  build_id: dc9903b9-30d9-4fb5-97fa-b681287b097f
Successfully committed VertexBuildTable with id: File-osnlJ
log_vertex_build finished

Upon refreshing, it seems like all vertex builds are being returned
get_vertex_builds_by_flow_id called with flow_id: b2e77365-53e4-4f56-80a9-7d51a553913d, limit: 1000
Returning 3 vertex builds

Using this script, as well as using sql commands to view the db, I figured that the page crash is probably because it's returning a huge amount of data upon refreshing. That along with the fact that the previously built components' cached outputs in the db don't get cleared up makes it take up a lot of storage and ram

@EDLLT
We have verified that there is an issue with the freeze/freeze path feature, and we are already working on it.
I will also check into the frontend crashing.
I'll reopen the issue.
Thanks again!

hi @codenprogressive @EDLLT
We have confirmed that the freeze feature is functioning as expected. I will implement a fix to optimize data storage in the database, which will reduce memory usage and prevent potential frontend crashes.
Thanks for your feedback and patience.
Feel free to contact us anytime :)
#4078

Issues that still occur

Deleting the entire flow clears up the relevant parts of the vertex_build cache; however, deleting the file component does not delete its relevant data from the vertex_build cache. This causes langflow.db to pile up space from non-existing components overtime within the flow

When rebuilding the file component explicitly(doesn't matter if it's frozen or not), the previously cached data does not get removed from vertex_build in langflow.db and the data gets duplicated within vertex_build.

Uploading the same file multiple times using langflow's file component increases memory usage. In my case, uploading the random_ascii_70MB.txt 10 times increased memory usage by ~1GB

New issues

When processing a large amount of data using the file component

After it has built successfully, we are able to press on Data within langflow to view the contents of our file.
Then, when I try to refresh the page and try to view the data within my already built file component, it crashes my tab(tested on both brave and chrome)

Taking data from the file component then using split text processes successfully but

Upon reloading the page(on the flow not the main menu), langflow starts taking up a significant amount of ram(reached up to ~15GB) before it settles down and afterwards, the browser's memory starts spiking up to 2~3GB before crashing the tab(tested on both brave and chrome)

@Cristhianzl I haven't tested the fix yet but looking at the PR, it seems that it only addressed the frontend crashing issue through truncating long strings.
Other issues like data duplication in the database from rebuilds, dead data belonging to non-existing components when deleting them, uploading file taking memory upon each reupload, etc(i have written all the issues in the previous comment) don't seem to have been addressed

@EDLLT, hi
We are concerned about this and are close to the point where we will no longer use the vertex_build table. I hope that within the next few weeks, we can disable this table and eliminate data duplication.
In any case, truncating the data stored in the database (PR #4078) will drastically reduce memory usage.

@EDLLT hi,
I created a small flow to test the scenario you mentioned. I uploaded a 60MB CSV, which was processed and displayed correctly on my UI without any issues, even after running the flow multiple times.
There’s no problem with the freeze feature. It operates using a cache table in memory, not the vertex_build table.
My suggestion would be to clean up the vertex_build and transactions tables. Once you do that, the data will be truncated and displayed accordingly on the frontend, which should prevent any memory leaks or frontend crashes.

I've edited this comment to include steps to reproduce the crash
https://github.com/langflow-ai/langflow/issues/4008#issuecomment-2407550796

hey @EDLLT you are correct.
I found the problem. Somehow after the first run, the params column is been stored with memory heap, causing the cascade error to the frontend.
There’s no problem with the freeze feature. It operates using a cache table in memory, not the vertex_build table.
My suggestion would be to clean up the vertex_build and transactions tables. Once you do that, the data will be truncated and displayed accordingly on the frontend, which should prevent any memory leaks or frontend crashes.
We are still working on the improvement to remove this vertex_build table, this could take a while but, in the future we are not going to have this table anymore.
After lots of runs of this flow (this is a 50MB CSV file uploaded), the memory heap is not happening anymore :)
This field was not been validated as the others.

I would like to thank you for your patience and help!

I will let this issue open until you confirm everything is working for you.

@Cristhianzl Unfortunately langflow still crashes on the latest commit d0fdc568902990142762a4ca2de3c50ca6976c28
(Btw, the first thing I had done was to clear up my transaction and vertex_build tables, create a new flow, and make sure that I am on the latest commit d0fdc568902990142762a4ca2de3c50ca6976c28)
sqlite> delete from "transaction";
sqlite> delete from vertex_build;

The steps to reproduce it remain the same
https://github.com/langflow-ai/langflow/issues/4008#issuecomment-2407550796
Also here's the random ascii file and flow(hopefully would help with reproducability)
The flow
Langflow Crasher.json
The ASCII 70MB file
https://drive.google.com/file/d/1WBp0LoZiPqCBc4IhdabtV___7ZqPaV0a/view?usp=sharing

@EDLLT how are you running the Langflow?

@EDLLT how are you running the Langflow?

make backend on one terminal tab
make frontend on another terminal tab

hi @EDLLT,
You are absolutely correct about the error you're reporting. I'm following the steps you provided to reproduce it.
I have a solution that would temporarily fix this error. However, the real solution will be to remove the vertex_build table. So, we are going to wait until we reach the point where we can remove this table to fully resolve the problem.
For now, I ask for your patience.
Thank you!

Seems like i do have similar issue, also my ram usage is growing as sqlite file - now its 7GB... version of my langflow is 1.0.18 and its ran by python3.10...
and when memory ran out:
--- End of logging error ---                     ERROR    2024-11-13 18:09:20 - ERROR    - utils utils.py:159                              - Error logging transaction:                              (sqlite3.OperationalError) disk I/O                              error                              (Background on this error at:                              https://sqlalche.me/e/20/e3q8) --- Logging error in Loguru Handler #4 --- Record was: {'elapsed': datetime.timedelta(seconds=23076, microseconds=901699), 'exception': None, 'extra': {}, 'file': (name='utils.py', path='/home/langflow/.local/lib/python3.10/site-packages/langflow/graph/utils.py'), 'function': 'log_transaction', 'level': (name='ERROR', no=40, icon='❌'), 'line': 159, 'message': 'Error logging transaction: (sqlite3.OperationalError) disk I/O error\n(Background on this error at: https://sqlalche.me/e/20/e3q8)', 'module': 'utils', 'name': 'langflow.graph.utils', 'process': (id=3284, name='MainProcess'), 'thread': (id=139889603801088, name='MainThread'), 'time': datetime(2024, 11, 13, 18, 9, 20, 204206, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600), 'CET'))} Traceback (most recent call last):                                                                                File "/home/langflow/.local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1144, in _commit_impl                                                            self.engine.dialect.do_commit(self.connection)                                                                                File "/home/langflow/.local/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 702, in do_commit     dbapi_connection.commit() sqlite3.OperationalError: disk I/O error

I have a solution that would temporarily fix this error. However, the real solution will be to remove the vertex_build table. So, we are going to wait until we reach the point where we can remove this table to fully resolve the problem.

If removing vertex build is not possible or will take significant effort, another solution I could think of would be to add checks to prevent duplicates of the same data as well as remove old cached values when adding a new value. I think this solution is simpler; however, my understanding of vertex_build is not full yet. So, did I misunderstand or will this approach work?
Also, if I submit a PR doing this, will it be merged?

@Cristhianzl I've noticed that this issue's been closed. Has it been fixed?
Which PR fixes the issue if so?

I'll keep It open.
Just closed due lack of new messages.
Thanks!


Graph Icon in UI

Changed the graphs (diagram) icon for graphs to something more like graphs:
https://fontawesome.com/icons/sitemap?style=solid

found a better one: https://fontawesome.com/icons/project-diagram?style=solid

We shouldn't inline a custom icon I suppose? I believe something like that for the collection cards broke the layout at some point.


mwc-ripple: Changing the value of active to false doesn't remove the ripple

I'm submitting a:

[x] bug report
[ ] feature request

What OS are you using?
Mac OSX
What browser(s) is this bug affecting:
Google Chrome: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36
Current behavior:
If you set .active to true, the ripple is activated and rendered. Setting it back to false results in nothing happening. The ripple remains.
Expected behavior:
If I set .active to false, I would expect the ripple to be removed.
Steps to reproduce:
In the Chrome console
$0.active = true; // Results in the ripple being activated and rendered
$0.active = false; // Nothing happens

Related code:
None
Other information:
None

active property was removed with #936


Reuse TickerDetail layouts for bucket views

@coderabbitai, this PR is growing to be quite large, and I still have a ways to go.  Can you give me a preliminary review that is very not nitpicky?  I will likely do some refactoring later, but right now I just want to get this functionality moving forward.


Does fetch work on bare repositories?

I'm cloning into a bare repo. When I want to fetch new branches and commits I use
git.Repository.openBare(localPath)
    .then(function (repository) {
      return repository.fetch(repository.getRemote('origin'), {
        callback: ignoreSSLErrors,
        downloadTags: 1
      });
    })

This doesn't seem to have any effect on the state of the repository. Is there another step I need to see new branches or new commits on existing branches?
cc @sponte

@jimCresswell - either way we should add following fetch options when fetching:
downloadTags and prune.
http://www.nodegit.org/api/fetch_options/
On 08/10/2015, Jim Cresswell<EMAIL_ADDRESS>wrote:

I'm cloning into a bare repo. When I want to fetch new branches and commits
I use
git.Repository.openBare(localPath)
    .then(function (repository) {
      return repository.fetch(repository.getRemote('origin'), {
        callback: ignoreSSLErrors,
        downloadTags: 1
      });
    })

This doesn't seem to have any effect on the state of the repository. Is
there another step I need to see new branches or new commits on existing
branches?
cc @sponte

Reply to this email directly or view it on GitHub:
https://github.com/nodegit/nodegit/issues/742

--
Kind regards,
Stanislaw Wozniak

I am seeing this same behaviour on a non-bare repository. No error, promise gets fulfilled but no fetch has occurred. Still assuming that I’m doing something wrong as fetch is most likely not generally broken.

In case it is relevant: I'm always cloning and fetching over https with no credentials, the repo test for fetch seems to use SSH.

The problem I was having was that the fetch example had a bug https://github.com/nodegit/nodegit/blob/master/examples/fetch.js#L7 where it was not passing a correctly-formed options object (pull request: https://github.com/nodegit/nodegit/pull/747).
The more important issue, however, is that the fetch (and fetchAll) — https://github.com/nodegit/nodegit/blob/master/lib/repository.js#L636 — methods fail silently if the correct credentials object is not passed for an ssh call and the promise is fulfilled as if the call returned successfully. I haven’t had a chance to look into the codebase for how we’re handling these sorts of situations elsewhere but it should — at the very least — result in a warning and, ideally, throw an error. (It seems fetch and fetchAll also carry out different levels of validation on the options object itself, which is probably a good chance to refactor those to pull out the validation and carry out better error handling there.)
Thoughts?

Sounds good to me. I don't know if it would help pinpoint my issue but I'm all for argument checking and propagating errors in promises.


What happens to the nonces in the issuance flow?

In the issuance flow, there is a nonce in the Credential Offer (issuer to holder) and a nonce in the credential request (holder to issuer).  Likewise, there is a key_correctness_proof in the Credential Request and the Issue Credential.  My guess is that:

The Credential Offer nonce is used in the Credential Request key correctness proof.
The Credential Request nonce is used in the Issue Credential key correctness proof.

This needs to be verified or corrected with the implementation and explained in the specification.

@whalelephant -- would you be able to take a look at this issue?  Trace through the implementation to see how the nonces are used?  Thanks!
The current text implies that they are the same, but looking at running examples shows they are not the same.

Yes you are correct. Below is a simple flow with the nonce throughout the process
Credential Offer:

Issuer creates cred_offer_nonce as part of the request

Credential Request:

Holder uses the cred_offer_nonce to blind their link_secret with the cred_offer_nonce
Holder creates cred_req_nonce as part of the request

Credential Create:

Issuer checks the link_secret_blind_correctness_proof in the credential request with cred_offer_nonce
Issuer uses cred_req_nonce to construct the signature_correctness_proof

Process (Unblind) Credential:

Holder uses cred_req_nonce to unblind credential signature

Presentation Request:

Verifier creates presentation_nonce

Presentation:

Holder uses the presentation_nonce as input to the proof

Verification:

Verifier verifies proof with presentation_nonce

Perfect writeup - thanks.

Resolved and covered in the spec.


Please, add solc to path

I did
npm install --save-dev solidity-docgen
./node_modules/.bin/solidity-docgen ./ ./contracts ./docs

And got:

throw new Error(['Solidity compiler not found. Please, add solc to path or', 'define environment variable SOLC_PATH.'].join(' '));
^
Error: Solidity compiler not found. Please, add solc to path or define environment variable SOLC_PATH.

I'm not sure what they mean with "add to path".

After this I've also tried
npm install --save-dev openzeppelin-solidity
env SOLC_ARGS='openzeppelin-solidity=./node_modules/openzeppelin-solidity' ./node_modules/.bin/solidity-docgen ./ ./contracts ./docs

But same error.

Make sure you have installed solc on your system.

Sorry i have this on my to do list. I will reply when i checked!!!

@spalladino would it be possible for this module to use solcjs instead of the native compiler? It could even be set as a peer dependency.

Hey Brett! That's a good idea, but I don't have the time to work on that now. Do you think you could send a PR? I'd be happy to review it!

@sohkai We were in the same dilema and as a quick alternative, I just modified our script to fetch the needed binary from gh and update paths. Relevant code snippet:
curl -L -o solidity-ubuntu-trusty.zip https://github.com/ethereum/solidity/releases/download/v0.4.24/solidity-ubuntu-trusty.zip
unzip solidity-ubuntu-trusty.zip
CWD=$(pwd)
OLD_SOLC_PATH=$SOLC_PATH
export SOLC_PATH=$CWD/solc
# solidity-docgen command
export SOLC_PATH=$OLD_SOLC_PATH

full code: https://github.com/PolymathNetwork/polymath-core/blob/docs-solc-fix/scripts/docs.sh

Cool @maxsam4! Partly the reason this came up was because I can't install solc on macOS14 ;).
@spalladino I likely won't have a lot time to take a look for a few weeks, but I'll take a peek and see if it's easily doable.

@spalladino @sohkai
I originally intended to use solcjs instead of solc since it would greatly simplify the installation process and usage for this project. However, the command-line interface for solcjs seems to be significantly more limited than the one provided by solc. After spending some time on it, I only managed to get full ASTs including documentation and comments from solc, and not from solcjs.
Compare the command-line interfaces of solcjs and solcjs.
To clarify what information solidity-docgen needs from the compiler, I add an example below.
When the following command is run:
SOLC_ARGS='openzeppelin-solidity=/tmp/some-project/node_modules/openzeppelin-solidity' \
solidity-docgen /tmp/some-project/ /tmp/some-project/contracts/ /tmp/some-project/docs/

solidity-docgen issues the following command to the shell for each contract in the contracts directory:
solc --pretty-json --allow-paths /tmp/project/contracts --combined-json abi,ast,compact-format,devdoc,hashes,interface,metadata,opcodes,srcmap,srcmap-runtime,userdoc openzeppelin-solidity=/tmp/project/node_modules/openzeppelin-solidity /tmp/project/contracts/Contract.sol

The properties provided to the argument "combined-json" specify what information the compiler is supposed to output. I did not find a way to get the same information - which is used to create the contracts' documentation pages - from solcjs.

It's working for me. I just added command (pwd).
package.json
...

  "scripts": {
    "docgen": "SOLC_ARGS='openzeppelin-solidity=`pwd`/node_modules/openzeppelin-solidity' node_modules/.bin/solidity-docgen . ./contracts ./docs"
  },

...

The project was rewritten and it is now using solcjs no w. See v0.2 to learn about the new version, which is still in alpha.
It was brought up in #17 that solcjs doesn't work for all projects so we will probably support native solc as well in the future.

brew upgrade
brew tap ethereum/ethereum
brew install solidity@5```

My issue was resolved as the npm `solc` package doesn't target `solc` but rather `solc-js`.

Subsequently, I added solc to my PATH via `export PATH=$PATH:/usr/local/bin/solc`


Updates Routes, Header, and Navigation

This PR closes #7 and closes #6 . It updates routes, header and navigation.

This looks good!


Feature/nx migration 17.1.1

Codecov Report

Merging #41 (71f3054) into develop (0613253) will decrease coverage by 0.01%.
The diff coverage is 100.00%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@             Coverage Diff             @@
##           develop      #41      +/-   ##
===========================================
- Coverage    99.04%   99.03%   -0.01%
===========================================
  Files           15       15
  Lines          522      517       -5
  Branches        93       93
===========================================
- Hits           517      512       -5
  Partials         5        5

Flag
Coverage Δ

cdk
99.03% <100.00%> (-0.01%)
:arrow_down:

create-aws-cdk-app
99.03% <100.00%> (-0.01%)
:arrow_down:

nx-aws-cdk
99.03% <100.00%> (-0.01%)
:arrow_down:

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

Files
Coverage Δ

packages/nx-aws-cdk/src/index.ts
100.00% <ø> (ø)

packages/nx-aws-cdk/src/utils/versions.ts
100.00% <100.00%> (ø)

:mega: Codecov offers a browser extension for seamless coverage viewing on GitHub. Try it in Chrome or Firefox today!


Dual region bucket, custom placement config is picked up as a diff without any changes

What happened?
When creating dual region buckets, as per the the documentation, using the custom_placement_config re-running without any changes causes a diff. This diff drop creates the buckets.
Example
pulumi_state_bucket = gcp.storage.Bucket(
            resource_name="pulumi-state-bucket",
            name="jcloudnest-pulumi-state",
            location="AU",
            versioning=gcp.storage.BucketVersioningArgs(enabled=True),
            custom_placement_config=gcp.storage.BucketCustomPlacementConfigArgs(
                data_locations=["australia-southeast1", "australia-southeast2"]
            ),
            force_destroy=False,
            storage_class="STANDARD",  # We don't autoclass this because we expect state to be changed frequently here
            public_access_prevention="enforced",
            project="my-project-id",
            lifecycle_rules=[
                gcp.storage.BucketLifecycleRuleArgs(
                    action=gcp.storage.BucketLifecycleRuleActionArgs(type="Delete"),
                    condition=gcp.storage.BucketLifecycleRuleConditionArgs(
                        num_newer_versions=10
                    ),
                )
            ],
            uniform_bucket_level_access=True,
        )

Running pulumi preview on the above code
+- gcp:storage:Bucket pulumi-state-bucket replace [diff: ~customPlacementConfig,forceDestroy]
2024-03-05 01:56:21,805::FOUNDATION::INFO:: ++ gcp:storage:Bucket pulumi-state-bucket create replacement [diff: ~customPlacementConfig,forceDestroy]

Output of pulumi about
CLI
Version      3.107.0
Go Version   go1.22.0
Go Compiler  gc
Plugins
NAME    VERSION
gcp     6.67.1
python  unknown
Host
OS       debian
Version  11.9
Arch     x86_64
This project is written in python: executable='/usr/local/bin/python3' version='3.11.8'
Current Stack: organization/Foundation/cloudnest
TYPE                                                        URN
pulumi:pulumi:Stack                                         urn:pulumi:cloudnest::Foundation::pulumi:pulumi:Stack::Foundation-cloudnest
foundation:components:JGCPBaseProject                       urn:pulumi:cloudnest::Foundation::foundation:components:JGCPBaseProject::cloudnest-host_proj
pulumi:providers:gcp                                        urn:pulumi:cloudnest::Foundation::pulumi:providers:gcp::default_6_67_1
gcp:organizations/folder:Folder                             urn:pulumi:cloudnest::Foundation::gcp:organizations/folder:Folder::nests_folder
gcp:organizations/folder:Folder                             urn:pulumi:cloudnest::Foundation::gcp:organizations/folder:Folder::cloudnest-folder
gcp:organizations/project:Project                           urn:pulumi:cloudnest::Foundation::foundation:components:JGCPBaseProject$gcp:organizations/project:Project::cloudnest-host_proj-project
gcp:compute/network:Network                                 urn:pulumi:cloudnest::Foundation::foundation:components:JGCPBaseProject$gcp:compute/network:Network::cloudnest-host_proj-vpc-network
gcp:serviceAccount/account:Account                          urn:pulumi:cloudnest::Foundation::gcp:serviceAccount/account:Account::cloudnest-host_proj-ghactions-sa
gcp:iam/workloadIdentityPool:WorkloadIdentityPool           urn:pulumi:cloudnest::Foundation::gcp:iam/workloadIdentityPool:WorkloadIdentityPool::cloudnest-host_proj-default-wif-pool
gcp:projects/defaultServiceAccounts:DefaultServiceAccounts  urn:pulumi:cloudnest::Foundation::gcp:projects/defaultServiceAccounts:DefaultServiceAccounts::cloudnest-host_proj-depriv-accounts
gcp:projects/service:Service                                urn:pulumi:cloudnest::Foundation::gcp:projects/service:Service::nest_cloud_iam_api
gcp:projects/service:Service                                urn:pulumi:cloudnest::Foundation::gcp:projects/service:Service::nest_service_usage_api
gcp:projects/service:Service                                urn:pulumi:cloudnest::Foundation::gcp:projects/service:Service::nest_cloud_rm_api
gcp:projects/service:Service                                urn:pulumi:cloudnest::Foundation::gcp:projects/service:Service::nest_service_networking_api
gcp:projects/service:Service                                urn:pulumi:cloudnest::Foundation::gcp:projects/service:Service::nest_bigquery_api
gcp:projects/service:Service                                urn:pulumi:cloudnest::Foundation::gcp:projects/service:Service::cloud-billing-api-cloud-nest
gcp:serviceAccount/account:Account                          urn:pulumi:cloudnest::Foundation::gcp:serviceAccount/account:Account::nestbuilder_sa
gcp:projects/service:Service                                urn:pulumi:cloudnest::Foundation::gcp:projects/service:Service::nest_sql_admin_api
gcp:serviceAccount/iAMBinding:IAMBinding                    urn:pulumi:cloudnest::Foundation::gcp:serviceAccount/iAMBinding:IAMBinding::cloudnest-host_proj-gasa-wif-bind
gcp:compute/subnetwork:Subnetwork                           urn:pulumi:cloudnest::Foundation::foundation:components:JGCPBaseProject$gcp:compute/subnetwork:Subnetwork::cloudnest-host_proj-subnet
gcp:projects/iAMMember:IAMMember                            urn:pulumi:cloudnest::Foundation::gcp:projects/iAMMember:IAMMember::project-iam-member
gcp:projects/iAMMember:IAMMember                            urn:pulumi:cloudnest::Foundation::gcp:projects/iAMMember:IAMMember::nestbuilder-secret-accessor
gcp:projects/iAMMember:IAMMember                            urn:pulumi:cloudnest::Foundation::gcp:projects/iAMMember:IAMMember::nestbuilder_storage_member
gcp:folder/iAMMember:IAMMember                              urn:pulumi:cloudnest::Foundation::gcp:folder/iAMMember:IAMMember::nestbuilder-productcreateorserviceagent
gcp:storage/bucket:Bucket                                   urn:pulumi:cloudnest::Foundation::gcp:storage/bucket:Bucket::pulumi-state-bucket
Found no pending operations associated with cloudnest
Backend
Name           b42d0795a4ef
URL            gs://jahan-foundation-pulumi-backend
User           vscode
Organizations
Token type     personal
Dependencies:
NAME        VERSION
black       24.2.0
foundation  0.1.1
GitPython   3.1.41
ipython     8.21.0
isort       5.13.2
pip         24.0
setuptools  69.0.3
wheel       0.42.0
Pulumi locates its logs in /tmp by default
Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

Hi @aaron-tillekeratne. Thanks for opening an issue and including a repro.

Hey team, any updates on this, I wonder if there's been anyone else experiencing this issue?

Raised https://github.com/hashicorp/terraform-provider-google/issues/18035 upstream

EDIT: The workaround is to upper-case the locations: data_locations=["AUSTRALIA-SOUTHEAST1", "AUSTRALIA-SOUTHEAST2"]
Hey @aaron-tillekeratne, thanks for following up here!
I had another look at it and have confirmed it reproes with:
import pulumi
import pulumi_gcp as gcp

pulumi_state_bucket = gcp.storage.Bucket(
    "pulumi-state-bucket",
    location="AU",
    custom_placement_config=gcp.storage.BucketCustomPlacementConfigArgs(
        data_locations=["australia-southeast1", "australia-southeast2"]
    ),
)

running it under pulumi preview --diff actually describes why the replacement is happening. It seems to be an issue with normalizing the strings for the locations:
~ customPlacementConfig: {
    ~ dataLocations: [
        ~ [0]: "AUSTRALIA-SOUTHEAST1" => "australia-southeast1"
        ~ [1]: "AUSTRALIA-SOUTHEAST2" => "australia-southeast2"
      ]
  }

So you can workaround the issue by just upper-casing the strings!
I've confirmed that the following does not have the same issue:
import pulumi
import pulumi_gcp as gcp

pulumi_state_bucket = gcp.storage.Bucket(
    "pulumi-state-bucket",
    location="AU",
    custom_placement_config=gcp.storage.BucketCustomPlacementConfigArgs(
        data_locations=["AUSTRALIA-SOUTHEAST1", "AUSTRALIA-SOUTHEAST2"]
    ),
)

I'll investigate if this is something we can handle on our side or open an issue upstream for it if not. Thank you for engaging here!

Roger, will do for now. Cheers


Create rules validator

Rule validator should check for syntax and also look for dependencies...
jobs can have the following attributes:

depends_on
requires_variables
sets_variables
transforms_variables (which is basically requires + sets)


[Doc] Convert the Tabs page to the new format

@subjectix done.

Great work :+1: :+1: Thanks a lot. Feel free to merge ^^

@subjectix Thanks for you feedback! I'm gonna squash down and merge :tada:.

:+1: :tada: :tada:


Web UI 2.4 input validation error for non-required inputs

There is an issue with the Web UI on 2.4.
In rules or actions, If I input a value in a non-required form field then remove the value, I receive a validation error.

Track at https://github.com/StackStorm/st2web/issues/424


mitmdump: unrecognized arguments: -dd

Steps to reproduce the problem:

mitmdump -d -nr foo.mitm

mitmdump: error: unrecognized arguments: -d

System information
Mitmproxy version: 3.0.0 (2.0.0dev0136-0x05e1154)
Python version: 3.5.2
Platform: Linux-3.4.0+-x86_64-with-Ubuntu-14.04-trusty
SSL version: OpenSSL 1.0.2g-fips  1 Mar 2016
Linux distro: Ubuntu 14.04 trusty

This is apparently --flow-detail now. mitmdump --help explains that I should use --flow-detail LEVEL, but does not indicate what a valid value for LEVEL would be.

@mhils
Is this good ?


MolToSmarts does not serialize isotopes

Describe the bug
A clear and concise description of what the bug is.
I'm not sure if I should be doing this differently or have unphysical expectations, but I expected my arbitrary isotopes to get serialized with MolToSmarts as they are with MolToSmiles. However, they are not. Relates to #1472.
To Reproduce
Steps to reproduce the behavior, feel free to paste a bit of Python in here.
from rdkit import Chem
smarts = "[C](=[O])"
rdmol = Chem.MolFromSmarts(smarts)
for atom in rdmol.GetAtoms():
    atom.SetIsotope(4)
Chem.MolToSmarts(rdmol)

'C=O'
Chem.MolToSmiles(rdmol)

'[4CH2]=[4O]'
Expected behavior
A clear and concise description of what you expected to happen.
Expected some kind of isotopic SMARTS, like '[4C]=[4O]'
Screenshots
If applicable, add screenshots to help explain your problem.
Configuration (please complete the following information):

RDKit version: 2021.09.2
OS: [e.g. Ubuntu 20.04]: MacOS Catalina
Python version (if relevant):  Python 3.8.12
Are you using conda?
If you are using conda, which channel did you install the rdkit from? conda-forge
If you are not using conda: how did you install the RDKit?

Additional context
Add any other context about the problem here.
I tried various combinations of SanitizeMol and UpdatePropertyCache; they made no difference.

More context:
smilesmol = Chem.MolFromSmiles('[4CH2]=[4O]')
smiles_smarts = Chem.MolToSmarts(smilesmol)
print(smiles_smarts)
smartsmol = Chem.MolFromSmarts(smiles_smarts)
smarts_smarts = Chem.MolToSmarts(smartsmol)
print(smarts_smarts)

for atom in smartsmol.GetAtoms():
    atom.SetIsotope(8)
    atom.UpdatePropertyCache()
smartsmol.UpdatePropertyCache()
Chem.SanitizeMol(smartsmol)
smarts_smarts8 = Chem.MolToSmarts(smartsmol)
print(smarts_smarts8)

[4#6H2]=[4#8]
[#6&4*&H2]=[#8&4*]
[#6&4*&H2]=[#8&4*]

I hadn't seen this way of specifying isotope before, so tried recreating a molecule with it:
final_smarts_mol = Chem.MolFromSmarts("[#6&4*&H2]=[#8&4*]")
for atom in final_smarts_mol.GetAtoms():
    print(atom.GetIsotope())

0
0

This is expected behavior. When you construct a molecule from SMARTS the individual atoms are query atoms which include information in the query itself about what they are looking for. If you set the isotope on a query atom it will be ignored both when writing SMARTS and when doing substructure searching.
If you have a molecule constructed from SMARTS and you would like to add query information about isotopes, you can do so as follows:
from rdkit.Chem import rdqueries
m = Chem.MolFromSmarts('[C]=[O]')
print(Chem.MolToSmarts(m))
m.GetAtomWithIdx(0).ExpandQuery(rdqueries.IsotopeEqualsQueryAtom(14))
print(Chem.MolToSmarts(m))

This outputs:
C=O
[C&14*]=O

@lilyminium, a polite request: if you aren't very familiar with the RDKit and see something you don't expect, it's better to ask a question using the discussions tab (https://github.com/rdkit/rdkit/discussions) than it is to create a bug. If it turns out that you have discovered a bug, we can always open the issue from the discussion.

Apologies for jumping the gun! I was fooled by the MolToSmiles behaviour and thinking it was just another way to convert a molecule to string.

Apologies for jumping the gun! I was fooled by the MolToSmiles behaviour and thinking it was just another way to convert a molecule to string.

MolToSmarts() is just another way to convert a molecule to a string. The difference here is what MolFromSmarts() does - construct a molecule with query atoms - vs what MolFromSmiles() does - construct a molecule with normal atoms.

MolToSmarts() is just another way to convert a molecule to a string. The difference here is what MolFromSmarts() does - construct a molecule with query atoms - vs what MolFromSmiles() does - construct a molecule with normal atoms.

I think that's where my confusion lay -- MolToSmiles dealt with QueryAtoms as well, outputting '[4CH2]=[4O]'.


Sorting Not working on Column Change

If I Click on one column to sort then it works, but then if I click on another column to sort the icon change, but the results do not change.  However, if I keep clicking on it to sort then it eventually gets to the right sorting.  It is just the first click from one column to the next.  This issue is also present on your documentation pages. Sort a column by UserName then by ID.  You will notice the results don't sort by ID right away.

The sorting mechanism they have is just hideous. I'm also in the process of making a custom workaround for this by implementing my own sorting mechanism.

@FightRay I ran into a few other issues with this library.  I instead started using:
https://github.com/matfish2/vue-tables-2

Closed by v2.0.0-alpha.0


DO NOT MERGE - Per Tenant Logging Testing

@shaangill025 the permission error we are seeing when creating the log file in OpenShift could be resolved by having the logs go into /home/aries/log rather than in /home/aries, as that folder should have the right privileges set for the user to write to it.
We probably want to have this applied as default folder in ACA-Py, rather than leaving it to the user.

@esune I made the change in the following commit to allow --log-file to be applied to the logging handler if already created from config. So --log-file ./log/acapy.log would work with new pre-release image. Earlier the path specified in the config [ini] file could not be override. Regarding putting ./log/.. as the default path in ACA-Py, I am not sure if this is the way to go as this would work within Traction env but not if ACA-Py [multitenant] is stood up by itself. Currently the hang up is with the caplog issue with unit tests as I had mentioned in my updates today.
https://github.com/hyperledger/aries-cloudagent-python/pull/2550/commits/c46c4d0880b9d77e26521e9ea3d4502976c7c6a7

@esune I made the change in the following commit to allow --log-file to be applied to the logging handler if already created from config. So --log-file ./log/acapy.log would work with new pre-release image. Earlier the path specified in the config [ini] file could not be override. Regarding putting ./log/.. as the default path in ACA-Py, I am not sure if this is the way to go as this would work within Traction env but not if ACA-Py [multitenant] is stood up by itself. Currently the hang up is with the caplog issue with unit tests as I had mentioned in my updates today. hyperledger/aries-cloudagent-python@c46c4d0

Thank you @shaangill025, i think I follow now. Looping in @WadeBarnes for potential input/insight on the operations end.

For anyone using the ACA-Py images the ./log folder is where logs are expected to be written if stored to disk.

@WadeBarnes — are you now happy with the implementation in ACA-Py?  As in approving the PR?
@shaangill025 — two of the test Actions are failing in the ACA-Py PR. Could you please investigate and address them?  We’ve had some trouble with the JSON-LD tests failing to resolve a URL that could be the cause of the integration test errors (or not…), but that would not be the issue with the other failing action.

@WadeBarnes — are you now happy with the implementation in ACA-Py? As in approving the PR?

I've been letting @esune lead on the review of the Per Tenant Logging.  I'm just commenting on the default location used for ACA-Py when it logs to disk.  The images setup a ./log (more precisely a ~/log) folder and relevant permissions for this purpose, but the defaults in ACA-Py seem to log to files in the . (more precisely the ~) folder.

The pods associated with this PR are still in a crash loop.
cc @shaangill025, @esune, @i5okie


json array becomes key of json object (and fails to parse)

There is a json field cards that contains an array. When the model serializes it serializes the array as the key to an object with no value and causes a parse error:
{ [error: invalid input syntax for type json]
  name: 'error',
  length: 192,
  severity: 'ERROR',
  code: '22P02',
  detail: 'Expected ":", but found "}".',
  hint: undefined,
  position: undefined,
  internalPosition: undefined,
  internalQuery: undefined,
  where: 'JSON data, line 1: ...kR1PAJ\\",\\"customerId\\":\\"cus_4D10fjjmkR1PAJ\\"}"}',
  file: 'json.c',
  line: '1075',
  routine: 'report_parse_error' }

This error is actually from the pg library, so maybe the problem is actually there. How would I see the SQL right before it's handed off to pg?

It's close but does'nt work, is in my model I send array of json , I have 'error syntax'

Hi @CaptainJojo. Can you please open this as a new issue including code that generates the error, and pass debug() to log the generated query.

Any updates on this one? My case
{
 name: 'my page',
     path: 'page/template',
     javascripts: [ 'js1', 'js2' ],
     stylesheets: [ 'css1', 'css2' ] } }

does
insert into "template" ("javascripts", "name", "path", "stylesheets") values ('{"js1","js2"}', 'my page', 'page/template', '{"css1","css2"}')

that ends up as
insert into "template" ("javascripts", "name", "path", "stylesheets") values ($1, $2, $3, $4) returning "id" - invalid input syntax for type json
``

Anyhow stringify before save does the trick.


Campaign notification: before and after budget retrieval

*Before retrieve budget:
The remaining budget update does not occur at the campaign notification level

finished campaign

in Progress campaign

*After retrieve budget:

The message should change after the budget retrieval
new message "Congratulations! Your AdPool "campaign name" is now finished, and your remaining budget has been successfully retrieved."
The budget becomes zero.
remove the "retrieve budget" button

@waelhanfi04 There are a few modifications to be made after retrieving the budget: modify the message and remove the 'Retrieve Budget' button, as indicated above


@kadena/client depends on a vulnerable version of YAML

Please confirm the following:

[X] I have read the Code of Conduct
[X] The bug was not reported before
[X] I am using the latest version of the relevant package(s)

What operating system are you using? And what version?
No response
What environment or browser are you using? And what version?
No response
What package is the bug report about?
@kadena/client
Describe the bug
NPM issues a high severity vulnerability warning,
Steps to reproduce the behavior
When installing @kadena/client in my project, I was confronted with a vulnerability warning from NPM: 2 high severity vulnerabilities.
Here is the npm audit report:
# npm audit report

yaml  2.0.0-5 - 2.2.1
Severity: high
Uncaught Exception in yaml - https://github.com/advisories/GHSA-f9xv-q969-pqx4
No fix available
node_modules/yaml
  @kadena/client  *
  Depends on vulnerable versions of yaml
  node_modules/@kadena/client

2 high severity vulnerabilities

Some issues need review, and may require choosing
a different dependency.

What did you expect to happen?
I expected a simple "found 0 vulnerabilities."
Participation

[ ] I am willing to submit a pull request for this issue.

This was fixed in 1.4.0. Cheers!


Does't work on clusters/disturbed systems

Presently the module is using system memory to keep track of each section, which might not scale well when ran on clusters or if the process restarts. Please, can we have an option to add centralized in-memory storage like Redis?

@andela-ooladayo Do you mean for storing sessions?

@andela-ooladayo the library right now does not deal with Session storage directly. It only stores the sessionId as retrieved from Africastalking, so you'd you have to right your own session logic to fetch and store the appropriate data based on the sessionId. I had initially included a session object connected to Redis but, that was project specific, in the spirit of decoupling concerns and keeping the library general and backe-end agnostic I removed it. So for now you'd have to bring your own session-management logic.

@andela-ooladayo but I can work on adding a feature for to make it easier to work with sessions while still keeping it backend-agnostic.

I'd prefer that too, managing state/ sessions at that point should no be the state machines logic; also that could be easily extended.

@habbes That will be nice.

Ok I'll work on it. I'll post the idea I have for implementing it here first for review.

@andela-ooladayo @ianjuma So basically this is the approach I have in mind, add method to configure a custom session manager of your choice by supplying your own implementation of your get, set and delete methods and then the UssdMenu would use that on an underlying session object

// configure custom session handler
menu.sessionConfig({
    get: function(sessionId, key, callback){
        // your implementation for getting a value from the session by key
    },
    set: function(sessionId, key, value, callback){
       // your implementation for storing a key-value in the session
    },
    deleteSession: function(sessionId, callback){
       // your implementation for removing the session (called when USSD session ends)
    }

});

And once configured, session object can be used within states:

menu.state('statename', {
   run: () => {
      menu.session.get('firstName').then(name => {
          ...
      });
   },
   ...
});

So this approach still decouples the menu from the session management and makes it backend-agnostic allowing you to create your own custom implementation that fits your own backend, whether you store your session data in redis, memcached, database, filesytem or memory, is up to you.
For convenience I'll create a separate pluggable package that contains implementations of these methods for redis and for memory (using ordinary dicts) then other devs can create any other connector they need.
const UssdMenu = require('ussd-menu-builder');
const sessionManager = require('ussd-menu-session');

menu = new UssdMenu();
menu.sessionConfig(sessionManager.get('redis'));
...

Let me know what you think of this approach.

I like your approach!

I like your approach!

@andela-ooladayo @ianjuma I've added support to define your own session handlers in this PR #3, I'll update the docs then merge and push to npm.

@andela-ooladayo @ianjuma update the docs, I guess it's okay to merge now

Thank you @habbes. Excellent work.


Add firefox workaround + introduce window.__TL__ namespace

fixes issues https://github.com/lsoares/selenium-testing-library/issues/7 and https://github.com/lsoares/selenium-testing-library/issues/9
includes preparations for fixing issue https://github.com/lsoares/selenium-testing-library/issues/8

All tests in package seleniumtestinglib.locators are now passing when using the firefox driver. Unfortunately I don't know how to configure gradle so that it repeats the tests in this package with a different driver. Do you have any ideas?

awesome! Great improvements here! I'll investigate firefox tests.


.Date.Local not working

I'm using hugo 0.25.1 and in the documentation at: https://gohugo.io/functions/format/ it states you can use .Date.Local (in conjunction with dateFormat) to get the local date. However it seems the builtin function .Date doesn't accept .Date.Local and I get the following error when a template is called:
Error: Failed to process archetype file "[REDACTED]/archetypes/default.md": template: default:3:57: executing "default" at <.Date.Local>: can't evaluate field Local in type string

Is this an error or am I calling the builtin incorrectly?

We have another issue that is about updating the archetype docs to the changes I did some time ago -- so I will close this.
So, .Date in an archetype file is a date as a string ready to use in the front matter time fields.
If you want the current time and use Local (https://godoc.org/time#Time.Local), try:
{{ now.Local }}


Relative links are striping default url fragments and thus not working correctly

Please open an issue on Griffe (new Python handler)
or pytkdocs (legacy Python handler) instead
if this is related to Python docstrings parsing or the collection of Python objects!
Describe the bug
Hey! Not quite sure if this is an mkdocs, mkdocstrings, griffe, or readthedocs problem - hope this is the right place :)
Currently putting links to different pages in the docs produces the wrong url.
Example:
Here is a [link to a guide](/guides/basic)

should link to URL/guides/basic. It does that, but not correctly as it strips default url fragements such as RTDs .../en/latest/.... This leads to broken links as you can see here (bottom three links): https://bungio.readthedocs.io/en/stable/
I used autorefs to fix the problem, you can see the correct links here: https://bungio.readthedocs.io/en/latest/
Commit which fixed the issue: https://github.com/Kigstn/BungIO/commit/cea594814a51bb945a7ba2ce86490f11bf5433bb
To Reproduce
Steps to reproduce the behavior:

Host on RTD
Use markdows hyperlink to link to a relative file location
Generated link misses the  .../en/latest/....

Expected behavior
A clear and concise description of what you expected to happen.
.../en/latest/... is incuded in the link
Screenshots
If applicable, add screenshots to help explain your problem.

Information (please complete the following information):

OS: [None]
Browser: [all]
mkdocstrings version: [0.18.1]

Additional context
Add any other context about the problem here.

Hello! Unfortunately this is not the right place (it's more a question for MkDocs), but that's OK :slightly_smiling_face:
IMO this behavior is expected. When you link to something by starting with a slash, it builds the URL relative to the root (domain). If you want to keep the fragments that are added by the SSG or the server, you must use relative URLs.
So instead of
Here is a [link to a guide](/guides/basic)

try to do
Here is a [link to a guide](../guides/basic)

The relative path must then be adapted because it depends on the URL of the page showing it.
Nothing actionable here for mkdocstrings, closing!


Custom View Cannot Click (No response when Click CustomView)

Hi there,
I create customview like this :
renderCustomView={() => (                 <Pressable onPress={() => {                   console.log('Pressed);                 }} style={{                     position: 'absolute',                     top: 40,                     right: 50,                   }}>                   <FontAwesome5Icon name='menu-horizontal' size={20} color='white'/>                 </Pressable>               )}
But nothing happen when I press the Icon.
Any solution for this case?
Package.json:
"react-native-gesture-handler": "2.9.0",
"react-native-reanimated": "^2.14.4",
"react-native-story-view": "^0.0.2",
"react-native-video": "^5.2.1",
"react-native-video-cache-control": "^1.2.0",

Hi there, I create customview like this :
renderCustomView={() => ( <Pressable onPress={() => { console.log('Pressed); }} style={{ position: 'absolute', top: 40, right: 50, }}> <FontAwesome5Icon name='menu-horizontal' size={20} color='white'/> </Pressable> )}
But nothing happen when I press the Icon. Any solution for this case?
Package.json:
"react-native-gesture-handler": "2.9.0",
"react-native-reanimated": "^2.14.4",
"react-native-story-view": "^0.0.2",
"react-native-video": "^5.2.1",
"react-native-video-cache-control": "^1.2.0",

@sayyidisal
Would you kindly supply a screen capture or a code sample for the parent's view component?
I'm unable to replicate this problem.
"Absolute" most likely interferes with the touchable portion of the screen.
I couldn't help but notice the console.log syntax is incorrect; I assume there is a typo.


Fix typos and improve some sentences

I'm not a native English speaker, so I only fixed obvious (according to me) typos. Whenever I was in doubt I left the sentence as it was.

Thank you @jakzal! :+1:
That's definitely big ones... outch.


Emoji inside inputbar TextView will appear \ disappear when pressing "enter" (new line) several times

[x] I've read and understood the Contributing guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.
[x] I've searched for any related issues and avoided creating a duplicate issue.

Description
Inside the textview write any emoji (like :smile:) then press "enter" (new line) once, than twice, than third time.
Emoji will appear, then disappear, then appear again.
Reproducible in:

[ ] This is reproducible in the sample project.
SlackTextViewController version: 1.9.5
iOS version(s): 10.2
Device(s): iPhone 6s

Steps to reproduce:

Inside the textview write any emoji (like :smile:) press "enter" (new line) once, than twice, than third time.
press "enter"
press "enter"
press "enter"

Expected result:
Emoji should appear at the "text box" all the time
Actual result:
Emoji will appear, then disappear, then appear again.
Attachments:

+1


importing napari-matplotlib modifies how plots are shown in jupyter notebooks

... and it should not.
The visualization of plots in matplotlib change after napari_matplotlib has been imported. Global settings e.g. here should not be modified by a napari-plugin. Consider programming napari-plugins side-effect free.

To reproduce:
import matplotlib.pyplot as plt
import numpy as np

image = np.random.random((3,3))
plt.imshow(image)

import napari_matplotlib
plt.imshow(image)

The same can be observed when not importing napari_matplotlib but instead opening a viewer where napari-stress is installed, because starting the viewer imports napari_stress and this imports napari_matplotlib in the background. A napari-plugin should not modify how things are displayed in jupyter notebooks. It's kind of evil usage of global variables.
CC @jo-mueller

We had a similar issue earlier in another plugin and this is how we solved it:
https://github.com/BiAPoL/napari-clusters-plotter/blob/b917c1c7e01acf28b24fdbe64913e20588bed642/napari_clusters_plotter/_Qt_code.py#L257-L274
I hope this helps! :-)

Hi @haesleinhuepf ,
I think a similar issue has been discussed here and I thought it was also seeb as not desirable to change the global matplotlib behavior. I've seen the same thing happening for other plots (napari-style color scheme) so the global variables must have been set somewhere else, anyway.
Another quick fix that I use a lot would be:
import matplotlib as mpl
mpl.style.use('default')

That's a great workaround. Thanks, @jo-mueller .

so the global variables must have been set somewhere else, anyway.

Can you give an example and create a GitHub issue on the affected project?

@haesleinhuepf

so the global variables must have been set somewhere else, anyway.

I mean more that the matplotlib global variables must have been set somewhere within the scope of napari-matplotlib. I think here. A workaround would be to set the ax parameters (facecolors, etc) where the canvas.axes objects are created, e.g. here and here.
@dstansby would it be acceptable for you to define the display parameters in the __init__ of the respective "end-user" widget definitions? Doing so would probably also close #36.


Cannot convert from AppiumOptions to DriverOptions() error when creating new AndroidDriver

The problem
I am using the documentation here to try and instantiate an AndroidDriver. However, I'm getting a compiler error saying "Cannot convert from AppiumOptions to DriverOptions() error when creating new AndroidDriver"
Environment

Appium version (or git revision) that exhibits the issue: 4.1.1
Last Appium version that did not exhibit the issue (if applicable):
Desktop OS/version used to run Appium:
Node.js version (unless using Appium.app|exe):
Npm or Yarn package manager:
Mobile platform/version under test:
Real device or emulator/simulator: Real device
Appium CLI or Appium.app|exe:

Details
I expect the code to compile and allow me to start an Appium session
Link to Appium logs
I don't think we need this as it's a compilation issue or a document out of date issue
Code To Reproduce Issue [ Good To Have ]
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Android;

DesiredCapabilities capabilities = new DesiredCapabilities();

capabilities.SetCapability("deviceName", "Android Emulator");
capabilities.SetCapability("platformName", "Android");
capabilities.SetCapability("app", "<Path to your app>");

AppiumDriver<AppiumWebElement> driver = new AndroidDriver<AppiumWebElement>(
                           new Uri("http://<IP_ADDRESS>:4723/wd/hub"),
                               capabilities);

Hi @nadvolod I have updated the documentation. Please make the required changes, and raise a new issue if you have a new issue.


Dynamic installation of extensions

Installation works without manual extensions needed. Disconnect currently doesn't block ads and the webview window shows overflow on start, no clue how to hide it.

Will review soon, further changes can be done in the meantime.


Search Custom CMR Keywords

enables searching via CMR keywords and format strings directly via cmr_keywords search option

Codecov Report
Attention: Patch coverage is 22.22222% with 14 lines in your changes are missing coverage. Please review.

Project coverage is 89.32%.  Consider uploading reports for the commit 8657e75 to get more accurate results

Files
Patch %
Lines

asf_search/ASFSearchOptions/validators.py
13.33%
13 Missing :warning:

asf_search/CMR/translate.py
66.66%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #277      +/-   ##
==========================================
- Coverage   89.84%   89.32%   -0.52%
==========================================
  Files          69       69
  Lines        2382     2399      +17
==========================================
+ Hits         2140     2143       +3
- Misses        242      256      +14

Flag
Coverage Δ

unittests
89.32% <22.22%> (-0.52%)
:arrow_down:

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

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


Proposal: Add new __construct helper for better ES5/ES6 class interop

I propose we add a new helper to assist with class instance construction runtime semantics when extending ES6 built-in classes while compiling with --target ES5.
Background
Our current emit for classes for --target ES5 assumes that the superclass follows the same runtime semantics as the classes we emit. Generally this means that the constructor can be called as a function via call() or apply(). However, a number of ES6 built-in classes are specified to throw when not used as a constructor (i.e. Promise, Map, etc.), and other ES6 built-in classes return a value when called, ignoring the this value provided to call() or apply() (i.e. Error, Array, etc.).
Previously we provided guidance for possible workarounds for this to support the latter scenario, but we do not currently have a solution for the former scenario.
Proposal
The following code listing describes a new __construct helper that we would need to emit for any file that contains an explicit (or implicit, for property declarations) super() call:
var __construct = (this && this.__construct) || (typeof Reflect !== "undefined" && Reflect.construct
    ? function (s, t, a) { return t !== null && Reflect.construct(t, a, s.constructor); }
    : function (s, t, a) { return t !== null && t.apply(s, a) || s; });

Benefits

Allows down-level class emit to extend ES6 built-ins if running in an ES6 host by feature detecting Reflect.construct.
Falls back to the existing behavior when running in an ES5 host.
Handles extends null and extends x when x is null in the same way as existing behavior.
Handles custom return values from super in the same way as existing behavior.

Drawbacks

Larger helper footprint
Subclassing a built-in in an ES5 host has different runtime semantics than subclassing a built-in in an ES6 host:

In ES5, subclassing Array or Error will not have the correct prototype chain. The only solution is to explicitly set the prototype chain using the non-standard __proto__ property as per established guidance.

Though it would add even more helper overhead, we could consider a best effort approach to address the subclassing drawback via __proto__:
var __construct = (this && this.__construct) || (typeof Reflect !== "undefined" && Reflect.construct
    ? function (s, t, a) { return t !== null && Reflect.construct(t, a, s.constructor); }
    : { __proto__: [] } instanceof Array
        ? function (s, t, a) { var p = s.__proto__, r = t !== null && t.apply(s, a) || s; return r.__proto__ = p, r; }
        : function (s, t, a) { return t !== null && t.apply(s, a) || s; });;

Trying to use native WebComponents with Typescript is not very ergonomic right now, since first we need to target es2015 (or any higher target) and then use babel, which supports this via babel/babel#7020.
I know that adding tons of specific settings might want to be avoided, but would it not be a minimal change to have a flag (e.g. useClassReflectConstruct), which always outputs Reflect.construct(...) instead of .apply(...)?
It would be simple to include a polyfill for Reflect.construct in es5 browsers and set this option in tsconfig.json to support using Web components and extending native objects without hassle.
There are three other issues open for the same feature. What is blocking progress on this? Is it something that could be added as a PR?

The problem with polyfilling to use Reflect.construct is that the this.constructor property must not be overwritten or otherwise hidden in any way; but this is the same caveat as the one needed to support new.target


Extract comodo engine version

The comodo engine version seems to be stored in /opt/COMODO/etc/COMODO.xml. This PR extracts the version from this file instead of using the hard coded string "1.1".
Explination
Comodo software versions are quite confusing to me. If you open cav and click about, it'll report the version as 1.1.268025.1 which is consistent to the content of the file /opt/COMODO/cavver.dat and this comodo forum thread: https://forums.comodo.com/comodo-antivirus-for-linux-cavl/comodo-antivirus-for-linux-cavl-v112680251-is-released-t92199.0.html.
In the file referred to above, you'll find the version "5.0.163652.1142" noted as AntivirusPro ProductVersion. This version is existent in the file created when you export your comodo configuration (cav => more => manage my configurations) as well. A google search reveals an existing cve for this comodo "version", see https://www.cvedetails.com/version/125322/Comodo-Comodo-Internet-Security-5.0.163652.1142.html.
I've no idea which version is the engine. My guess is, that 1.1.x is the version of the linux gui application and 5.x is the version of the engine. What do you think?

I agree with you.  This is great work! Thank you!! 👍


Fix Android fast pause/resume bug

Bug is there for like 8 years...
I can easily reproduce it by double clicking screen-lock button on Xiaomi mi4 and mi8.
For some reason when you instantly resume activity that hasn't fully paused then internally android stops trigerring onDrawFrame in GL thread what causes deadlock, cos synch.wait() needs notify from onDrawFrame.
It can be solved by executing what we need in GL Thread with GLSurfaceView#queueEvent. It doesn't have requirements like usual onDrawFrame calls from GLSurfaceView (f.e. frame cap, some synchronization etc).
There were multiple PRs that tried to fix this but were dirty hacks that use executors (that may cause pause to be ran from non-gl thread) or used another locking techniques on top of Java synchronized/monitors, that could reason in other deadlock.
Related PRs: #4267 #5696 and more

I didn't check in a real device but the logic seems good (and clean) to me.


Document how to translate our material widgets

Flutter's package:flutter_localizations provides translations for Flutter's material widgets. However, it will not support all of the world's languages out of the box. Instead, we provide API for developers to add missing translations.
On https://flutter.io/tutorials/internationalization/ we should add a section that explains how to do that.
This came up in the discussion over in https://github.com/flutter/flutter/issues/13482.
/cc @LarkAscending @Sfshaza @HansMuller

https://github.com/flutter/flutter/pull/12645 was intended to simplify adding translations for Material.
We could just migrate its example to the tutorial.

Hi there, just a heads-up: Flutter apps can be translated on Crowdin -- Crowdin supports localization of .arb files, has API/CLI, Github integration, and is free for open source projects.

That's good to know. Thanks for the tip!

Is this covered by https://flutter.io/docs/development/accessibility-and-localization/internationalization ?
Can this be closed and if anything is left out more concrete issues be files instead?
The recently merged PR #23850 might be relevant.

Ok with closing until we get specific requests.


Redux-Form with Modal

Issue description

components: Modal
reactstrap version 5.0.0-alpha.4
import method es (if umd, are you using the "full" version (only for v5+)?)
react version 16.2.0
bootstrap version 4.0.0
react-redux: 5.0.6,
redux-form": 7.2.3,
redux: 3.7.2,

What is happening?
The error below occurs when you have a redux form compenent inside of reactrap modal component.
I think the issue lies in the destroy function of Model.js
I think you need to add this._dialog = null;
If you don't when you show() again you render with a null this._element.
destroy() {
    if (this._element) {
      ReactDOM.unmountComponentAtNode(this._element);
      document.body.removeChild(this._element);
      this._element = null;
+     this._dialog = null;
    }

   ... omitted ...
}

What should be happening?
No error
Steps to reproduce issue
Put a react-redux form inside of a Modal. Open it, close, it then open it again.
I could be simply empbeding the form wrong, because i cannot reproduce the problem on a codepen.
Error message in console
Uncaught Error: Target container is not a DOM element.
    at invariant (:3001/static/js/bundle.js:35142)
    at renderSubtreeIntoContainer (:3001/static/js/bundle.js:183261)
    at Object.unstable_renderSubtreeIntoContainer (:3001/static/js/bundle.js:183375)
    at Modal.renderIntoSubtree (:3001/static/js/bundle.js:221599)
    at Modal.hide (:3001/static/js/bundle.js:221547)
    at Modal.togglePortal (:3001/static/js/bundle.js:221526)
    at Modal.componentDidUpdate (:3001/static/js/bundle.js:221467)
    at commitLifeCycles (:3001/static/js/bundle.js:176859)
    at commitAllLifeCycles (:3001/static/js/bundle.js:178027)
    at HTMLUnknownElement.callCallback (:3001/static/js/bundle.js:168623)
    at Object.invokeGuardedCallbackDev (:3001/static/js/bundle.js:168662)
    at invokeGuardedCallback (:3001/static/js/bundle.js:168519)
    at commitRoot (:3001/static/js/bundle.js:178131)
    at performWorkOnRoot (:3001/static/js/bundle.js:179098)
    at performWork (:3001/static/js/bundle.js:179048)
    at batchedUpdates (:3001/static/js/bundle.js:179167)
    at batchedUpdates (:3001/static/js/bundle.js:170411)
    at dispatchEvent (:3001/static/js/bundle.js:171502)

Code

I'm having the exact same error

Try latest version from master and provide codepen if still reproducing.

exact the same error, any progress?

I also had the same problem :(

@fantua sorry if it's a simple question, but how to try latest version from master?

Master does not build....
🚨   Error: 'Manager' is not exported by node_modules/react-popper/lib/react-popper.js
https://github.com/rollup/rollup/wiki/Troubleshooting#name-is-not-exported-by-module
src/Dropdown.js (7:9)
5: import PropTypes from 'prop-types';
6: import ReactDOM from 'react-dom';
7: import { Manager } from 'react-popper';
^
8: import classNames from 'classnames';
9: import { mapToCssModules, omit, keyCodes, deprecated } from './utils';

Seems like the recent update to react-popper broke the build (sorry). It's limited to v0.8.2 so I can build master locally by:
yarn add<EMAIL_ADDRESS>yarn build

Found a workaround for this @njbannister15 (or anyone else interested):
You can basically destroy the component after each render by using this (inside render):
return (

    {this.state.isOpen && <Modal isOpen={this.state.isOpen}>
         ...
    </Modal>}

);

You can use this as a workaround until this issue is really fixed.

You should try making an instance of an app and type the following code :- `ReactDOM.render(,document.querySelector('.container');'.