There is no explanation for constructor(props, context)

In chapter 1, you mentioned about constructor(props, context) {...} but there is no explanation why you use it.
According to the official example, they just use constructor(props) {...}
Is there any different? If so then why use it?
Thanks for reading my question

@PercyPham Good point and catch. I think we inherited context from the official example for next.js in material-ui repo. This argument is not needed indeed. But we forgot to remove it.
Let me push changes to the code.


I really want a clear document

em......

Felt like... duplicate of #7...?

"Want"? this is a free dump of code i worked on for something i needed for myself. If you want to use it, figure out how it worked, if you dont want to use it, go figure out one of the far more complicated libraries...


RocksDB keyMayExist

As we are often search for existence of key in our DB by multi-get and the result has more negative outputs then positive (key does NOT exist).  We should measure if the usage of
  // If the key definitely does not exist in the database, then this method
  // returns false, else true. If the caller wants to obtain value when the key
  // is found in memory, a bool for 'value_found' must be passed. 'value_found'
  // will be true on return if value has been set properly.
  // This check is potentially lighter-weight than invoking DB::Get(). One way
  // to make this lighter weight is to avoid doing any IOs.
  // Default implementation here returns true and sets 'value_found' to false
  virtual bool KeyMayExist(const ReadOptions& /*options*/,
                           ColumnFamilyHandle* /*column_family*/,
                           const Slice& /*key*/, std::string* /*value*/,
                           std::string* /*timestamp*/,
                           bool* value_found = nullptr) {

is not much better as it not getting any data

So my test case was DB date from mainnet and test was something like this


Key management improvements

Add error message when encrypted key is entered incorrectly.
If the key is complete but one letter is wrong, it will crash the app.
Add ability to export NEP6 file from login screen.
Enable itunes file sharing for NEP6 extraction

Will not add ability to export from login screen, instead we have two additional recovery measure. Adding the export from home page will make users confused/feel insecure because there is an export keys option available without authentication.
Instead we add two improvements

Enable file sharing via itunes to export nep6
Fallback on manual password entry if keychain has become corrupted somehow


Shared preferences

Codecov Report

Merging #5 (506522d) into main (9e942f5) will decrease coverage by 3.50%.
The diff coverage is 48.78%.

@@             Coverage Diff              @@
##               main       #5      +/-   ##
============================================
- Coverage     63.68%   60.19%   -3.50%
- Complexity       25       26       +1
============================================
  Files             7        8       +1
  Lines           179      206      +27
  Branches          7        7
============================================
+ Hits            114      124      +10
- Misses           56       72      +16
- Partials          9       10       +1

Impacted Files
Coverage Δ

...intervaltimer/core/data/TimerSettingsRepository.kt
0.00% <0.00%> (ø)

...s/intervaltimer/core/utils/CountDownTimerHelper.kt
0.00% <0.00%> (ø)

...intervaltimer/core/viewmodels/SettingsViewModel.kt
82.00% <78.57%> (+1.51%)
:arrow_up:

...anosantos/intervaltimer/core/utils/TimeFormater.kt
83.33% <80.00%> (-16.67%)
:arrow_down:

...anosantos/intervaltimer/core/data/TimerSettings.kt
100.00% <100.00%> (ø)

...os/intervaltimer/core/viewmodels/TimerViewModel.kt
82.05% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


If the DNS record is not around for destroy the script throws an error

INFO:libcloud.common.google:Failed to read cached auth token from file<EMAIL_ADDRESS>[Errno 2] No such file or directory<EMAIL_ADDRESS>INFO:root:Looking up zone
INFO:root:Looking up DNS record console.spousty.gce.pixy.io.
Traceback (most recent call last):
File "../main.py", line 11, in
openshifter.cli.cli()
File "/usr/lib/python3.6/site-packages/click/core.py", line 722, in call
return self.main(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/usr/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/lib/python3.6/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/lib/python3.6/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/root/openshifter/cli.py", line 82, in destroy
driver.destroy(cluster)
File "/root/dns/google.py", line 38, in destroy
record = self.get_record("A", name)
File "/root/dns/google.py", line 48, in get_record
return self.dns.get_record(zone.id, "%s:%s" % (type, name))
File "/usr/lib/python3.6/site-packages/libcloud/dns/drivers/google.py", line 149, in get_record
record_id=record_id)
libcloud.dns.types.RecordDoesNotExistError: <RecordDoesNotExistError in <libcloud.dns.drivers.google.GoogleDNSDriver object at 0x7f77bc3d7518>, record_id=A:console.spousty.gce.pixy.io., value=>

Thas has been fixed already, possible you are using older version?

My mistake, found it


Prevent users to upload new spectra on to published datasets

Describe the bug
If you go to to the "datasets" tab in the study, and upload a file there, you can see the spectrum, but then you can't save it and if you switch to another tab, it disappears.
Screenshots

Needs to be resolved at nmrium side - https://github.com/cheminfo/nmrium/issues/1585

There is no field to upload more spectra in the datasets tab anymore neither in the public nor private projects. However, it is still possible to upload spectra in the private ones from "files" tab, which is the intended function


update links to new website and remove tutorial link

Do check that the urls are changed correctly here (I tested this by trial and error and I was not previously familiar with using a hashtag to get to a certain part of a webpage)

(credit to Sam Greene for pointing out that the links were no longer working)

I have done a further update.
Is the TBLIS link in the example that I modified here still uptodate? It is a different one to the one in the install guide.

The link in your PR is up to date


Add extra protection for non-set images

Makes doubly sure default images are set
Many thanks for submitting your Pull Request :heart:!
Please make sure that your PR meets the following requirements:

[ ] You have read the contributors guide
[ ] Pull Request title is properly formatted: FAI-XYZ Subject
[ ] Pull Request title contains the target branch if not targeting main: [0.3.x] FAI-XYZ Subject
[ ] Pull Request contains link to the JIRA issue
[ ] Pull Request contains link to any dependent or related Pull Request
[ ] Pull Request contains description of the issue
[ ] Pull Request does not include fixes for issues other than the main ticket

/test trustyai-explainability-e2e


feat: random notes

Close #113

Thanks for the PR, @hisamafahri! I'll take a closer look tomorrow

I'm a little worried that adding this extra button makes the search input too narrow on mobile, but let's try it out and see if feels cramped in practice.


Footer is isgnored

Hi,
My context is

Asciidoctor PDF 1.5.0.alpha.17 using Asciidoctor 2.0.9
Ruby 2.5.1p57 (2018-03-29 revision 63029)

I have a pretty simple document and this theme configuration
base:
  font_size: 10
  font_size_large: $base_font_size * 1.25
  font_size_small: $base_font_size * 0.85

footer:
  recto:
    right:
      content: '{page-number}'

The theme is taken into account because font size change according to setting.
But the footer is still ignored.
Am I doing wrong or missing something ?
Thanks

I precise the used command, for a given theme called ias-theme.yml i a given foled named styles/
 asciidoctor-pdf -v -a pdf-stylesdir=./styles -a pdf-style=ias quality.adoc

Maybe I miss something into the custom theme creation. As I understood, I have just to override default keys from default-theme.yml with my own keys. That's right.
PS: my final will is to produce this kind of header table shown in a discussion with @mojavelinux  https://twitter.com/cramTeXeD/status/941031740705042432
Yes, I still trying to use Asciidoc, I have faith in it :)

You must set a height. Otherwise, the running content will be disabled. This is documented in the following section of the theming guide (see note 2). https://github.com/asciidoctor/asciidoctor-pdf/blob/master/docs/theming-guide.adoc#keys-running-content

Ok, it works nicely. I have missed the note 2.
Maybe a little sample at the the bottom of this section may help ?
Thanks @mojavelinux

Glad to hear it!
What I might do is bold the note and also mention it the intro of the section. That way, you know to watch out for it.
I'll also include it in the basic theme example since it doesn't hurt to include and makes it more copy-paste friendly.


ColorChooser does not closing selection modal on Apply or Close action

Latest version

[X] I have tested the latest version

Description
When we clicked the color button to change the color, the selection modal opened, and we changed the color. Then, if we click the "Close" or "Apply" button, the selection modal does not close.
It only works if we click outside of the selection modal.
Steps to reproduce
Render ColorChooser component open a selection modal, select a collor and click close or Apply.
Expected behavior
The selection modal should be closed after Applying chnages or clicking on close.

[X] I am an employee of JPMorgan Chase & Co.

Lab components that are not listed on Salt website are not receiving active development. So this is low priority for us. Any PR is welcome.

Buttons were broken from #2735 when open is no longer controlling Overlay. To better align with Overlay's composable API, ColorChooser may be disassembled into multiple pieces, like #3716. So controlling panel open falls into user's hand.

If someone needs it, you can create a custom solution to have ColorChooser by using ColorPicker wrapped in the Overlay.
          <Overlay placement="bottom" open={open} onOpenChange={onOpenChange}>
            <OverlayTrigger>
              <Button>
                <div
                  className={classNames(withBaseName("overlayButtonSwatch"))}
                  style={{
                    backgroundColor: field.value,
                  }}
                />
                <div className={withBaseName("overlayButtonText")}>
                  {field.value}
                </div>
              </Button>
            </OverlayTrigger>
            <OverlayPanel aria-labelledby={fieldId}>
              <OverlayPanelCloseButton onClick={handleClose} />
              <OverlayPanelContent>
                <ColorPicker
                  disableAlphaChooser={false}
                  onChange={handleChange}
                  onDialogClosed={() => {}}
                  color={Color.makeColorFromHex(field.value)}
                />
              </OverlayPanelContent>
            </OverlayPanel>
          </Overlay>
        </div>```


Migrate vivit tutorial to Keras3(all backends)

Migrate 'vivit' tutorial to Keras3(all backends).
Dependency with tensorflow for data preprocessing.
Tested with torch and tensorflow backends and works fine as per torch-gist and tf-gist.
Please find git diff file below.
vivit_git-diff.txt

Closing this, since the tutorial is already merged here https://github.com/keras-team/keras-io/pull/1724.
Thanks for the PR

Hi @sachinprasadhs
I have tested the latest merged code. The merged code seems not working with torch backend as per attached torch-gist. Its working with tf only which is default backend.
Could you please cross check once with torch backend. Thanks!

@sachinprasadhs ,
Updated the tutorial with latest merged code and tested with all backends also.
May refer gist for jax, tensorflow & torch.

Your branch stills seems to be behind the master branch for the files you modified, could you please make the changes to the updated files to avoid below conflicts.
Conflicting files
examples/vision/ipynb/vivit.ipynb
examples/vision/md/vivit.md
examples/vision/vivit.py

Resolved the conflicts.

Fresh PR#1739 done for this due to merge conflicts.


Add NixOS

:3
need arch user to confirm NAME in /etc/os-release
flake status: i forgot to add default.nix :skull:

Thank you for your contribution. While I am not deeply familiar with Nix, I will proceed with the assumption that your changes are appropriate.

Here is the output of os-release on my system. I believe this should be consistent across all Arch installations.
I will test this pr and ensure it still functions properly on arch.

here's an example /etc/os-release on nixos for posterity. nixos changes are currently broken so i will be force pushing fixes (to nix code only) later
ANSI_COLOR="1;34"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="24.11.20240719.1d9c2c9"
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 24.11 (Vicuna)"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="24.11 (Vicuna)"
VERSION_CODENAME=vicuna
VERSION_ID="24.11"

Tested and it works fine on arch. If you think nix support will take time I could merge this and you can work on that on another pr. That way I can keep working from the clap changes

flake just finished building successfully!


Replace dots with forward slashes in fully qualified hub device names

Example, replace Headstage64.Rhd2164 with Headstage64/Rhd2164

We might want to provide a helper method to combine headstage and device paths.


Add Carthage instructions and compatibility badge

Preview of the README changes:

Installation
Drop in the Spring folder to your Xcode project.
CocoaPods:
use_frameworks!
pod 'Spring', '~> 1.0.3'

Carthage

in your Cartfile
github "MengTo/Spring" ~> 1.0.3

More info about Carthage

Ping @MengTo

+1 @MengTo


Emphasized columns styling

Fix #68
Test URLs:

Before: https://main--delta--hlxsites.hlx.page/drafts/asthabharga/us/en/skymiles/how-to-earn-miles/exception-fares
After: https://issue-68--delta--hlxsites.hlx.page/drafts/asthabharga/us/en/skymiles/how-to-earn-miles/exception-fares

Note: I have kept the width of two parts of column equal on Franklin site (between 768px and 992px) keeping it better visually, in comparison to how it is on original site. Sharing attachments below:
Franklin implementation:

Original site:


Feature/dependency

Support load manual depedency in "charts" folder …
Refactored Serialize()
Add a static method named LoadFrom

@panyang1217 If you're still interested in this, can your rebase this on master? That should fix the CI error. Thanks!


Support for this to allow checks on resources with themselves as the subject

There are some certain scenarios where we want to check a subject against itself as the resource, for example:
definition user {
  relation manager: user
  permission view_paystubs = manager + <the user themselves>
}

We would want to have checks for this pass:
check(user:user_id, view_paystubs, user:user_id)
We should discuss adding some kind of keyword to the schema language which allows a permission to refer to the subject itself without an explicit relationship.
As a workaround, for now, we can write an extra relationship between a resource and itself.
definition user {
  relation manager: user
  relation myself: user
  permission view_paystubs = manager + myself
}

user:user_id#myself@user:user_id

(Very rough) outline of tasks if this were to be added:

[ ] Determine keyword to use.
[ ] Ensure the keyword is not being used in any relation, type or permission names
[ ] Add keyword to schema on backend
[ ] Add keyword to schema on frontend
[ ] Add support for new construct in https://buf.build/authzed/api/docs/main/authzed.api.v0#authzed.api.v0.SetOperation.Child (NOTE: the existing _this is something different)
[ ] Add dispatcher support for the new construct
[ ] Add consistency tests for the new construct

My project would also benefit from a subject being able to check itself.
I have an organization and a user definition in my model, and I need to model an edit permission on a user. The only people that should be allowed to edit a user's profile are:

The user themself
An administrator.

To do this, I've added a self relation on user which I need to keep up to date in my application, but if spicedb had a built-in relation for this that would be more elegant.
Here's the relevant part of schema that I use to achieve this right now:
definition user {
    relation self: user
    relation viewer: user
    relation organization: organization

    permission edit = self + organization->create_user
    permission view = viewer + edit + organization->member
}

definition organization {
	relation admin: user
	relation direct_member: user
	permission member = admin + direct_member

	permission create_user = admin
}

Regarding the name for the built-in relation, I'd prefer something that starts with an underscore to avoid potential collisions with existing schemas. My first choice would be _self, but I'm flexible.
BTW, you're all doing amazing work on authzed. It's come so far since I first discovered it. Thank you! :slightly_smiling_face:

It occurs to me that we might want to have self or this always refer to the subject of the top level request. That way you could to things like:
definitions org {
  relation admin: user
  permission remove_admin: admin - self
}

A an admin can remove any admin except themselves.
I can't come up with a use case where we would want access to the org object instead, since the subjects for other branches are all going to boil down to something that's likely not an org.

Any update on whether or not this will be supported? It would be nice to use a this or self in the following example:
definition user {
    permission user_can_view_some_private_info = this // "this" could be replaced with "self" or something that points back to the user doc
}

Voting on potential names, please respond in emojis:
1⃣ this
2⃣ self
3⃣ Something else: please offer the suggestion

Voting on potential names:

this
self
Something else: please offer a suggestion

1⃣ (this)
Also an interesting read, if you are looking for any deeper meaning behind the choice - https://en.wikipedia.org/wiki/This_(computer_programming)

I vote for self, seems more intuitive as we talking about users rather then things.

PR for self keyword: https://github.com/authzed/spicedb/pull/1511

reopening this as we reverted the change until we come up with a way to facilitate the roll out

Throwing ideas out there (probably already considered) to hopefully support progress on this:

Allow overloading reserved identifier. ie if self is defined as a relation, self in permissions should refer to this relation rather than the identifier.

Nice for backward compatibilty, adds complexity to the language. Potentially a footgun.

Use a reserved grammar for built-in identifier, eg $self where $ isn't allowed in user-defined identifiers.

It does complexify the language grammar.

Make it a breaking change, leave it to users to deal with.

Not very friendly, wouldn't support this idea

Other options currently being considered:

If self is used as a relation, keep supporting that. Otherwise, parse using the newer parser and fallback as necessary
Add a version whatever; at the top of schema for new versions
Add a version 1.0; at the top of schema for old versions

My personal opinion is #1, but it won't be "obvious"

Schema versions or "features/imports" sound better to me than having no full reverse compatibility with future server versions.


Link to the correct tutorial

The tutorial link is wrong, and does not link to the next step in this tutorial series.

@cenh : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@cenh - Thanks for catching and correcting this!
#sign-off

@Jak-MS : Thanks for your contribution! The author(s) have been notified to review your proposed change.


added discord.com to regex.

PULL REQUEST
Overview
PR description/overview (changes introduced, implementation justification if needed, enhancement this PR brings...).
Status

[ ] Typings have been updated or don't need to be.
[ * ] This PR have been tested and is ready to be merged.

Semantic versioning classification

[ ] MAJOR: This PR introduces BREAKING changes (direct API change).
[ * ] MINOR: This PR adds new features, improve the code and/or implies minimal API changes.
[ ] PATCH: This PR fixes a bug, if needed it also references the relevant issue or documentation.
[ ] PATCH: This PR improve performance or code refactor without API changes.
[ ] PATCH: This PR only includes non-code changes (documentation, style, CI, tools...).

If you really want to change the examples, you should also change the eris example.
Also since discord entirely switched to discord.com, you can entirely change discordapp to discord instead of adding it.

Also please, do this PR FROM the dev branch TO the dev branch.

Not entirely sure on how to do so; I'm not really a regular github user, some of github is new to me.

Also please, do this PR FROM the dev branch TO the dev branch.

I guess here you don't have any other choice than just closing and reopening.
work on the dev branch on your fork, and open a PR from your dev branch targetting this repo dev branch


add Jenkinsfile

Submisison Checklist

[x] Run tests: ./runCmdStanTests.py src/test
[x] Declare copyright holder and open-source license: see below

Please list the copyright holder for the work you are submitting (this will be you or your assignee, such as a university or company): Columbia University
By submitting this pull request, the copyright holder is agreeing to license the submitted work under the following licenses:

Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

I killed the old style Jenkins build in favor of the new one, which passed. Once this is merged I'll delete the two old jobs. The new ones are shown here and have a nicer GUI I think:
http://d1m1s1b1.stat.columbia.edu:8080/job/CmdStan Pipeline/view/change-requests/


Real time price

Hi folks, can you tell me how can i get the real time price of one product, for example APPLE?
I only can see the closing price.
Thank you

Im not sure but when you ask for your positions, you can get the prices.
El sáb., 6 jun. 2020 12:38, jaspspain<EMAIL_ADDRESS>escribió:

Hi folks, can you tell me how can i get the real time price of one
product, for example APPLE?
I only can see the closing price.
Thank you
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/lolokraus/DegiroAPI/issues/6, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACS4CSSZ7KDNYN4FHM4MQ6DRVIMBXANCNFSM4NV3IWUA
.

Thanks for your fast answer :)
I really want to know the actual prices from products that aren't in my portfolio.
i want to know the actual price from APPLE for example but i dont have any open positions.

Yes, I have the same problem. This is just a workaround. Lets hope
lolokraus can make it. Regards :)
El sáb., 6 jun. 2020 13:46, jaspspain<EMAIL_ADDRESS>escribió:

Thanks for your fast answer :)
I really want to know the actual prices from products that aren't in my
portfolio.
i want to know the actual price from APPLE for example but i dont have any
open positions.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/lolokraus/DegiroAPI/issues/6#issuecomment-640046337,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACS4CSUMEX2JZGG3R6MX5ZTRVIUBHANCNFSM4NV3IWUA
.

Yesterday I tried to get the real time price without success. Lolokraus, it can be possible to get this data? It's very important to program any automatic trading system using this api.
Thank you in advance. Regards from Spain :)

Yesterday I tried to get the real time price without success. Lolokraus, could it be possible to get this data? It's very important to program any automatic trading system using this API.
Thank you in advance. Regards from Spain :)

Buenas bricomatica, veo que eres español también.
Yo estoy intentando lo mismo y de momento no se puede... Estoy sacando los valores en tiempo real de una web y enlazándoos con las ordenes que le mando a Degiro.
Si descubres como hacerlo, agradecería que me lo dijeras ;)
Un Saludo!

Yesterday I tried to get the real time price without success. Lolokraus, could it be possible to get this data? It's very important to program any automatic trading system using this API.
Thank you in advance. Regards from Spain :)

Buenas bricomatica, veo que eres español también.
Yo estoy intentando lo mismo y de momento no se puede... Estoy sacando los valores en tiempo real de una web y enlazándoos con las ordenes que le mando a Degiro.
Si descubres como hacerlo, agradecería que me lo dijeras ;)
Un Saludo!
Hola! Me alegra ver un compatriota por aquí :)
De momento solo se puede obtener el precio de cierre, pero ese no sirve para hacer trading en condiciones.
Si encuentro alguna forma, descuida que lo pondré aquí.
Si me pudieras decir cómo haces para sacar los valores de esa web, te lo agradecería mucho.
Y si te apetece charlar sobre sistemas de bolsa, encantado también. Yo le pego a las opciones sobre el SP500. Mi email es<EMAIL_ADDRESS>Saludos!

@lolokraus Want your opinion on this before I see if I can do this.
I don't see a degiro.nl endpoint that returns the real time price. The product_info function returns a "vwdIdSecondary" ID which can be used to fetch a https://charting.vwdservices.com/hchart/v1/deGiro/data.js? endpoint which contains a "lastPrice" key. Question is, do you want to have a reliance on a non-DeGiro URL?

Getting the real time data for products would be a huge improvement to this API and I tried to implement it already, but as @SilageTime already correctly pointed out, there seems to be no endpoint from degiro that returns the real time product data.
But I think if we get it to work through https://charting.vwdservices.com/hchart/v1/deGiro/data.js? it would be an equally good solution!
As a second solution, I have seen many repositories getting real time data though https://finance.yahoo.com/. Such as https://github.com/ranaroussi/yfinance or https://github.com/JECSand/yahoofinancials.

I have added a function to get real time data and historical data for a product. But I don't want to close this issue yet because I have run into some problems while testing, where the real time data of this API was lacking behind the data shown on the website, without any reason. So if you also experience such problems report them to me and any help in fixing them is appreciated!

@lolokraus do you know this implementation here - this seems rather complete (have not used it though):
https://www.programcreek.com/java-api-examples/?code=indiketa%2Fdegiro-java-client%2Fdegiro-java-client-master%2Fsrc%2Fmain%2Fjava%2Fcat%2Findiketa%2Fdegiro%2FDeGiroImpl.java
if you look in the file DeGiroImpl.java there is:
public void setPricePollingInterval()
public void setPriceListener()
So i guess you have to subscribe a price listener somehow to this vwdSession to get the real time prices - it also looks like that in the degiro webclient. There is the normal chart with historical data and then there is "real time" price display shown extra.

@lolokraus I am trying to get the real time data via your example program but I got the following error:
Traceback (most recent call last):
File "./degiro", line 70, in
realprice = degiro.real_time_price(Product(products[0]).id, degiroapi.Interval.Type.One_Day)
File "/home/tobie/.local/lib/python3.8/site-packages/degiroapi/init.py", line 235, in real_time_price
return self.__request(DeGiro.__PRICE_DATA_URL, None, price_payload,
File "/home/tobie/.local/lib/python3.8/site-packages/degiroapi/init.py", line 79, in __request
response = requests.get(url, params=payload)
File "/usr/lib/python3/dist-packages/requests/api.py", line 75, in get
return request('get', url, params=params, **kwargs)
File "/usr/lib/python3/dist-packages/requests/api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 514, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='charting.vwdservices.com', port=443): Max retries exceeded with url: /hchart/v1/deGiro/data.js?requestid=1&period=P1D&series=issueid%3A330001938&series=price%3Aissueid%3A330001938&userToken=843544 (Caused by SSLError(SSLError(1, '[SSL: WRONG_SIGNATURE_TYPE] wrong signature type (_ssl.c:1108)')))

What sourcery is Degiro using for real time data?? I can only see the traffic using low level network capturing tools, but nothing in Chrome or Mozzila dev tools. I thought I know how web works :)

@lolokraus ; I tried to us the realtime price feature (which would be a great improvement on this very nice API), but it does not seem to work. I am getting the following error:
""
File "/Users/user/Desktop/Python/DegiroAPI-master-2/GiRoTeSt.py", line 52, in
realprice = degiro.real_time_price(Product(products[0]).id, degiroapi.Interval.Type.One_Day)
AttributeError: 'DeGiro' object has no attribute 'real_time_price'
""
Your advice please.
KR
JJ

Hi all,
This API is great, but two problems with this task are as follows:

Degiro only provides real-time data for a given exchange if you pay the subscription fee for the exchange, it sucks given you can get the information for free via google search.
I messed around with a few of the APIs, both Yahoo and Alpha vantage, but they are typically 15 minutes behind, just as Degiro.

Things that kind of work
I did try and do something super hacky, as the google finance API no longer works, but has recently been added to Google Sheets and provides almost real-time info. So, what you can do is use the google sheets API, I was using the python-based version, and send requests for a given ticker and write it in the spreadsheet, you then have another function read it at a given cell. I like things for free, but this is really hacky and definitely not a nice way to do things.
Other issues ( not with the API)
Another issue I am facing is many ETFs look-up tables on Yahoo finance and Alpha vantage use the Reuters tickers. For example, .MI is appended to an EFT if they were brought on the Milan stock exchange. This creates issues when using as there can be slight discrepancies in prices between exchanges - arbitrage.
I could correct for this, if I knew the exchange-ids mapping, from ints to exchange name, as this returns a numeric value .i.e. 663 corresponds to NASDAQ - this was done manually. I could do aspects of this manually, but, it would be really nice to have a dictionary of key-value pairs, and then I could automatically append the ETF ticker, to create the Reuters ticker, that I can then use with either Alpha-vantage, Google sheets, or Yahoo finance.
I know I could keep requesting to Degiro to get this information, but a 15-minute time-lagged is large and when you place an order you are buying at the market time, not the price they show you one the application, which can fluctuate a lot with stocks.
I mainly want this for tracking purposes so I can track things in real-time, backtest and apply ML methods in an automated fashion for inference.
Happy to help with this issue though and with building out this API.

Dear @lolokraus , i'm having some issue with realtime prices of products that have the parameter 'vwdId' as a string and not like a int, an example is CME MES future (name of the product "MES 18DEC20" its  'vwdId' is  'MES.CM.012,F'). For this type of product no ['vwdIdSecondary'] is available. there for at line 224 of init.py and then line 226 an error is issued. Ty for your efforts

After looking for a while, to get the real-time price of a stock, I don't look at what the js returns (which is not part of degiro in effect) but I look at what the index returns to him. even, it is formed strangely but we see that it returns the graph. I grant you there is a slight delay, but for my stratum which consists in gradually increasing the stop loss it passes ...

I have added a function to get real time data and historical data for a product. But I don't want to close this issue yet because I have run into some problems while testing, where the real time data of this API was lacking behind the data shown on the website, without any reason. So if you also experience such problems report them to me and any help in fixing them is appreciated!

@lolokraus I think this is due to the following: An initial data request is retrieved which contains indeed the 'lastPrice' field, but they also start a service worker which updates prices. It can be seen if (if you use Chrome) using chrome://inspect/#workers and then under Shared workers. When inspecting this worker you can see it starts a vwd session and posts control data after which every second or so new prices are requested and I think afterwards updated on the page.

I've read all Degiro terms and conditions and it's explicitely told that Vwd guaranties realtime data for degiro application and client is aware of it. Theirs Infront structure is quite robust and it can definitely be relied on.
So anything from vwdservices.com with vwdsessionid is fine.
As mentined before inideta degiro-java-client, i'm currently looking at it and hopefully i can add same realtime price, bid, ask, volume support to this api.

I've read all Degiro terms and conditions and it's explicitely told that Vwd guaranties realtime data for degiro application and client is aware of it. Theirs Infront structure is quite robust and it can definitely be relied on.
So anything from vwdservices.com with vwdsessionid is fine.
As mentined before inideta degiro-java-client, i'm currently looking at it and hopefully i can add same realtime price, bid, ask, volume support to this api.

This issue seems to have appeared in the last day also.
This is the stacktrace
realprice = self.degiro.real_time_price(Product(products[0]).id, degiroapi.Interval.Type.One_Day)

File "/usr/local/lib/python3.7/dist-packages/degiroapi/__init__.py", line 221, in real_time_price
    vw_id = self.product_info(product_id)['vwdId']

KeyError: 'vwdId'


Dashboard improvements

Fixes:

#2125
#2118
#2126
#2127
#2133
#2128
#2134

@appleseed-iii this is ready to go. Can be merged after the gOHM toggle #2108 PR


Create a getting started guide

The guide should consist of at least two parts:

For controller developers
For end users installing controller on the cluster and integrating it with their CI/CD flow

Done.


Awesome mentioned in a science journal

Leaving it here in case anyone is interested in reading it:
The appropriation of GitHub for curation

GitHub is a widely used online collaborative software development environment. In this paper, we describe curation projects as a new category of GitHub project that collects, evaluates, and preserves resources for software developers.

We investigate:

what motivates software developers to curate resources;
why curation has occurred on GitHub;
how curated resources are used by software developers; and
how the GitHub platform could better support these practices.

We conduct in-depth interviews with 16 software developers, each of whom hosts curation projects on GitHub. Our results suggest that the motivators that inspire software developers to curate resources on GitHub are similar to those that motivate them to participate in the development of open source projects. Convenient tools (e.g., Markdown syntax and Git version control system) and the opportunity to address professional needs of a large number of peers attract developers to engage in curation projects on GitHub. Benefits of curating on GitHub include learning opportunities, support for development work, and professional interaction. However, curation is limited by GitHub’s document structure, format, and a lack of key features, such as search. In light of this, we propose design possibilities to encourage and improve appropriations of GitHub for curation.

Feel free to discuss it below if desired.

https://github.com/wtgtybhertgeghgtwtg


Fix speedtest for s3

Previously, toMap() can produce configurations with values set to null, which causes errors when parsing the configuration.
Now we use a safer getMountSpecificConf to obtain the configurations that we need.

@yuzhu is a test easy to write for this?

Codecov Report

Merging #12786 (e8c3d8b) into master (33b564b) will decrease coverage by 28.04%.
The diff coverage is 0.00%.

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

alluxio-bot, merge this please

alluxio-bot, cherry-pick this to branch-2.4 please


ContextSearch - when activating search make text in input selected (highlighted)

Make text in input field selected when triggering dropdown.

Closing this since it conforms to standard text input where text is highlighted when focused by keyboard, when focus by click the input is active at the position of click.


feat: search_service/config: fail on bad AWS ES config

When trying to set up the AWS Elasticsearch Config for the search service, if you don't have all the nessescary configuration values populated (host, region, credentials) the service will still set up properly but the client will be None. This commit changes the flow AwsSearchConfig to fail if all the values aren't populated which will result in the service not starting up and throwing this error properly that is a lot easier to debug. Without this, it is a bit of a rabbit chase to figure out why you can't connect to AWS ES.

Summary of Changes
When trying to set up the AWS Elasticsearch Config for the search service, if you don't have all the nessescary configuration values populated (host, region, credentials) the service will still set up properly but the client will be None. This commit changes the flow AwsSearchConfig to fail if all the values aren't populated which will result in the service not starting up and throwing this error properly that is a lot easier to debug. Without this, it is a bit of a rabbit chase to figure out why you can't connect to AWS ES.
Tests
I did not add any tests since this is a small control flow change and there isn't a config_test.py. If contributors feel like I should add one let me know and I can!
Documentation
I added a blurb to the comment for AwsSearchConfig noting that you must have all of the configuration values populated for the start up will fail.
CheckList
Make sure you have checked all steps below to ensure a timely review.

[X] PR title addresses the issue accurately and concisely. Example: "Updates the version of Flask to v1.0.2"

In case you are adding a dependency, check if the license complies with the ASF 3rd Party License Policy.

[X] PR includes a summary of changes.
[X] PR adds unit tests, updates existing unit tests, OR documents why no test additions or modifications are needed.
[X] In case of new functionality, my PR adds documentation that describes how to use it.

All the public functions and the classes in the PR contain docstrings that explain what it does

@jroof88 could you fix the DCO (git commit --amend --no-edit --signoff) ?

@jroof88 could you fix the DCO (git commit --amend --no-edit --signoff) ?

Neat! Done!

Looks like there actually is a test out there for this. Fixing.

@feng-tao Tests are all cleaned up. Had to add an ENV var to pytest configuration. This is ready for another pass.

thanks @jroof88 !

@jroof88 - Can you elaborate on the intended behavior here? As far as I can see(and test), with this implementation any import of the config module would raise an exception if AWS_REGION is not set or credentials are missing, even if there is no intention to use AWS at all?

@jroof88 - Can you elaborate on the intended behavior here? As far as I can see(and test), with this implementation any import of the config module would raise an exception if AWS_REGION is not set or credentials are missing, even if there is no intention to use AWS at all?

Running into this exact issue myself. This seems like problematic behavior, as any non-AWS based setup is now broken by default.

@jroof88 - Can you elaborate on the intended behavior here? As far as I can see(and test), with this implementation any import of the config module would raise an exception if AWS_REGION is not set or credentials are missing, even if there is no intention to use AWS at all?

@jroof88 , I am having this issue as well. Can you please help fix this?

I propose to just revert this PR. I don't think that there is much that can be improved over previous iteration - when using AWS config you need to make sure that you have set up every env variable (hence all(...) condition).
The way Python classes work is that if the code is not within class function it's always executed. That's why we cannot build such  strict/demanding flows in config classes.
This doc:
  You MUST have the environment variables AWS_REGION and PROXY_ENDPOINT populated and boto3 must be able to get
  credentials out of whatever environment you are running in. If any of these values turn out to be empty the config
  will fail and the service will not start up.

is true not just for the config but for amundsen in general.

sorry didn't catch this issue during review, let's revert the commit to unblock.

also the change should handle if you use AwsSearchConfig or no?


Updated Example to correct the code.

Correct code should be like below:
Dim FirstDate As Date    ' Declare variables.
Dim IntervalType As String
Dim Number As Integer
Dim Msg As String
IntervalType = "m"    ' "m" specifies months as interval.
FirstDate = InputBox("Enter a date")
Number = InputBox("Enter number of months to add")
Msg = "New date: " & DateAdd(IntervalType, Number, FirstDate)
MsgBox Msg

Code sample corrected.

Variable Msg was not declared correctly.
";" in code Msg = "New date: " &; DateAdd(IntervalType, Number, FirstDate) was throwing error.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

VBA/Language-Reference-VBA/articles/dateadd-function.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

VBA/Language-Reference-VBA/articles/dateadd-function.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


New stack

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

azurestackps-1.3.0/Azs.Subscriptions.Admin/Set-AzsUserSubscription.md
:white_check_mark:Succeeded
View (azurestackps-1.3.0)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Support $merge to combine properties from multiple schemas

Sometimes, I don't want to wrap the properties from a $ref inside a new property, but would like to mix-them-in. Is this supported? If not, could it perhaps be?
For example:

This creates a new property "test, which references ViewTest.

"properties":{
    "test":{
        "$ref":"../tests/ViewTest.schema.json",
        "description":"Reference to a test"

    }
},

A mixin variant perhaps like this (Not wrapped in "properties"),

    "test":{
        "$ref":"../tests/ViewTest.schema.json",
        "description":"Reference to a test"

    }

...would produce the properties van ViewTest directly as members in the target class.
Hope, My question is sufficiently clear :-)
Thanks for this great project!

Hi, I'm not sure I understand what you're proposing here :)
You have a property on an object called 'test' and the schema for its values is in ../tests/ViewTest.schema.json. So instead of having a property on the object, what exactly do you want  in the mixin example?

Ok, I guess, the reference, shoudn't be wrapped in a propery "test"
so perhaps something like this:
"javatype":"ClassWithMixedInProperties"
"mixin":{
"$ref":"../tests/ViewTest.schema.json",
"description":"Reference to a test"
}
so here...the properties from ViewTest would become properties of ClassWithMixedInProperties.
The class ViewTest would disappear from ClassWithMixedInProperties altogether, as we are only interested to mixin it's props.
perhaps an even better syntax would be:
"javatype":"ClassWithMixedInProperties"
"properties":{
"irrelevant":{
"$mixin":"../tests/ViewTest.schema.json",
"description":"Reference to a test"
}
}
does it make sense? If not I will work out the java to make it 100% clear.

Ah, so you'd effectively like to merge two schemas together?
We don't support it, but this is how I'd like to support allOf. Simple gather together all the schemas specified, deep merge them together then generate a type from the result.

yes, merging indeed. so with some degree of control where would allOf appear in a jsonschema?

fyi, this is also part of a change that's being suggested for draft5 of json schema.  A new "merge" keyword.

Thanks @brentryan, I'm going repurpose this ticket slightly as I think $merge is the way to go if we do want to implement this.

Since it looks like $merge has not made it into draft 5 or 7, is there any intention to support the current recommended what to merge subschemas using allOf?

Closing this as $merge was not a successful addition to JSON Schema.


Add tile_animation_sync option:

to tile animation properties
when true (default) all animations of that type will start at first frame of animation.
when false all animations of that type will start at random frame of animation.

sorry i accidentally merged and/or messed up that branch somehow ok to make a new request? sorry. thanks.
replaces: https://github.com/godotengine/godot/pull/77255
this adds a sync option that is on by default just above separation
if turned off all animations of that type will start at random frame instead of 0
to address my recent issue and proposal
https://github.com/godotengine/godot-proposals/issues/6856
https://github.com/godotengine/godot/issues/57677
thanks.
Bugsquad edit: This closes https://github.com/godotengine/godot-proposals/issues/6856.

That position in list of tile properties was arbitrary and maybe not best spot?
Should I move to end or somewhere else... maybe fine?
Not sure I understand the merge error:
"If a diff is shown, it means that your code/doc changes are incomplete and you should update the class reference with --doctool."
Seems to be diffing with self since it was not there before, and I don't see any real diff? idk
I need to run doctool locally? Naw I did not do that last time I changed docs for tween?
Thanks for help.

That position in list of tile properties was arbitrary and maybe not best spot?
Should I move to end or somewhere else... maybe fine?

The class reference is automatically alphabetically sorted. You cannot influence this order; it's here by design to make diffs easier to read :slightly_smiling_face:

Doctool is built into the executable. You just do bin/godot_exec_name --doctool. Running it ensures that everything is in its place. You didn't need it last time, because your change could be easily copy-pasted.

thanks i will try to sort my docs to fix the error
but i meant this position in editor, above separation:

I think the checkbox should be at the bottom.

I wonder if adding just a "sync" bool is the way to go. Instead of allowing only synced/random options, it could probably make sense to provide a way to manually set animation offsets for each cell, so e.g. creating animated patterns at will would be possible. Not fully sure about the implementation though, would such offsets need to be stored in the TileData (so they'd be overridable per cell with TileMap._tile_data_runtime_update)? :thinking: cc @groud

I think the feature is good and simple enough to be added. I have a few remarks:

I think "animations sync" is not a great name, it does not make it clear that animations simply start from 0 and loop by default. And like, I would prefer to "enable randomization"  instead of "disabling synchronization".
I think that two options are enough for now. But I think future-proofing it with an enum instead of a bool would not hurt. With the enum names, we can have a bit more space to describe what each mode do.

I would thus suggest to replace the bool by an enum called "animation_mode" (or something like that), with two values:
"Default" and "Random start position". it would make it a bit clearer and would allow for more modes later on.
We could also add other modes, including one that would call a callback on the TileMap (as @kleonc suggests), but I don't think it is needed for now.

Not fully sure about the implementation though, would such offsets need to be stored in the TileData (so they'd be overridable per cell with TileMap._tile_data_runtime_update)? thinking cc @groud

It would require a dedicated callback, as the animation frame is not stored in the TileData object.

One small issue I noticed is a kind of flickering when setting lots of random tiles.

Does not happen for Default Mode animations.
Looks like it is just updating the nearby tiles.
I could not figure out how to fix. Changed back to my old frame code to test but still happens.
Maybe not a big deal or not easy to fix.

Thanks.

One small issue I noticed is a kind of flickering when setting lots of random tiles.
* Does not happen for Default Mode animations.

* Looks like it is just updating the nearby tiles.

* I could not figure out how to fix. Changed back to my old frame code to test but still happens.

* Maybe not a big deal or not easy to fix.

I've mentioned this in https://github.com/godotengine/godot/pull/77257#discussion_r1199581275:

Besides that, such animation_offset would need to be stored per cell, instead of choosing a new random offset each time such cell is being redrawn (by calling draw_tile).

Whenever draw_tile is called again for each such animated tile (it happens when reissuing draw commands for the given quadrant of tiles in TileMap::_rendering_update_dirty_quadrants) then a new animation_offset is being picked, hence the flickering. Once a random offset is picked for the given (cell, tile) pair, it would need to be preserved / not changed to avoid such flickering.
To be clear: it's not editor only issue, as tiles can be placed / changed  on runtime too (which would triggers qudrant redrawing / reissuing draw commands). Hence this needs to be solved now, when adding the feature. So the question is how/where such animation offsets should be stored (and whether they should be serialized?:thinking:).

Thanks I added a HashMap<Vector2, real_t> animation_offset_cache and it is smooth when adding now.

Thanks. I tried it and it does work but:

draw_tile is static, could map it to TileMap too but,
No access to tileMap since static and not passed in, tried using RID p_canvas_item but changes too often and causes flicker, maybe a way to get the associated node?

Ref<Resource> resource = ResourceLoader::get_singleton()->get_resource(rid);

But then hash() and (lookup?) and "new" Array is being called and recalled for each cell each draw? that is better? should we then cache the hashes? idk :)

I am not even sure it needs to be fixed. Since we are basically just dealing with noise, it is maybe not AS important that every tile has a 'special' number? Just that they all look generally different and preserve that difference through drawing interference?
It is maybe not worth it to "duplicate" the random noise for each tileMap when there is no visible difference? not really special or associated noise... just noise?
I foresee a similar issue for times when the cache 'needs to be regenerated' but luckily it is just noise and cannot even notice it is using an old cache? so those bugs will never be discovered.
I was gonna say the same thing about changing from frame to time but not sure it is the same... maybe noticeable with long delays idk
Is it a bug or is it visual trickery / optimization? :)
Thanks

Ah you are right. The static part is the problem and I did not realize that p_position was not the position on the TileMap.
So the cleanest solution to me then is to add an optional argument animation_offset in the static draw_tile, then compute the random value in the TileMap itself. This values could stay to 0 when draw_tile is called from outside the TileMap. Random values are not really needed when tiles are drawn outside of the TileMap.

It is mayb not worth it to "duplicate" the random noise for each tileMap when there is no visible difference? not really special or associated noise... just noise?

I think it might be visible in some cases, where you have multiple tiles on top of each other on the same layer. So I think it should probably be dependent on the TileMap pointer or something.

But then hash() and (lookup?) and "new" Array is being called and recalled for each cell each draw? that is better? should we then cache the hashes? idk :)

Hashing is pretty fast, while the time to access a bin in a hashmap takes a time that is dependent on how big the map is. For big tilemap it might be a problem. hash() is likely safer.

Thanks. You are right. I was easily able to see dupes / no dupes just by adding lots to multiple layers.

One thing I am curious about is if there is a better way do these casts:
VariantCaster<TileSetAtlasSource::TileAnimationMode>::cast(p_value)
Nothing else seems to be using VARIANT_ENUM_CAST like this? there is maybe a better way? Seems to work, idk just curious if anyone knows.

I don't think there is a significantly better way. Most of the time we only deal with enums represented as integers, so conversion is straightforward. Here we have a variant, so it needs extra work. So this seems appropriate.

Thanks!

It looks like the value of p_random_animation_offset is limited to a delay of 0 to 1 seconds.  This works fine to desync faster and shorter animations, but for longer or slower ones you end up with them being partially synced instead of totally random (worst case is animations that are 1 second+ per frame).
Pull request for the easiest way to fix this, which is just to make it randomize from 0 to 1 days instead, that's definitely long enough that nobody's going to notice that.
https://github.com/Proggle/godot/pull/1


New to Python. Can you Suggest how to run and test sample

Hello,
I am new to Python coding. Please can you help me on how can I run it and run a sample on sending and receiving message.
Thanks in advance.

This is all explained in the README.md.
Keep in mind that you have to install the Firefox Gecko Driver first, if using Firefox.
For a working example take a look at the sample.py.


log: include secondary log files in ListLogFiles

PR: https://github.com/cockroachdb/cockroach/pull/45200
From release notes:

The "Log file list" endpoint now includes secondary log files in the main log directory, for example the RocksDB logs. Log files in alternate log directories (e.g. --sql-audit-dir, if different from the main log directory) are not included. [#45200][#45200] {% comment %}doc{% endcomment %}
cockroach debug zip now includes secondary log files in the main log directory, for example the RocksDB logs. Log files in alternate log directories (e.g. --sql-audit-dir, if different from the main log directory) are not included. [#45200][#45200] {% comment %}doc{% endcomment %}

Also backported to 19.2: https://github.com/cockroachdb/docs/issues/6963


Fix bug .selectpicker("val", "xxx") not work in ie9

Fix that bug,this is some different processs for arguments in IE9,I
build a array,and push the item of arguments into my array one by
one,and it can work well

+1

Sounds good. I'll merge in a bit.

I merged #868 does that one fix it here too?


[BUG] Longhorn v.1.5.2 on ARM - UnknownNodeConditionTrue after update from 1.5.1 to 1.5.2

Describe the bug (🐛 if you encounter this issue)
im running a kubernetes cluster on Hetzner ARM instances. with no bigger problems until now.
now i upgraded my longhorn from v.1.5.1 to v.1.5.2.
since this update i can observe a lot of UnknownNodeConditionTrue warnings in the LonghornUI.
i have already searched for similar issues, tried to restart all containers, upgrade the volume engine, but the problem still persists.
Environment

Longhorn version: v1.5.2
Installation method (e.g. Rancher Catalog App/Helm/Kubectl): helm
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version: v1.27.6 with KOPS

Number of management node in the cluster: 1
Number of worker node in the cluster: 3

Node config

OS type and version: ubuntu-22.04.3 LTS
Kernel version: 5.15.0-88
CPU per node: 4vCPU - ARM AMPERE
Memory per node: 8GB
Disk type(e.g. SSD/NVMe/HDD): SSD
Network bandwidth between the nodes: 1G

Underlying Infrastructure (e.g. on AWS/GCE, EKS/GKE, VMWare/KVM, Baremetal): Hetzner
Number of Longhorn volumes in the cluster: 17

@J-Ha Can you provide the support bundle?

sure, where should i pass it? here? does it contain any sensitv information?

https://longhorn.io/docs/1.5.2/advanced-resources/support-bundle/
Don't think so, the bundle includes the manifests about Kubernetes and Longhorn resources and logs only.

Uploading supportbundle_5dc995db-5304-4c60-ad7e-e0f927316f5a_2023-11-09T17-52-22Z.zip…

Uploading supportbundle_5dc995db-5304-4c60-ad7e-e0f927316f5a_2023-11-09T17-52-22Z.zip…

Uploading supportbundle_5dc995db-5304-4c60-ad7e-e0f927316f5a_2023-11-09T17-52-22Z.zip…

UnknownNodeConditionTrue is due to read-only filesystems of longhorn volumes.
2023-11-09T17:52:55.663904024Z time="2023-11-09T17:52:55Z" level=info msg="Event(v1.ObjectReference{Kind:\"Node\", Namespace:\"longhorn-system\", Name:\"nodes-fsn1-5b9e60c35ce00ffb\", UID:\"fee3b02d-912f-49f4-bdc2-8e1aa91f1bf5\", APIVersion:\"longhorn.io/v1beta2\", ResourceVersion:\"35703716\", FieldPath:\"\"}): type: 'Warning' reason: 'UnknownNodeConditionTrue' Unknown condition true of kubernetes node nodes-fsn1-5b9e60c35ce00ffb: condition type is ReadonlyFilesystem, reason is FilesystemIsReadOnly, message is EXT4-fs (sdg): Remounting filesystem read-only" func="record.(*eventBroadcasterImpl).StartLogging.func1" file="event.go:298"

The remount usually happens when running into IO error.  I'm thinking if the IO error is related to the low network bandwidth in your environment. Unfortunately, the log messages in the instance-manager pods are gone.
Can you try to remote the problematic volumes to read-write mode by mount -o remount,rw /PATH/TO/READ/ONLY/VOLUME?

Adding on top:

Kubernetes marked the cluster nodes `FilesystemIsReadOnly`

- lastHeartbeatTime: "2023-11-09T17:49:48Z"
  lastTransitionTime: "2023-11-06T13:14:50Z"
  message: 'EXT4-fs (sde): Remounting filesystem read-only'
  reason: FilesystemIsReadOnly
  status: "True"
  type: ReadonlyFilesystem

This is an unexpected node condition to Longhorn: https://github.com/longhorn/longhorn-manager/blob/v1.5.2/controller/node_controller.go#L433-L458.

I am not sure why Kubernetes marked the nodes conditions
- nodes-fsn1-18ea2749899e3be6: `EXT4-fs (sdc): Remounting filesystem read-only`
- nodes-fsn1-4b90cb9b6dc46444: `EXT4-fs (sde): Remounting filesystem read-only`
- nodes-fsn1-5b9e60c35ce00ffb: `EXT4-fs (sdg): Remounting filesystem read-only`

Troubleshooting: volume readonly or I/O error

Kubernetes marked the cluster nodes FilesystemIsReadOnly condition.
    - lastHeartbeatTime: "2023-11-09T17:49:48Z"
      lastTransitionTime: "2023-11-06T13:14:50Z"
      message: 'EXT4-fs (sde): Remounting filesystem read-only'
      reason: FilesystemIsReadOnly
      status: "True"
      type: ReadonlyFilesystem

Longhorn is reporting this event due to this unexpected node condition: https://github.com/longhorn/longhorn-manager/blob/v1.5.2/controller/node_controller.go#L433-L458.

The condition seems to be marked by the node-problem-detector:

https://github.com/kubernetes/node-problem-detector
https://github.com/kubernetes/node-problem-detector/blob/34b265af347190b4dff320d77711bc92a5e8342d/config/kernel-monitor.json#L75

Kubernetes marked the cluster nodes FilesystemIsReadOnly condition.
    - lastHeartbeatTime: "2023-11-09T17:49:48Z"
      lastTransitionTime: "2023-11-06T13:14:50Z"
      message: 'EXT4-fs (sde): Remounting filesystem read-only'
      reason: FilesystemIsReadOnly
      status: "True"
      type: ReadonlyFilesystem

Longhorn is reporting this event due to this unexpected node condition: https://github.com/longhorn/longhorn-manager/blob/v1.5.2/controller/node_controller.go#L433-L458.

The condition seems to be marked by the node-problem-detector:

https://github.com/kubernetes/node-problem-detector
https://github.com/kubernetes/node-problem-detector/blob/34b265af347190b4dff320d77711bc92a5e8342d/config/kernel-monitor.json#L75

The behavior of marking the node as unhealthy state when Longhorn volumes become read-only looks weird.
Can Longhorn volumes be filtered? @c3y1huang

The behavior of marking the node as unhealthy state when Longhorn volumes become read-only looks weird.
Can Longhorn volumes be filtered? @c3y1huang

Where did you see the node being marked unhealthy?

Oh, not really mean the unstate state, just mean the message: 'EXT4-fs (sde): Remounting filesystem read-only'.

The condition  ReadonlyFilesystem doesn't seem to be a default condition to Kubernetes. It seems that the condition is marked by the additional installation of node-problem-detector. Longhorn generates the event because it is unfamiliar with the condition type. To my knowledge, unless the node-problem-detector unmarks the condition, Longhorn will continue to generate this event.

The condition ReadonlyFilesystem doesn't seem to be a default condition to Kubernetes. It seems that the condition is marked by the additional installation of node-problem-detector. Longhorn generates the event because it is unfamiliar with the condition type. To my knowledge, unless the node-problem-detector unmarks the condition, Longhorn will continue to generate this event.

I see. Thanks for your explanation. I'm thinking if we can improve the log message in Longhorn side and make it more meaningful, for example, converting /dev/sdx to /dev/longhorn/<volume-name> in the log message. Then, we can understand if a read-only disk is a Longhorn disk or not.  WDYT?

I see. Thanks for your explanation. I'm thinking if we can improve the log message in Longhorn side and make it more meaningful, for example, converting /dev/sdx to /dev/longhorn/<volume-name> in the log message. Then, we can understand if a read-only disk is a Longhorn disk or not. WDYT?

In my opinion, we should consider having this as a trace log instead of as an event:

The event is generated through the node-controller, making it a bit challenging to match the device with the volume. Considering the additional effort required, it might not be necessary, since we can potentially find relevant clues elsewhere, such as unexpected volume detachment, I/O errors, etc.
Since this is not a default component to the Kubernetes installation, and seems the user can configure the monitoring JSON. So it also raises the question of whether we should also consider addressing other error scenarios? https://github.com/kubernetes/node-problem-detector/blob/34b265af347190b4dff320d77711bc92a5e8342d/config/kernel-monitor.json#L75

consider having this as a trace log instead of as an event

Agree.

Got it. It is nice to have. We can need an extra effort. A simple idea is just checking the device numbers.

Instinctively, it seems a bit off parsing a specific user-configurable condition from node-problem-detector that isn't default to the Kubernetes install.

just to drop in some additional  information from my side.
this problem startet to appear since the update from v1.5.1, i never had those problems before.
what i can tell, there is nearly no network traffic on the interfaces.
but the CPU Usage increased a lot since the update from v.1.5.1 to v1.5.2 - could this be realted to the ARM Architecture and the recent CPU consumption fixes in v1.5.2
this is  from nodes-fsn1-5b9e60c35ce00ffb:

the update was the only change in the past week, the update was on 6 november
all other nodes are looking similar

I'm experiencing the same issue, after the Longhorn upgrade.

Longhorn version: 1.5.3
Installation method (e.g. Rancher Catalog App/Helm/Kubectl): helm
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version: k3s

Number of management node in the cluster: 3
Number of worker node in the cluster: 5

Node config

OS type and version: RaspiOS arm64 (Debian Bookworm)
Kernel version: 6.1.0-rpi7-rpi-v8
CPU per node: 4
Memory per node: 8GB
Disk type(e.g. SSD/NVMe/HDD): SSD
Network bandwidth between the nodes: 1GB

Underlying Infrastructure (e.g. on AWS/GCE, EKS/GKE, VMWare/KVM, Baremetal): Baremetal
Number of Longhorn volumes in the cluster: 2

supportbundle_61cba4e8-81d1-4ef8-8f5d-b4a6a80d16dd_2023-12-19T15-44-36Z.zip

ref: https://github.com/longhorn/longhorn/issues/7290
cc @m-ildefons


[CanonicalizeGuaranteedValue] Rewrite forwards in place.

Don't hoist the forwards above the borrow scope--that results in leaks in case of a branch where the forward exists on only one branch.

@swift-ci please test

@swift-ci please test


Google renames its chatbot Bard to Gemini

Recently, it came to my notice that Google has rebranded Bard as Gemini. Will it affect your unofficial API?

as for me, this doesn't work now, according to the code all requests go to bard.google.com and are not sent to gemini.google.com

Just tried it out, got this error
Response status code is not 200. Response Status is 429

I am also receiving errors.

Change all references of bard.google.com to gemini.google.com and you should be back in business.

Change all references of bard.google.com to gemini.google.com in your code and you should be back in business.

This should do the developer, i suppose. We, users, are waiting to pip install -U bardapi

1.Change in core "https://bard.google.com/" TO "https://gemini.google.com/app"
2.Make sure to pass two cookie NID and GOOGLE_ABUSE_EXEMPTION This two are main cookie
That's it then It will work perfectly

1.Change in core_cookies.py  "https://bard.google.com/" TO "https://gemini.google.com/app" and change in core.py bard.google to gemini.google
2.Make sure to pass four cookie __Secure-1PSID, __Secure-1PSIDTS,NID and GOOGLE_ABUSE_EXEMPTION This four are main cookie
and change _get_session to
def _get_session(self, session: Optional[requests.Session]) -> requests.Session:
    """
    Get the requests Session object.

    Args:
        session (requests.Session): Requests session object.

    Returns:
        requests.Session: The Session object.
    """

    if session is None:
        new_session = requests.Session()
        cookie = ""
        for k, v in self.cookie_dict.items():
            cookie += f"{k}={v}; "
        new_session.headers.update({"Cookie": cookie})
        return new_session
    else:
        return session

That's it then It will work perfectly

When we can expect a update from developer? So that we update the current API.

Thank you for your solutions. I will try it ASAP.

Change all references of bard.google.com to gemini.google.com in your code and you should be back in business.

This should do the developer, i suppose. We, users, are waiting to pip install -U bardapi

Exactly correct. The developer should do it.

@irfanbd2 where can i find those files? can you give the general file path for those files?
Thanks

@irfanbd2
Thank you for your solution. Only one thing to update when you create the session headers, I mean user agent, you have to change the host from bard.google.com to gemini.google.com. I did it and is working for me. Thank you once again.

@FriedaMarvin
Please find the updated files
Updated files.zip
Unzip and paste the files in the appropriate folder.
For any assistance, don't hesitate to comment here.

@aniruddhkrish
I put the files in the folder already. But I still got the error: requests.exceptions.TooManyRedirects: Exceeded 30 redirects.

@aniruddhkrish I put the files in the folder already. But I still got the error: requests.exceptions.TooManyRedirects: Exceeded 30 redirects.

You can try changing "/app"  to "/" in Referer of the sessions. It works good for me

@aniruddhkrish I put the files in the folder already. But I still got the error: requests.exceptions.TooManyRedirects: Exceeded 30 redirects.

Did you change the session headers?

Previously, if there was only __Secure-1PSID,
If authentication was possible
For now, if you don't have __Secure-1PSIDTS (expiring or changing soon)
It doesn't give at.
Also, in some environments
If GOOGLE_ABUSE_EXEMPTION is not present, access itself is denied.
As we moved from Bard to Gemini, it became difficult to use this function with just the __Secure-1PSID value.
I am of the opinion that it will become difficult in the future if there is no function to automatically update the __Secure-1PSIDTS (expiring or changing soon) value.

@Goodday777
I have found the solution for this.
But I think this only works with Firefox browser.
Here are the steps to use the latest Gemini AI through Bardapi with some kind of stability.
Install Firefox.
Sign in to Gemini (formerly Bard) with your google account credentials.
Unzip the updated files and place it in the appropriate folders (If you find any issues comment here).
Then you will be able to use bardapi seamlessly with the following code.
import requests
from bardapi import SESSION_HEADERS, BardCookies
import browser_cookie3

domain = '.google.com'

firefox_cookies = browser_cookie3.firefox(domain_name=domain)

psid = '__Secure-1PSID'
dts = '__Secure-1PSIDTS'
dcc = '__Secure-1PSIDCC'
nid = 'NID'

psid_value = None
dts_value = None
dcc_value = None
nid_value = None

for cookie in firefox_cookies:
    if cookie.name == psid:
        psid_value = cookie.value
    elif cookie.name == dts:
        dts_value = cookie.value
    elif cookie.name == dcc:
        dcc_value = cookie.value
    elif cookie.name == nid:
        nid_value = cookie.value

cookie_dict = {
    "__Secure-1PSID": psid_value,
    "__Secure-1PSIDTS": dts_value,
    "__Secure-1PSIDCC": dcc_value,
}
session = requests.Session()
session.cookies.set("__Secure-1PSID", psid_value)
session.cookies.set( "__Secure-1PSIDCC", dcc_value)
session.cookies.set("__Secure-1PSIDTS", dts_value)
session.cookies.set("NID",nid_value)
session.headers = SESSION_HEADERS

bard = BardCookies(session=session,cookie_dict=cookie_dict)

while True:

    question = input("Enter your prompt to Gemini: ")
    response = bard.get_answer(question)['content']
    data = str(response).replace("*", "")
    print(data)

Updated files.zip

Here's a new wrinkle. I now obtain a Secure-1PSID that does not end with a dot. When I place the string in my code I get the following error:

Exception: __Secure-1PSID value must end with a single dot. Enter correct __Secure-1PSID value

If I add the dot, it of course does not work. I do notice a dot now appears after the first character of the string, in my case it starts of like:

g.a000

Not sure if this is random or the new placement of the dot.

@aniruddhkrish
File "XXXXXX\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\requests\sessions.py", line 166, in resolve_redirects
raise TooManyRedirects('Exceeded {} redirects.'.format(self.max_redirects), response=resp)
requests.exceptions.TooManyRedirects: Exceeded 30 redirects.

@J-Fo-S
Use this code,
from bardapi import SESSION_HEADERS, BardCookies
import browser_cookie3
import requests
domain = '.google.com'

firefox_cookies = browser_cookie3.firefox(domain_name=domain)

psid = '__Secure-1PSID'
dts = '__Secure-1PSIDTS'
dcc = '__Secure-1PSIDCC'
nid = 'NID'

psid_value = None
dts_value = None
dcc_value = None
nid_value = None

for cookie in firefox_cookies:
    if cookie.name == psid:
        psid_value = cookie.value
    elif cookie.name == dts:
        dts_value = cookie.value
    elif cookie.name == dcc:
        dcc_value = cookie.value
    elif cookie.name == nid:
        nid_value = cookie.value

cookie_dict = {
    "__Secure-1PSID": psid_value,
    "__Secure-1PSIDTS": dts_value,
    "__Secure-1PSIDCC": dcc_value,
}
session = requests.Session()
session.cookies.set("__Secure-1PSID", psid_value)
session.cookies.set( "__Secure-1PSIDCC", dcc_value)
session.cookies.set("__Secure-1PSIDTS", dts_value)
session.cookies.set("NID",nid_value)
session.headers = SESSION_HEADERS

bard = BardCookies(session=session,cookie_dict=cookie_dict)

while True:

    question = input("Enter your prompt to Gemini: ")
    response = bard.get_answer(question)['content']
    data = str(response).replace("*", "")
    print(data)

Pass the 4 cookies. It will work. Do it as done above.

@nicolaslr75
Did you unzip the updated files and replaced the original ones in the appropriate folder with them?

@nicolaslr75
Attached is the zipped folder of the updated files (core.py, constant, core_cookies.py). Replace the original ones with the ones in the folder of updated files.
Then run the code given above by me in my last comment. Make sure to use a reusable session with session headers.

@J-Fo-S
Use this code,
from bardapi import SESSION_HEADERS, BardCookies
import browser_cookie3
import requests
domain = '.google.com'

firefox_cookies = browser_cookie3.firefox(domain_name=domain)

psid = '__Secure-1PSID'
dts = '__Secure-1PSIDTS'
dcc = '__Secure-1PSIDCC'
nid = 'NID'

psid_value = None
dts_value = None
dcc_value = None
nid_value = None

for cookie in firefox_cookies:
    if cookie.name == psid:
        psid_value = cookie.value
    elif cookie.name == dts:
        dts_value = cookie.value
    elif cookie.name == dcc:
        dcc_value = cookie.value
    elif cookie.name == nid:
        nid_value = cookie.value

cookie_dict = {
    "__Secure-1PSID": psid_value,
    "__Secure-1PSIDTS": dts_value,
    "__Secure-1PSIDCC": dcc_value,
}
session = requests.Session()
session.cookies.set("__Secure-1PSID", psid_value)
session.cookies.set( "__Secure-1PSIDCC", dcc_value)
session.cookies.set("__Secure-1PSIDTS", dts_value)
session.cookies.set("NID",nid_value)
session.headers = SESSION_HEADERS

bard = BardCookies(session=session,cookie_dict=cookie_dict)

while True:

    question = input("Enter your prompt to Gemini: ")
    response = bard.get_answer(question)['content']
    data = str(response).replace("*", "")
    print(data)

Pass the 4 cookies. It will work. Do it as done above. Make sure you have installed Firefox and signed in there.

@aniruddhkrish While this doesn't quite address the error I described while operating on Chrome, I can confirm this solution works on FireFox IF you also manually set the headers as you describe here

@J-Fo-S
You can also try using edge by removing firefox.

While operating chrome, you get that errors because chrome does not permit you to access cookies through browser_cookie3 but firefox does.

@J-Fo-S  I tried using Edge but it does not work. It works seamlessly through Firefox.

from bardapi.constants import (
ALLOWED_LANGUAGES,
SESSION_HEADERS,
TEXT_GENERATION_WEB_SERVER_PARAM,
Tool,
POST_ENDPOINT,
)
exception after copy file.zip
ImportError: cannot import name 'POST_ENDPOINT' from 'bardapi.constants' (C:\Python312\Lib\site-packages\bardapi\constants.py)
python-BaseException

@sapycola its working for me. I imported POST_ENDPOINT

Click that and try changing the POST_ENDPOINT POST_ENDPOINT = "https://bard.google.com//BardChatUi/data/assistant.lamda.BardFrontendService/StreamGenerate"
to "POST_ENDPOINT = "https://gemini.google.com//BardChatUi/data/assistant.lamda.BardFrontendService/StreamGenerate"

We are currently working on modifying the previous bardapi to make it usable on Gemini. Both this repository and the gemini-api repository will be synced for a while to minimize confusion for users.
Once the work is complete, we will release bardapi version 0.1.40 and python-gemini-api version 0.1.2. Thank you.

Error even after using updated file for gemini
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\bardapi\core.py", line 332, in get_answer
    resp_dict = json.loads(resp.content.splitlines()[-5])[0][2]
                           ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^
IndexError: list index out of range

We are currently working on modifying the previous bardapi to make it usable on Gemini. Both this repository and the gemini-api repository will be synced for a while to minimize confusion for users.
Once the work is complete, we will release bardapi version 0.1.40 and python-gemini-api version 0.1.2. Thank you.

Let us know once done.

@Goodday777
I have found the solution for this.
But I think this only works with Firefox browser.
Here are the steps to use the latest Gemini AI through Bardapi with some kind of stability.
Install Firefox.
Sign in to Gemini (formerly Bard) with your google account credentials.
Unzip the updated files which are attached here and place it in the appropriate folders
Then you will be able to use bardapi seamlessly with the following code. Every time you run this code, it will extract the new cookies from firefox and send it to bardapi. Make sure to pip install browser_cookie3.
import requests
from bardapi import SESSION_HEADERS, BardCookies
import browser_cookie3

domain = '.google.com'

firefox_cookies = browser_cookie3.firefox(domain_name=domain)

psid = '__Secure-1PSID'
dts = '__Secure-1PSIDTS'
dcc = '__Secure-1PSIDCC'
nid = 'NID'

psid_value = None
dts_value = None
dcc_value = None
nid_value = None

for cookie in firefox_cookies:
    if cookie.name == psid:
        psid_value = cookie.value
    elif cookie.name == dts:
        dts_value = cookie.value
    elif cookie.name == dcc:
        dcc_value = cookie.value
    elif cookie.name == nid:
        nid_value = cookie.value

cookie_dict = {
    "__Secure-1PSID": psid_value,
    "__Secure-1PSIDTS": dts_value,
    "__Secure-1PSIDCC": dcc_value,
}
session = requests.Session()
session.cookies.set("__Secure-1PSID", psid_value)
session.cookies.set( "__Secure-1PSIDCC", dcc_value)
session.cookies.set("__Secure-1PSIDTS", dts_value)
session.cookies.set("NID",nid_value)
session.headers = SESSION_HEADERS

bard = BardCookies(session=session,cookie_dict=cookie_dict)

while True:

    question = input("Enter your prompt to Gemini: ")
    response = bard.get_answer(question)['content']
    data = str(response).replace("*", "")
    print(data)

Updated files.zip

When setting four cookie values as session cookie values, it does not execute properly. Could it be that someone succeeded by adding additional cookie values in the Firefox browser? If anyone has succeeded with different cookie values, please let me know. If you have any experimental code that works correctly, please share it. It would greatly help with the update.
Alternatively, if needed, anyone can submit a pull request at any time.
Thank you.

@dsdanielpark You need not to use the NID cookie.

As you said, it is creating problems

Error even after using updated file for gemini
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\bardapi\core.py", line 332, in get_answer
    resp_dict = json.loads(resp.content.splitlines()[-5])[0][2]
                           ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^
IndexError: list index out of range

Do you use NID cookie? If yes, remove it. It worked for me.

aniruddhkrish
Which cookies do you used? I will start from there.

I used Secure 1PSID, Secure 1PSIDCC, Secure 1PSIDTS
On Sun, 18 Feb 2024 at 17:20, MinWoo(Daniel) Park @.***>
wrote:

aniruddhkrish https://github.com/aniruddhkrish
Which cookies do you used? I will start from there.
—
Reply to this email directly, view it on GitHub
https://github.com/dsdanielpark/Bard-API/issues/275#issuecomment-1951227401,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BGAS2DERQTRZ4WRDC26UPWTYUHTHJAVCNFSM6AAAAABC76DYVOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJRGIZDONBQGE
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Error even after using updated file for gemini
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\bardapi\core.py", line 332, in get_answer
    resp_dict = json.loads(resp.content.splitlines()[-5])[0][2]
                           ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^
IndexError: list index out of range

Do you use NID cookie? If yes, remove it. It worked for me.

Yes I use NID Cookie. I will try it removing NID

[NOTICE] Please, go to Gemini-API https://github.com/dsdanielpark/Gemini-API


Add MCRTensor

Adding MCRTensor (Modular Composite Representation) based on this.
Description

The added class is a copy of BSBCTensor that has a different implementation of the following methods:

bundle
multibundle
dot_similarity

Closes #150
Checklist

[x] I added/updated documentation for the changes.
[x] I have thoroughly tested the changes.

Hi @milad2073, thank you for implementing the Modular Composite Representation. This is a great addition to the library. I will review your PR tomorrow.

This looks great! Thank you for your contribution @milad2073


attribute autocapitalize

implementation and some specs to attribute autocapitalize, following specs from https://github.com/minimalist-components/webcomponents/issues/17

@alencar13 review pls, testing behavior in mobile (manually)

I added more one spec. Please take a look.


Ability to create account

Please add an ability to create account for use across devices/browsers

You can move your keys to another device now: https://match.hyoo.ru/#!=safe

If you have succeeded, you can close the issue.


Custom Agent Roles

Can someone test this with an account that doesn't have Custom Roles and/or a non-Enterprise account that is not entitled to Custom Roles?
The API documentation is unclear about what type of exception (if any) will be thrown in these cases, and may cause a test case failure in those instances.

needs rebase.
If you can clarify what tests are needed to be checked, I have a test account from ZenDesk and I can run the test

@stephenc I've run the RealSmokeTest.getCustomAgentRoles() on an enterprise account, but I don't know how that API might react on a standard Zendesk account which doesn't support Custom Agent Roles.  As long as it doesn't throw an Exception, I'd say 👍

$ mvn clean test -Dtest=RealSmokeTest\#getCustomAgentRoles
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building zendesk-java-client 0.5.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.6:clean (default-clean) @ zendesk-java-client ---
[INFO] Deleting /Users/stephenc/src/zendesk-java-client/target
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (enforce-maven) @ zendesk-java-client ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ zendesk-java-client ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ zendesk-java-client ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 82 source files to /Users/stephenc/src/zendesk-java-client/target/classes
[WARNING] /Users/stephenc/src/zendesk-java-client/src/main/java/org/zendesk/client/v2/Zendesk.java: /Users/stephenc/src/zendesk-java-client/src/main/java/org/zendesk/client/v2/Zendesk.java uses unchecked or unsafe operations.
[WARNING] /Users/stephenc/src/zendesk-java-client/src/main/java/org/zendesk/client/v2/Zendesk.java: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ zendesk-java-client ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ zendesk-java-client ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 5 source files to /Users/stephenc/src/zendesk-java-client/target/test-classes
[WARNING] /Users/stephenc/src/zendesk-java-client/src/test/java/org/zendesk/client/v2/RealSmokeTest.java: /Users/stephenc/src/zendesk-java-client/src/test/java/org/zendesk/client/v2/RealSmokeTest.java uses unchecked or unsafe operations.
[WARNING] /Users/stephenc/src/zendesk-java-client/src/test/java/org/zendesk/client/v2/RealSmokeTest.java: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- maven-surefire-plugin:2.12:test (default-test) @ zendesk-java-client ---
[INFO] Surefire report directory: /Users/stephenc/src/zendesk-java-client/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running org.zendesk.client.v2.RealSmokeTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.69 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 19.119 s
[INFO] Finished at: 2016-10-05T14:42:01+01:00
[INFO] Final Memory: 17M/212M
[INFO] ------------------------------------------------------------------------

Does this mean we can put a check mark in the Readme against Custom Agent Roles?

Their API documentation only has a "List Custom Roles" endpoint, which is implemented here.  There is a checkmark in the README as part of this PR, so I think it's ready to commit.

@matthewtckr go for it so


ENH: Initial support for duecredit

I have placed reference for the article into "pliers" code while citation for the module itself into your copy of the pySilencyMap
here is currently "used" tags we defined in duecredit: https://github.com/duecredit/duecredit/#tags  If you see how we could improve, please suggest ;)

Demo (including the failing test):
$> DUECREDIT_ENABLE=1 python -m pytest -s -v pliers/tests/extractors/test_image_extractors.py::test_saliency_extractor
================================================================= test session starts ==================================================================
platform linux2 -- Python 2.7.14+, pytest-3.2.1, py-1.4.34, pluggy-0.4.0 -- /home/yoh/proj/misc/pliers/venvs/dev/bin/python
cachedir: .cache
rootdir: /home/yoh/proj/misc/pliers, inifile:
plugins: xdist-1.18.2, localserver-0.3.7, cov-2.5.1, hypothesis-3.44.1, celery-4.1.0
collected 1 item

pliers/tests/extractors/test_image_extractors.py::test_saliency_extractor FAILED

======================================================================= FAILURES =======================================================================
_______________________________________________________________ test_saliency_extractor ________________________________________________________________

    def test_saliency_extractor():
        pytest.importorskip('cv2')
        stim = ImageStim(join(IMAGE_DIR, 'apple.jpg'))
        result = SaliencyExtractor().transform(stim).to_df()
        ms = result['max_saliency'][0]
        assert np.isclose(ms, 0.99669953, 1e-5)
        sf = result['frac_high_saliency'][0]
>       assert np.isclose(sf, 0.27461971, 1e-5)
E       assert False
E        +  where False = <function isclose at 0x7f31b82ec848>(0.27602513227513226, 0.27461971, 1e-05)
E        +    where <function isclose at 0x7f31b82ec848> = np.isclose

pliers/tests/extractors/test_image_extractors.py:54: AssertionError
=============================================================== 1 failed in 3.87 seconds ===============================================================

DueCredit Report:
- Scientific tools library / numpy (v 1.13.3) [1]
- A Python package for automated extraction of features from multimodal stimuli / pliers (v 0.2.1) [2]
  - Image saliency estimation / pliers.extractors.image.SilencyExtractor (v 0.2.1) [3]
- pySaliencyMap module -- Image saliency estimation / pySaliencyMap (v None) [4]
- Machine Learning library / sklearn (v 0.19.1) [5]
  - Affinity propagation clustering algorithm / sklearn.cluster.affinity_propagation_ (v 0.19.1) [6]

4 packages cited
2 modules cited
0 functions cited

References
----------

[1] Van Der Walt, S., Colbert, S.C. & Varoquaux, G., 2011. The NumPy array: a structure for efficient numerical computation. Computing in Science & Engineering, 13(2), pp.22–30.
[2] Url('https://github.com/tyarkoni/pliers', key='https://github.com/tyarkoni/pliers')
[3] Itti, L., Koch, C. & Niebur, E., 1998. A model of saliency-based visual attention for rapid scene analysis. IEEE Transactions on Pattern Analysis and Machine Intelligence, 20(11), pp.1254–1259.
[4] Url('https://github.com/akisato-/pySaliencyMap', key='https://github.com/akisato-/pysaliencymap')
[5] Pedregosa, F. et al., 2011. Scikit-learn: Machine learning in Python. The Journal of Machine Learning Research, 12, pp.2825–2830.
[6] Frey, B.J. & Dueck, D., 2007. Clustering by Passing Messages Between Data Points. Science, 315(5814), pp.972–976.

As for URLs - a fresh TODO https://github.com/duecredit/duecredit/issues/126
Closes #217

Coverage decreased (-12.7%) to 79.851% when pulling 2b3d0c82945e0916926cfbf8049763196928dd79 on yarikoptic:enh-duecredit into 8dae7ecdd94c7af41d2b3a60e141ff3a5a7cc07f on tyarkoni:master.

Thanks!


Update JSON type to json

In https://docs.pivotal.io/tiledev/credhub.html we can see listed as a type json but here we see value on both, value and JSON type.

Thank you @AlbertoImpl You are covered by the Pivotal CLA.
Thanks!