Issue with display in Windows

This reporter works great.  However, there's a minor display glitch with the rainbow in Windows.  It's not displaying the pleasing Nyan Cat rainbow that you nice folks running on a Mac get.  :rainbow:
We want some Nyan Cat love, too!  :+1:
Here's what we see:

@tgoyer - everyone deserves Nyan Cat love. Is your screenshot a standard Windows command prompt or is it something else like MinGW/GitBash or Cygwin?

That is the standard Windows command prompt, although I tested it in ConEmu and got the same result.

@tgoyer I looked into the issue a little bit and it turns out that the Windows command prompt doesn't support a 256 color mode. It looks like there is a way to enable it in Cygwin, though.

Ahh..  bummer.  I guess no nice Nyan Cat love for us then.  :disappointed:
Maybe Windows 10 has that mode?  :+1:  (Not holding my breath!)  Heh.

I can confirm that Windows 10 doesn't support it either :'(

@tgoyer & @Tokimon - I just ran across this article, perhaps there is hope:
https://blogs.msdn.microsoft.com/commandline/2016/09/22/24-bit-color-in-the-windows-console/
Not sure if you have to enable it or if was part of a patch, but it should work.

@dgarlitt Yeah I saw that as well, but it doesn't seem to have been released yet. But when it does it could be nice to check if it works as expected :)

I HATE WINDOWS


Extractor error

youtube-dl is up-to-date (2015.11.02)
youtube-dl -t --extract-audio --audio-format mp3 "https://www.youtube.com/watch?v=CeSo4rwJoq8"
[youtube] CeSo4rwJoq8: Downloading webpage
[youtube] CeSo4rwJoq8: Downloading video info webpage
[youtube] CeSo4rwJoq8: Extracting video information
ERROR: Signature extraction failed: Traceback (most recent call last):
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/youtube.py", line 817, in _decrypt_signature
video_id, player_url, s
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/youtube.py", line 709, in _extract_signature_function
raise ExtractorError('Cannot identify player %r' % player_url)
ExtractorError: Cannot identify player u'https://s.ytimg.com/yts/jsbin/player-en_US-vfljDEtYP/base.js'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
(caused by ExtractorError(u"Cannot identify player u'https://s.ytimg.com/yts/jsbin/player-en_US-vfljDEtYP/base.js'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.",)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
YataCurious

I get this error too:  here's more verobse output:
$ youtube-dl --verbose https://www.youtube.com/watch?v=N_GPxe91hWE
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'--verbose', u'https://www.youtube.com/watch?v=N_GPxe91hWE']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2015.11.02
[debug] Python version 2.7.10 -<EMAIL_ADDRESS>[debug] exe versions: ffmpeg N-75911-gf05ff05, ffprobe N-75911-gf05ff05, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] N_GPxe91hWE: Downloading webpage
[youtube] N_GPxe91hWE: Downloading video info webpage
[youtube] N_GPxe91hWE: Extracting video information
WARNING: unable to extract html5 player; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
[youtube] {43} signature length 40.44, html5 player None
ERROR: Signature extraction failed: Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/youtube_dl/extractor/youtube.py", line 817, in _decrypt_signature
    video_id, player_url, s
  File "/usr/lib64/python2.7/site-packages/youtube_dl/extractor/youtube.py", line 709, in _extract_signature_function
    raise ExtractorError('Cannot identify player %r' % player_url)
ExtractorError: Cannot identify player u'https://s.ytimg.com/yts/jsbin/player-en_US-vfljDEtYP/base.js'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
 (caused by ExtractorError(u"Cannot identify player u'https://s.ytimg.com/yts/jsbin/player-en_US-vfljDEtYP/base.js'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.",)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/youtube_dl/extractor/youtube.py", line 817, in _decrypt_signature
    video_id, player_url, s
  File "/usr/lib64/python2.7/site-packages/youtube_dl/extractor/youtube.py", line 709, in _extract_signature_function
    raise ExtractorError('Cannot identify player %r' % player_url)
ExtractorError: Cannot identify player u'https://s.ytimg.com/yts/jsbin/player-en_US-vfljDEtYP/base.js'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/youtube_dl/YoutubeDL.py", line 661, in extract_info
    ie_result = ie.extract(url)
  File "/usr/lib64/python2.7/site-packages/youtube_dl/extractor/common.py", line 290, in extract
    return self._real_extract(url)
  File "/usr/lib64/python2.7/site-packages/youtube_dl/extractor/youtube.py", line 1345, in _real_extract
    encrypted_sig, video_id, player_url, age_gate)
  File "/usr/lib64/python2.7/site-packages/youtube_dl/extractor/youtube.py", line 827, in _decrypt_signature
    'Signature extraction failed: ' + tb, cause=e)
ExtractorError: Signature extraction failed: Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/youtube_dl/extractor/youtube.py", line 817, in _decrypt_signature
    video_id, player_url, s
  File "/usr/lib64/python2.7/site-packages/youtube_dl/extractor/youtube.py", line 709, in _extract_signature_function
    raise ExtractorError('Cannot identify player %r' % player_url)
ExtractorError: Cannot identify player u'https://s.ytimg.com/yts/jsbin/player-en_US-vfljDEtYP/base.js'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
 (caused by ExtractorError(u"Cannot identify player u'https://s.ytimg.com/yts/jsbin/player-en_US-vfljDEtYP/base.js'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.",)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

This is youtube-dl version 2015.11.02 on Gentoo Linux using Python 2.7.10.

I'm getting the same issue. It looks like the url isn't matching the regex on extractor/youtube.py:706.

Stopped working for me a few hours ago too...
youtube-dl --verbose https://www.youtube.com/watch?v=XjwZAa2EjKA [debug] System config: [] [debug] User config: [] [debug] Command-line args: [u'--verbose', u'https://www.youtube.com/watch?v=XjwZAa2EjKA'] [debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8 [debug] youtube-dl version 2015.11.02 [debug] Python version 2.7.9 - Linux-4.2.0-0.bpo.1-686-pae-i686-with-debian-8.2 [debug] exe versions: avconv 2.8-1, avprobe 2.8-1, ffmpeg 2.8-1, ffprobe 2.8-1 [debug] Proxy map: {} [youtube] XjwZAa2EjKA: Downloading webpage [youtube] XjwZAa2EjKA: Downloading video info webpage [youtube] XjwZAa2EjKA: Extracting video information WARNING: unable to extract html5 player;
ERROR: Signature extraction failed: Traceback (most recent call last):   File "/usr/local/bin/youtube-dl/youtube_dl/extractor/youtube.py", line 817, in _decrypt_signature     video_id, player_url, s   File "/usr/local/bin/youtube-dl/youtube_dl/extractor/youtube.py", line 709, in _extract_signature_function     raise ExtractorError('Cannot identify player %r' % player_url)

This should be fixed since 50f84a9ae171233c08ada41e03f6555c5ed95236. It will work in the next version.
@phihag I guess it's an important fix and we should have a new version.

Hi Guys,
Would downgrading to previous version a work around?

The commit message suggests a "new base.js html5 player" has been introduced (I'm guessing by Google) so I wouldn't have thought so, @edbergavera.

@edbergavera A new version (2015.11.10) is released and I think it's the only working version as of now.

Version 2015.11.10 includes the fix. See our FAQ on how to upgrade.

Confirmed fixed with 2015.11.10. That's amazing work, doodz, thanks!

I am still getting this error:

[debug] Custom config: []                                                                                │(base) stian@medGPU-ML-1:~/Master_thesis_fork/st-gcn$
[debug] Command-line args: ['https://www.youtube.com/watch?v=EjYFRsiWlWI', '--verbose']                                                                                │
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8                                                                                │
[debug] youtube-dl version 2018.12.03                                                                                │
[debug] Python version 3.6.8 (CPython) - Linux-4.15.0-32-generic-x86_64-with-debian-stretch-sid                                                                        │
[debug] exe versions: ffmpeg 4.0.2, ffprobe 4.0.2                                                                                │
[debug] Proxy map: {}                                                                                │
[youtube] EjYFRsiWlWI: Downloading webpage                                                                                │
[youtube] EjYFRsiWlWI: Downloading video info webpage                                                                                │
WARNING: unable to extract html5 player; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update │
on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.                                                                 │
[youtube] {22} signature length 41.42, html5 player None                                                                                │
[youtube] EjYFRsiWlWI: Downloading player https://www.youtube.com/yts/jsbin/player_ias-vflRtzyEV/en_US/base.js                                                         │
ERROR: Signature extraction failed: Traceback (most recent call last):                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/extractor/youtube.py", line 1225, in _decrypt_signature                                           │
video_id, player_url, s                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/extractor/youtube.py", line 1133, in _extract_signature_function                                  │
res = self._parse_sig_js(code)                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/extractor/youtube.py", line 1200, in _parse_sig_js                                                │
initial_function = jsi.extract_function(funcname)                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/jsinterp.py", line 245, in extract_function                                                       │
raise ExtractorError('Could not find JS function %r' % funcname)                                                                                │
youtube_dl.utils.ExtractorError: Could not find JS function 'encodeURIComponent'; please report this issue on https://yt-dl.org/bug . Make sure you are using the lates│
t version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.                        │
(caused by ExtractorError("Could not find JS function 'encodeURIComponent'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest ver│
sion; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.",)); please report this issu│
e on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose│
flag and include its complete output.                                                                                │
Traceback (most recent call last):                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/extractor/youtube.py", line 1225, in _decrypt_signature                                           │
video_id, player_url, s                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/extractor/youtube.py", line 1133, in _extract_signature_function                                  │
res = self._parse_sig_js(code)                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/extractor/youtube.py", line 1200, in _parse_sig_js                                                │
initial_function = jsi.extract_function(funcname)                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/jsinterp.py", line 245, in extract_function                                                       │
raise ExtractorError('Could not find JS function %r' % funcname)                                                                                │
youtube_dl.utils.ExtractorError: Could not find JS function 'encodeURIComponent'; please report this issue on https://yt-dl.org/bug . Make sure you are using the lates│
t version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.                        │
Traceback (most recent call last):                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/extractor/youtube.py", line 1225, in _decrypt_signature                                           │
video_id, player_url, s                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/extractor/youtube.py", line 1133, in _extract_signature_function                                  │
res = self._parse_sig_js(code)                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/extractor/youtube.py", line 1200, in _parse_sig_js                                                │
initial_function = jsi.extract_function(funcname)                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/jsinterp.py", line 245, in extract_function                                                       │
raise ExtractorError('Could not find JS function %r' % funcname)                                                                                │
youtube_dl.utils.ExtractorError: Could not find JS function 'encodeURIComponent'; please report this issue on https://yt-dl.org/bug . Make sure you are using the lates│
t version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.                        │
│
During handling of the above exception, another exception occurred:                                                                                │
│
Traceback (most recent call last):                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 792, in extract_info                                                          │
ie_result = ie.extract(url)                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 508, in extract                                                        │
ie_result = self._real_extract(url)                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/extractor/youtube.py", line 1837, in _real_extract                                                │
encrypted_sig, video_id, player_url, age_gate)                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/extractor/youtube.py", line 1235, in _decrypt_signature                                           │
'Signature extraction failed: ' + tb, cause=e)                                                                                │
youtube_dl.utils.ExtractorError: Signature extraction failed: Traceback (most recent call last):                                                                       │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/extractor/youtube.py", line 1225, in _decrypt_signature                                           │
video_id, player_url, s                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/extractor/youtube.py", line 1133, in _extract_signature_function                                  │
res = self._parse_sig_js(code)                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/extractor/youtube.py", line 1200, in _parse_sig_js                                                │
initial_function = jsi.extract_function(funcname)                                                                                │
File "/home/stian/anaconda3/lib/python3.6/site-packages/youtube_dl/jsinterp.py", line 245, in extract_function                                                       │
raise ExtractorError('Could not find JS function %r' % funcname)                                                                                │
youtube_dl.utils.ExtractorError: Could not find JS function 'encodeURIComponent'; please report this issue on https://yt-dl.org/bug . Make sure you are using the lates│
t version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.                        │
(caused by ExtractorError("Could not find JS function 'encodeURIComponent'; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest ver│
sion; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.",)); please report this issu│
e on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
flag and include its complete output.


fix: only show loading icon when the toast is loading

PR Checklist
Please check if your PR fulfills the following requirements:

[X] The commit message follows our
guidelines: https://github.com/tutkli/ngx-sonner/blob/main/CONTRIBUTING.md#-commit-message-guidelines
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[X] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?

The loading icon showed when the toast was of type 'promise' not taking into account if the toast was loading or not.
Closes #21
What is the new behavior?
The loading icon only shows when the toast is loading.
Does this PR introduce a breaking change?

[ ] Yes
[X] No

Other information

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Slug validation on duplicate entry

Hi.
Is it possible to validate slug (title) after form submit? UniqueEntity() not working becouse slug is generated with onFlush() handler.
Now, after flush() is calling exception:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'spolocnost/pracovne-prilezitosti' for key 'UNIQ_140AB620989D9B62'
500 Internal Server Error - UniqueConstraintViolationException

I need to validate slug before persist and if exists duplicate slug the return error message to form.
Thanks.
Ducho.

Hi, if you set unique option for slug field it will prefix non unique slug with index. if you do not wish to have an index, I suggest you simply use sluggable transliterator in your form data transformer and then form is validated in controller confirm that it is unique by querying a database.

Thanks for quick reply. That transliterator is compatible with $sluggableListener->generateSlug() ?

yes, it uses it

This annotation not working with unique index.
/**
 * @Gedmo\Slug(handlers={
 *      @Gedmo\SlugHandler(class="Gedmo\Sluggable\Handler\TreeSlugHandler", options={
 *          @Gedmo\SlugHandlerOption(name="parentRelationField", value="parent"),
 *          @Gedmo\SlugHandlerOption(name="separator", value="/")
 *      })
 * }, fields={"title"}, unique=true)
 * @ORM\Column(type="string", length=255, unique=true)
 */
private $slug;

The sluggable transliterator is not possible to use with:
Sluggable + NestedTree + TreeSlugHandler
@ORM\PreFlush() not working too...
No exists solution to handle slug duplicity with Forms...

slug handlers do not check the uniqueness, the library needs to be improved concerning this case. but probably there was a reason, why it is so, just can't remember now.

Sorry, but probably I do not understand enough... What is the purpose function makeUniqueSlug() in the SluggableListener?

as far as I remember slug handlers are not checked for uniqueness

Uniqueness is solved only at the first level. So if is used with TreeSlugHandler then function makeUniqueSlug() don't increments slug with separator and number (e.g. company-1). I will try to fix this bug.

@l3pp4rd so I fixed it...
Do I have to do pull request?

would be great @ducho


Login issues

Discourse login doesn't work when trying to from (e.g.) a task page.

Issues was triggered by multiple instantiation of jQuery, namely the first one by Discourse inherently and the second one by the implemented web frontend (jquery.slim.min.js).
The issue was solved by making changes to Disraptor to not extract a jQuery-related script tag and thus effectively not loading jQuery a second time.


Use constraint names to name relation fields

Assume SQL (Postgres) like this:
CREATE TABLE "public"."User" (
  id SERIAL PRIMARY KEY,
  name TEXT
);

CREATE TABLE "public"."Post" (
  id SERIAL PRIMARY KEY,
  title TEXT,
  "authorId" INTEGER,
  CONSTRAINT author FOREIGN KEY ("authorId") REFERENCES "public"."User" (id)
);

This is currently introspected to:
model Post {
  authorId Int?
  id       Int     @default(autoincrement()) @id
  title    String?
  User     User?   @relation(fields: [authorId], references: [id])
}

model User {
  id   Int     @default(autoincrement()) @id
  name String?
  Post Post[]
}

The author constraint name is not used in the resulting Prisma schema.
It could influence how we name the relation field:
model Post {
  authorId Int?
  id       Int     @default(autoincrement()) @id
  title    String?
- User     User?   @relation(fields: [authorId], references: [id])
+ author   User?   @relation(fields: [authorId], references: [id])
}

model User {
  id   Int     @default(autoincrement()) @id
  name String?
  Post Post[]
}

(In the other direction Migrate should make sure to use this as well of course.)

Well, for MySQL the name seems to be unique per database:

The CONSTRAINT symbol value, if defined, must be unique in the database.

https://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html#foreign-key-identifiers
That will only work if each of the relation names are unique :/

The idea itself is interesting.

That will only work if each of the relation names are unique :/

That limitation indeed makes this less valuable or less likely valuable.
I also don't know if many people use custom names for constraints, I intuitively think it's common to just let the DB use its defaults.
For Postgres, these defaults are not very pretty: {tablename}_{columnname(s)}_{suffix} with the suffix being fkey for foreign keys.
Example:
test=> CREATE TABLE users (
test(>   id integer primary key
test(> );
CREATE TABLE
test=>
test=> CREATE TABLE posts (
test(>   user_id integer references users
test(>
test(> );
CREATE TABLE
test=> \d
       List of relations
 Schema | Name  | Type  | Owner
--------+-------+-------+-------
 public | posts | table | test
 public | users | table | test
(2 rows)

test=> \d posts
                Table "public.posts"
 Column  |  Type   | Collation | Nullable | Default
---------+---------+-----------+----------+---------
 user_id | integer |           |          |
Foreign-key constraints:
    "posts_user_id_fkey" FOREIGN KEY (user_id) REFERENCES users(id)

test=>

So using the constraint name to name the relation in this case would yield an API like post.posts_user_id_fkey.


Cannot use late bindings with views in Redshift

Cannot use late bindings with views in Redshift, it's probably because superset doesn't use deferred reflection when autoload=True
See: https://stackoverflow.com/questions/4215920/how-to-bind-engine-when-i-want-when-using-declarative-base-in-sqlalchemy

[x] I have checked the superset logs for python stacktraces and included it here as text if any
[x] I have reproduced the issue with at least the latest released version of superset
[x] I have checked the issue tracker for the same issue and I haven't found one similar

Superset version
0.22.1
Expected results
Even views with late bindings should work
Actual results
500 error + stack trace when refreshing the metadata
        Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/superset/connectors/sqla/models.py", line 589, in fetch_metadata
    table = self.get_sqla_table_object()
  File "/usr/local/lib/python3.5/dist-packages/superset/connectors/sqla/models.py", line 584, in get_sqla_table_object
    return self.database.get_table(self.table_name, schema=self.schema)
  File "/usr/local/lib/python3.5/dist-packages/superset/models/core.py", line 780, in get_table
    autoload_with=self.get_sqla_engine())
  File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/sql/schema.py", line 456, in __new__
    metadata._remove_table(name, schema)
  File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/util/compat.py", line 187, in reraise
    raise value
  File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/sql/schema.py", line 451, in __new__
    table._init(name, metadata, *args, **kw)
  File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/sql/schema.py", line 533, in _init
    include_columns, _extend_on=_extend_on)
  File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/sql/schema.py", line 546, in _autoload
    _extend_on=_extend_on
  File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/engine/base.py", line 2056, in run_callable
    return conn.run_callable(callable_, *args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/engine/base.py", line 1545, in run_callable
    return callable_(self, *args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/engine/default.py", line 389, in reflecttable
    table, include_columns, exclude_columns, **opts)
  File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/engine/reflection.py", line 626, in reflecttable
    raise exc.NoSuchTableError(table.name)
sqlalchemy.exc.NoSuchTableError: debug

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python3.5/dist-packages/flask/_compat.py", line 33, in reraise
    raise value
  File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.5/dist-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.5/dist-packages/flask_appbuilder/views.py", line 574, in action_post
    return action.func(items)
  File "/usr/local/lib/python3.5/dist-packages/superset/connectors/sqla/views.py", line 283, in refresh
    t.fetch_metadata()
  File "/usr/local/lib/python3.5/dist-packages/superset/connectors/sqla/models.py", line 593, in fetch_metadata
    "couldn't fetch column information").format(self.table_name))
Exception: Table [debug] doesn't seem to exist in the specified database, couldn't fetch column information

Steps to reproduce

Create view with late binding into redshift.
Create new table with reference to that view
Refresh metadata (see #4206 how to work around the bug that prevents it)

SQLAlchemy dialect bug? What is late-binding?


Add Slides page

Hi @jstac, this is the new page.

Thanks @HengchengZhang , that's super helpful and much appreciated.


[Bug] GotoFile failed finding file

Summary
I can not open files, I referenced in my HTML-documents.
Expected behavior
Successful open files.
Actual behavior
I included log: true, in my sublime-settings file. When I run ffp_goto_file command, I get output in console — FFP  GotoFile failed finding file $Path to my file. Example:
FFP  GotoFile failed finding file E:\wamp\www\articles_css\style_right.css

Steps to reproduce
Example of my code: https://github.com/Kristinita/Kristinita.github.io/blob/master/Sublime-Text/SashaSublime.html#L108
<!-- Иконочка Сашеньки -->
<link rel="shortcut icon" href="../other_images/Sasha.ico" type="image/x-icon">
<link rel="icon" href="../other_images/Sasha.ico" type="image/x-icon">
<!-- Стиль страницы -->
<link rel="stylesheet" href="../articles_css/style_right.css">
<link rel="stylesheet" type="text/css" href="../bower-components/rainbow/themes/css/espresso-libre.css">

I put cursor in any place between quotes between href → I run ffp_goto_file command → my files do not open, I get error in console.
All relative paths is correct. I also insert absolute paths, but I get same result.
Environment
Operating system and version:
Windows 10.0.14393
Sublime Text:
Build 3126
Thanks.

Hi Kristinita.
Thanks for the detailed report. I am aware of this issue and hope to find some time soon. As a side note, for some path replacements (replace_on_insert) the filepath cannot be reconstructed.

I made some changes to goto_file which should resolve this issue. The changes are currently in develop for testing.

querying a cleaned string in cache 7f46d628f90a0fbd38837a77252a1f2773755315
independent of cache, check if the file is a valid path 2208c64b8b5d6bd9362fee9e214edd73917d218d

The patch has been released with v0.5.0.


Why did you set up the scheduler as MultiStepLR=False?

I am not an expert on a scheduler, but I tried to understand it through this one.
Why did you set up the scheduler as MultiStepLR=False?
I guess that is meaningless if we set up the scheduler as MultiStepLR=False.
Please, explain to me if I understood it wrong.

You are correct. The scheduler is not used in training. It had no impact on the final accuracy of our model when we tested different configurations, so we deactivated it.

@thohemp Thank you so much for your answer.


remove vim-tiny from server feature

What this PR does / why we need it:
Which issue(s) this PR fixes:

less potential security vulnerabilities

Special notes for your reviewer:

as an alternative; vim can open files via scp

Release note:

Remove vim-tiny from Garden Linux.
* less potential security vulnerabilities
* as an alternative; vim can open files remotely via scp

If that means no vim at all, then debugging issues in a Gardener environment will be very difficult or even impossible (the scp approach is likely not working that easily there). How about moving vim-tiny to the gardener feature (even though that means no less compliance overhead)?


New Az CMDLET availability

Any idea if/when these commands will be available in the new Az modules?  Very cumbersome to have to run the old and new since the dependencies seem to want to overwrite each other.

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

ID: 1093baf6-b6b6-52f7-5268-697fe6412bdf
Version Independent ID: 65b4f939-ad12-b9e1-afd6-2f734653a163
Content: Perform Azure Table storage operations with PowerShell
Content Source: articles/storage/tables/table-storage-how-to-use-powershell.md
Service: cosmos-db
GitHub Login: @roygara
Microsoft Alias: rogarana

@MCrank
Thanks for your feedback. We are investigating this issue actively and will get back to you soon.

@MCrank we are checking with Product group internally and will get back to you.

@angoyal-msft Thank you for following up on this. Very much appreciate it.

@MCrank Thanks for your patience. We don't have much update on this as of now. So content author might be able to help you better on this. So assigning this issue to content author.
@roygara Could you please help us with this issue.

@MCrank Thanks for reaching out. Unfortunately we don't know the answer to your question and it doesn't seem like there is any Az variant of this particular module. I'd recommend actually opening an ask in our feedback site regarding this since it's more product related than doc related, so that the relevant team will see it directly. https://feedback.azure.com/forums/217298-storage?category_id=69696
#please-close

Thanks @roygara .  I'll check it out.


New Scraper: Atlanta BeltLine Board of Directors

Create a new scraper for Atlanta BeltLine Board of Directors
Website: https://beltline.org/about-us/board-of-directors/board-meetings-and-documentation/
Jurisdiction: City of Atlanta
Classification: Development, Housing, Transportation

resolved with #133


KAFKA-5668: fetch across stores in CompositeReadOnlyWindowStore & CompositeReadOnlySessionStore

Fix range queries in CompositeReadOnlyWindowStore and CompositeReadOnlySessionStore to fetch across all stores (was previously just looking in the first store)

@enothereska @guozhangwang - would probably be worthwhile getting this into <IP_ADDRESS>, too.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/6830/
Test FAILed (JDK 8 and Scala 2.12).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/6844/
Test PASSed (JDK 7 and Scala 2.11).

System test results: http://confluent-kafka-branch-builder-system-test-results.s3-us-west-2.amazonaws.com/2017-08-17--001.1502982304--dguy--kafka-5152--cd3c8a6/report.html

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk7-scala2.11/6865/
Test PASSed (JDK 7 and Scala 2.11).

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/kafka-pr-jdk8-scala2.12/6851/
Test PASSed (JDK 8 and Scala 2.12).

Thanks for the patch, LGTM.


Fix: remove non existing session parameter

Why
sessionStorage parameter does not exist in the shopifyApi call, as of v6 of the library there is no SessionStorage implementation. So it makes this guide misleading.
What
Removed sessionStorage param and MemorySessionStorage from the example guide

@yusupova Thanks for finding this error.

Please merge/rebase your PR from main.
Please sign the CLA so that we can approve and merge your PR.

hey @mkevinosullivan , signed CLA and merged with main :+1:

@yusupova  We recently added an automated check for ensuring a CHANGELOG entry. Do you mind running the following commands
yarn changeset --empty
git add .changeset
git commit -m "Add changeset files"

and push the changes to the branch, please? This will clear the failing check.

@mkevinosullivan pushed required changes :+1:

@yusupova Thank you for the contribution 🎉


Implement SOUNDS LIKE as a dialect-specific operator for MySQL

https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#operator_sounds-like

Hello, I'm interested in this enhancement, may I take it?

https://github.com/zio/zio-sql/pull/987


Add a guide for nnx.bridge

Todo for future guides:

When we have a guide for NNX's JAX-style transform, cross-reference it here.
When we have a standalone Linen-to-NNX (refactored from the current Haiku/Linen/NNX guide), cross reference it here.

One general thing I'd add is the use of nnx.display on most cells so users can visualize the structure, it makes it a bit more intuitive to follow e.g:


added email-extractor

Description
This Simple Script extract the email from text files and static webpages
Fixes #138
Type of change
Choosing one or more options from the following as per the nature of your Pull request.

NOTE: These boxes can be checked using [X]

[X] Bug fix (non-breaking change which fixes an issue)

[X] New feature (non-breaking change which adds functionality)

[ ] Documentation Update

Checklist:
Please tick all the boxes that are fulfilled by your Pull Request.

[X] I have named my files and folder, according to this project's guidelines.
[X] My code follows the style guidelines of this project.
[X] My Pull Request has a descriptive title. (not a vague title like Update index.md)
[X] I have commented on my code, particularly in hard-to-understand areas.
[X] I have created a helpful and easy to understand README.md, according to the given README_TEMPLATE.
[X] I have included a requirements.txt file (if external libraries are required.)
[X] My changes do not produce any warnings.
[X] I have added a working sample/screenshot of the script.

@yogeshwaran01 this issue is claimed by someone else it was not assigned to you

@AdityaJ7 why spam, invalid and duplicate. I not seen it is assigned to someone else. Sorry for my mistake.


3D particles support

Hi there, it's me again. I was wondering is the a way to use particles in 3d space. Example: the particles goes around a cylinder.
Thanks in advance.


Decide on strategy around requiredFields

Should we be adding all fields we see to requiredFields, and then removing them if they are not seen in another instance?

Pushing back...

I think we should be adding all fields we see to requiredFields - otherwise there is basically no way of creating a NOT NULL field in our schema...

/cc @fblundun

I think the only way is to add field to requiredFields if it occurring in ALL instances. If it's omitted even once it isn't required.

Agreed

That sounds sensible to me.


Fix Node vs Page

This issue tracks improvements as described in https://discuss.gohugo.io/t/node-improvements/1593
Related issues dangling around will be closed as they must be considered when fixing this.

Has this been resolved? Curious because in a07293cf9741c9b5c10c80db9870ebfd2d2849c1 the commit message says

... This implementation is a temp solution until we fix #2297.

No it was closed by mistake.


🐛 Bug Report: githuborgentityprovider circular reference

📜 Description
Visit GitHubOrgEntityProvider (note H in GitHub)
and click on the link to GithubOrgEntityProvider
Repeat.

GitHubOrgEntityProvider
Home > @backstage/plugin-catalog-backend-module-github > GitHubOrgEntityProvider
Warning: This API is now obsolete.
Use GithubOrgEntityProvider instead.
👍 Expected behavior
Navigates to documentation for GithubOrgEntityProvider
👎 Actual Behavior with Screenshots
The old version and new version share the same URL, and the old version won.
👟 Reproduction steps
See description.
📃 Provide the context for the Bug.
No response
🖥 Your Environment
No response
👀 Have you spent some time to check if this bug has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
No, but I'm happy to collaborate on a PR with someone else

This is a docusaurus thing. It just lowercases things like that. We should probably just entirely remove the old one.

Closing as I think that this has been fixed now as we removed the legacy code instead.


feature request: generateChangelog option "addPreconditions"

Search first

[X] I searched and no similar issues were found

Description
We have a situation where we wish to replace a large set of old scripts with liquibase. The old scripts may or may not have been executed, and we want it to be possible to run only liquibase in both situations.
While the generateChangelog command makes it quite easy to get the new changelogs in place, the work of adding preconditions to all changesets in order to handle both situations is a cumbersome manual process. And it should not really be necessary. I think it would be a good idea to add an option addPreconditions to this method. If the option is used, every createTable changeset should have a not tableExists precondition for the table, with onFail: MARK_RAN. And so on, for the other object types.
I hope such a feature could be added!
Steps To Reproduce
Not relevant - this is a feature request and not a bug report.
Expected/Desired Behavior
Say I have a database with schema MYSCHEMA and table MYTABLE, and I execute liquibase generateChangelog
liquibase generateChangelog --username=xxx --password=xxx--url="xxx" --include-schema=true --diff-types="tables,columns, indexes, foreignkeys, primarykeys, uniqueconstraints" --schemas=MYSCHEMA --changelog-file=myChangelog.yaml --addPreconditions
this should generate a changelog where the create table changeset comes with a precondition included, something like the following:
- changeSet:
    id: "CREATE table MYSCHEMA.MYTABLE"
    author: author-generated
    preConditions:
      - onFail: MARK_RAN
      - not:
        - tableExists:
            schemaName: MYSCHEMA
            tableName: MYTABLE
    changes:
    - createTable:
        columns:
        - column:
            constraints:
              nullable: false
              primaryKey: true
              primaryKeyName: MYTABLE_PK
            name: ID
            remarks: Unique id
            type: RAW(16)
        remarks: Exampel table
        schemaName: MYSCHEMA
        tableName: MYTABLE

Similar preconditions should be added for indexes, constraints etc, for all changeset types where this is possible.
Liquibase Version
No response
Database Vendor & Version
No response
Liquibase Integration
No response
Liquibase Extensions
No response
OS and/or Infrastructure Type/Provider
No response
Additional Context
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR (Thank you!)

@kevin-atx I am glad you like the idea. I have no prior experience with Java programming, and it is also challenging to find the time. But I also think this would be a fun project. On december 7 and 8 this year my company will arrange an internal hackaton, and I think this might be a good project for that. Hopefully also some other colleagues might want to join in on this project.

Hi @hel1e (cc: @gourav), thank you for thinking about this enhancement. I like this idea too, we have been recently working on a similar property addition code change for createProcedure and createView change types for generate-changelog command as well (See #4635 for more details). Talking about your suggestion, do you mean specifically always when using --addPrecondition argument to add always add "tableExists" precondition to all the changesets, right? If that's the case I would think on a different naming (maybe something like --addTableExistsPrecondition).
I like the idea, but I think this would lead to adding preconditions unnecessary to some changesets that don't require it, for example, there could be cases like the one below:
<changeSet id="tagTest" author="nvoxland">
        <tagDatabase tag="testTag"/>
    </changeSet>

or cases like this where for example we have a changeset for defining a given precondition:
changeSet id="continue-preconditions-dont-fire" author="nvoxland">
        <preConditions onError="CONTINUE">
            <sqlCheck expectedResult="3">Invalid SQL</sqlCheck>
        </preConditions>
        <sql>More invalid SQL. should not run due to "continue"</sql>
    </changeSet>

I think none of these cases (and probably some others) would apply to this case.
Do we always want to add the same precondition type or there could be different types? I'm thinking of having a configuration flag to control whether we want to add a precondition or not, and similarly to the PR I shared above to have a set of allowed change types we would add this precondition to.  But, if we mean to add different precondition types in my opinion it would be become this change much more complex.
Let's keep discussing it.
Thanks,
Daniel.

In my example I used addTable as an example of a generated changeset, and therefore tableExists as an example precondition. I did not mean to suggest that all changesets should have a tableExists precondition.
What I mean to suggest is to add the most relevant precondition depending on the type of changeset which is generated.
createTable => tableExists
createIndex => indexExists
createSequence => sequenceExists
and so on.  For most, but maybe not all, changetypes it is quite easy to find the relevant precondition type.
@MalloD12 I cannot see how the example changesets you mention which do not require preconditions could be generated by the generate-changelog command.  Do you maybe think of a parser which adds preconditions to an already existing changelog  file instead of including this in the generate-changelog command?  Actually writing such a parser what was I ended up doing for my own project, because that was the easiest way for me to fix the problem in the time I had. That parser adds preconditions to changesets of specific types, while other changesets are left unchanged.

Hi @hel1e, thank you for clarifying. The only thing I'm still not seeing is how to create the distinction logic to identify which changes we want to add a precondition like the ones you mentioned above and which ones we don't.
Regarding the implementation of a change like this, I was thinking of adding a new  new global configuration argument in GlobalConfiguration class and then then update the addToChangeSets() logic used for the changelog generation doing something like this:
if(GlobalConfiguration.ADD_PRECONDITION_EXISTS.getCurrentValue()) {
    PreconditionContainer preconditions = changeSet.getPreconditions();
    preconditions.addNestedPrecondition(change.getPreconditionExists());
    changeSet.setPreconditions(preconditions);
}

This


fixes queries to azure_log_alert table

Checklist

[x] Issue(s) linked

Resolves #202

@rajlearner17 since the PR does not fix all the issues with section 5.2, specifically the contentious AND statements that check resourceType despite not being a part of audit procedure, please look at the comprehensive fix here: https://github.com/turbot/steampipe-mod-azure-compliance/compare/main...KingBrewer:cis-fix-5.2.x-2?expand=1
I tested it with the removed conditions and all the rules now fire correctly:
$ steampipe --mod-location steampipe-mod-azure-compliance check benchmark.cis_v200_5_2

| |
5.2 Monitoring using Activity Log Alerts .................. 0 / 10 [==========]
|
+ 5.2.1 Ensure that Activity Log Alert exists for Create P… 0 /  1 [=         ]
| |
| OK   : Activity log alert exists for create policy as… Dev - Azure
|
+ 5.2.2 Ensure that Activity Log Alert exists for Delete P… 0 /  1 [=         ]
| |
| OK   : Activity log alert exists for delete policy as… Dev - Azure
|
+ 5.2.3 Ensure that Activity Log Alert exists for Create o… 0 /  1 [=         ]
| |
| OK   : Activity log alert exists for create or update… Dev - Azure
|
+ 5.2.4 Ensure that Activity Log Alert exists for Delete N… 0 /  1 [=         ]
| |
| OK   : Activity log alert exists for delete Network S… Dev - Azure
|
+ 5.2.5 Ensure that Activity Log Alert exists for Create o… 0 /  1 [=         ]
| |
| OK   : Activity log alert exists for create or update… Dev - Azure
|
+ 5.2.6 Ensure that Activity Log Alert exists for Delete S… 0 /  1 [=         ]
| |
| OK   : Activity log alert exists for delete Security … Dev - Azure
|
+ 5.2.7 Ensure that Activity Log Alert exists for Create o… 0 /  1 [=         ]
| |
| OK   : Activity Log Alert exists for Create or Update… Dev - Azure
|
+ 5.2.8 Ensure that Activity Log Alert exists for Delete S… 0 /  1 [=         ]
| |
| OK   : Activity Log Alert exists for Delete SQL Serve… Dev - Azure
|
+ 5.2.9 Ensure that Activity Log Alert exists for Create o… 0 /  1 [=         ]
| |
| OK   : Activity Log Alert exists for Create or Update… Dev - Azure
|
+ 5.2.10 Ensure that Activity Log Alert exists for Delete … 0 /  1 [=         ]
  |
  OK   : Activity Log Alert exists for Delete Public IP… Dev - Azure
| |

Summary
OK ............................................................ 10 [==========]
SKIP ........................................................... 0 [          ]
INFO ........................................................... 0 [          ]
ALARM .......................................................... 0 [          ]
ERROR .......................................................... 0 [          ]
TOTAL ..................................................... 0 / 10 [==========]

@KingBrewer, I appreciate your finding and the PR on this issue 👍
We are wondering whether the Azure API response for location has changed from Global to global since we had this query developed. As I remember, we came across a few scenarios long back on this. We are testing a bit; expect us to revert soon.
Cheers!

It might be. Azure API is known to be a bit chaotic with regards to case sensitivity, among all other things :)
But please also check my other comment, with regard to the resourceType. Only after this commit https://github.com/turbot/steampipe-mod-azure-compliance/commit/0651b032071144969fdb92b71eab5afa5122c33a the checks appear to be firing correctly

@KingBrewer Thanks for pointing out other cases; we validated the and alert.condition -> 'allOf' @> '[{"field": "resourceType", "equals":...... condition in section 5.2.x, which seems to be an additional check but does not change the nature of the outcome after removing it. But it makes sense to follow strict CIS document steps. Its fair to include the changes in the same PR.
We are also good to have location change. Please proceed and update the PR
CC @khushboo9024

@rajlearner17 the commit 2d3b5ba was added to the PR


[BUG]: Can't write tests with React

Issue description
I could not run Baklava's React components on the testing library.
** Code **
function App() {
  return (

React Test

      <BlButton>Merhaba</BlButton>

  );
}

** Unit Test **
import { expect, test } from "vitest";
import { render, screen, waitFor } from "@testing-library/react";
import React from "react";
import App from "./App";

test("should visible button", async () => {
  render(
    <React.Suspense fallback={
mantıklı
}>
      <App />
    </React.Suspense>
  );

  await waitFor(() => expect(screen.getByText("Merhaba")).toBeInTheDocument());
});

Media & Screenshots
No response
Baklava Version
2.2.0
Operating system

OS: [e.g. iOS]: macOS Ventura 13.4
Library: React Testing Library 14.0.0
Test Framework: Vitest 0.34.1

Priority this issue should have
Medium (should be fixed soon)
Please review the checkboxes that are applicable.

[X] This issue is directly related to React

@Enes5519 Can you also add the part how you import the BlButton and Baklava library in general to your code and the project?

@Enes5519 maybe this issue can solve your problem https://github.com/Trendyol/baklava/issues/577


Can't move on after stopped

Hi, I tried to debug on a simple helloworld cmake project on mac and it works perfectly. However, when I try to work with my code (with fftw and gsl), it can't move on(step over/step into) nor stop debugging.  I have to terminate "lldb-mi" with Activity Monitor then terminate the execution. Do you have any idea what causes this situation?

I'm sorry, but I wouldn't be of much help. This extension does not implement a debugger, it only delegates to the cpptools debugger. I'd recommend opening up an issue on their GitHub page, but make sure you try it with manually specifying the content of your launch.json.

Thank you for your quick reply. I'll open an issue on cpptools.


Update README.md installation guide (5.0 released)

This package hasn't been touched for 7 months, I'd probably it dead and would be wary of using it.


Deleted file still appears in file list

I opened file list, saw my file there. Then I deleted it, and keep refreshing file list, but my file is still present in list. If I refresh page after ~20-30 second file dissappears from list (this is correct).
I suggest to invalidate cache when file deleted, so list shows up-to-date information.

It should be in devops repo. It needs change settings of nginx.


Pass tests in the docker building

@aboodman
Thank you for your review. I finished fixing your pointed out.

Thanks!


How to Fetch Alternative Titles?

Library Version: 1.2.0
Description:
I am trying to fetch alternative titles for movies or shows. I've looked at the code, but I couldn't find information on how to achieve this. Can someone provide guidance to retrieve alternative titles? While I can see on TMDB Documentation API of Alternative Titles ==> https://api.themoviedb.org/3/movie/550/alternative_titles?api_key=""

You can create a new instance Tmdb3().movie.getDetails(), the response should have the alternative titles.
Check the doc here https://developer.themoviedb.org/reference/intro/getting-started


Render as a widget if hook is not found during the callable stack

Fixes https://github.com/PrestaShop/PrestaShop/issues/13993

This change is

@PierreRambaud
I hooked faceted search on displayFooterBefore
In FO when I click on "all products", ?q=Price-%24-9-35 is added in the URL and page always loading


<EMAIL_ADDRESS>[subcommand] fails

From @remy on July 13, 2017 15:32
I've run now aws login and created new credentials, these are successfully saved in ~/.now/auth.json.
I've deployed successful (in theory) with now to aws (though it returns a 500 - I'll follow up separately). However, any other command fails:

I've then tried to switch back to now.sh, using now sh login - which was successful, but running now in a directory deploys using the AWS target.
Copied from original issue: zeit/now#17

From @nkzawa on July 20, 2017 2:39
Unfortunately, these subcommands are not implemented yet. We're working on it!

From @jdan on July 13, 2017 16:20
(fwiw same issue on the 500 - looking forward to your issue so I can 👍 it too!)

From @nkzawa on July 20, 2017 9:43
@remy Umm, that should work. Let us know error messages and how your files look like if possible.
I just confirmed putting server.js to a dir and now . work fine for me.
// server.js
require('http').createServer((req, res) => {
  res.end('Hello World!');
}).listen(process.env.PORT);

From @remy on July 20, 2017 7:42
Should I even be able to deploy to aws using now? Only because that failed
too with a 500 with a simple hello world.
On Thu, 20 Jul 2017, 03:39 Naoyuki Kanezawa<EMAIL_ADDRESS>wrote:

Unfortunately, these subcommands are not implemented yet. We're working on
it!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/zeit/now/issues/17#issuecomment-316579760, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAA1hBfhJ48PxQW_zgN6bN7u6V5luWMZks5sPr3pgaJpZM4OXKgY
.

From @darknoon on August 24, 2017 22:41
@nkzawa I filed this issue since I'm having the same issue https://github.com/zeit/now/issues/57

Should work with the latest beta! 🚀
npm install now@beta -g
Stable release coming very soon!


Cell improve constructor performance

Cell improve constructor performance

Iterations 10000000 cells size 12.
Cells constructor 12% performance improvement.
Parse 26% performance improvement.
Before:

Serialize: 0.454000s
Cells constructor: 0.931897s
Parse: 0.325014s
Copy: 0.168819s
Move: 0.023402s

After:

Serialize: 0.457333s
Cells constructor: 0.817422s
Parse: 0.239329s
Copy: 0.162679s
Move: 0.022686s

Iterations 10000000 cells size 60.
Cells constructor 15% performance improvement.
Parse 25% performance improvement.
Before:

Serialize: 1.682229s
Cells constructor: 2.985829s
Parse: 1.471215s
Copy: 0.223400s
Move: 0.023331s

After:

Serialize: 1.655973s
Cells constructor: 2.519810s
Parse: 1.092458s
Copy: 0.224395s
Move: 0.023292s


Microsoft.GitCredentialManagerCore: update to <IP_ADDRESS>577

Microsoft Reviewers: Open in CodeFlow

Please ignore. This was mistakenly made with an improperly-formatted manifest.


Pop layers then save crashes

Hi,
I have a model and I want to remove the last layer before saving the model
I have the code below as explained in :
model.layers.pop()
model.outputs = [self.net.layers[-1].output]
model.layers[-1].outbound_nodes = []
model.save("model.hd5")

But when I want to save my model it crashes

Do you mean
model.outputs = [model.layers[-1].output]

instead of
model.outputs = [self.net.layers[-1].output]

?

Oups, sorry it was a mistake but I wanted to write :
model.layers.pop()
model.outputs = [model.layers[-1].output]
model.layers[-1].outbound_nodes = []
model.save("model.hd5")


feat: Extend .interactive() with tooltip and legend

These are some initial ideas for how we could extend the .interactive() method to become more useful. I think having a clickable legend and a tooltip by default would cover many of the basic interactive needs for situations when one does not want more fine-grained control.
https://github.com/altair-viz/altair/assets/4560057/39e65490-d0da-486d-a7de-15efeb9993f3
We would still need to add this to the concat charts etc, but I thought I would add to #3393 by creating an example of what this could look like in the code.
I think the addition of the tooltip is pretty straightforward and harmless. The addition of the legend raises the question of what would happen when there is an existing opacity encoding. My suggestion would be to detect this and print a message that the interactive legend has been automatically disabled (and setting legend=False) would suppress that message.
I chose to link the legend click to opacity as I thought this was less intrusive than color or a transform filter, but happy to hear other thoughts (I know that e.g. plotly filters points based on legend clicks)
close https://github.com/altair-viz/altair/issues/3393

I'll need to find some more time to review and be helpful but I really like the idea, thanks for getting started on this! I received the feedback from Plotly users that Plotly does more "interactive" things out of the box so I think there could be demand for this.

Really excited to see the progress on .interactive!  Stefan makes a great point –  ease of use around interactions is key for a positive first impression. This aligns with the user feedback we gathered during Altair Express testing.
Since this PR is still a draft, consider the following discussion points rather than direct implementation feedback:
Multi-View Filtering:  How should filtering behave in multi-view charts? In Altair Express, confusion arose when interactions were chart-specific.  Propagating interactions across the entire spec proved more intuitive (ie alx.highlight_brush() + my_multi_view_chart added a brush to each chart and cross filtered the entire visualization. Would a similar approach make sense here?

Interaction Effect Generalization: I love the opacity fade effect for scatterplots. Feels intuitive and looks nice when plots are relatively balanced like the cars datasets.  However, for broader chart types, I've found filtering generally provides better usability. For example with bar charts, fades don’t rescale the y axis and as such they're less helpful for investigating lower-count bars.

I think plotly's approach works pretty well for bar charts.

and it generally helpful for rescaling skewed charts.

Great work bringing up changes for .interactive; Let me know your thoughts on these points. I'm happy to brainstorm solutions and explore potential trade-offs with you. Longer term might make sense to roll up some of altair express's code to .interactive.

Thanks both! I agree that this first interactive impression is important and it's great to hear that this is backed up by your research findings @dylan. Thank you so much for sharing some of the insights from your research!

Interaction Effect: I love the opacity fade effect for scatterplots. Feels intuitive and looks nice when plots are relatively balanced like the cars datasets. However, for broader chart types, I've found filtering generally provides better usability. ...

I 100% agree with this. I think the fade looks nicer and it doesn't have the effect of the axes domain rescaling upon selection with creates a somewhat jarring/jumpy behavior at times. But it is not as general and as you point out, it is not at all useful when there are outliers compressing the rest of the data. I actually switched a personal project over to highlighting to filtering just yesterday for this exact reason and I will update the PR do do the same thing here.

Behavior Across Concatenated Views: How should filtering behave in multi-view charts? ...

This is a great insight and something I didn't even think about. Thanks for sharing it! My preference would be propagation across the entire spec and with filtering instead of opacity highlighting that would be more straightforward.

Longer term might make sense to roll up some of altair express's code to .interactive.

I'm very receptive to plan ahead for this if there are things you already have in mind and you think we should take into account when designing this PR (and you're more than welcome to help out implementing it too if you have time available).

What do you all think about keeping the highlighting behavior on control clicking the legend and having filtering on regular click? On the one hand I worry that we are overloading the legend interaction, but on the other hand, I don't think this would get in the way for people who only clicks the legend without holding control. I can't help but to really like the visual effect of highlighting...
If either of you have more ideas of what we could do here, I would be happy to adjust this PR further with the goal of giving the most helpful default interactivity for everyone who is not interested in setting up their own bindings. One aspect I think would be useful would be to have the cursor change to a "clickable hand" when hovering the legend to indicate that it is indeed. It seems as if this could be a simple change as marks in Vega/Vega-Lite already supports a cursor parameter, but after a brief glance at the source, I can't say that it is immediately obvious what to do so maybe we have to wait for https://github.com/vega/vega-lite/issues/4155...

Given the extensive research that has been put in place on this topic by @dwootton, and his offer to investigate how we can integrate this into the .interactive() method. I think we should not rush this and come up with a deliberate approach that is in-line with the best practices discovered by altair-express.

@dwootton I was working on this today and ran into the issue of how to keep the legend entries constant when the legend is used to filter the data. I opened https://github.com/vega/vega-lite/issues/9360 with more details, but thought I would also mention it here in case you have a clever way to solve this in altair express.

Ooh yeah I remember that. The crux of the issue is that in the data filtering occurs upstream from other options in the dataflow graph. As such, when the color scale is recomputed, it is recomputed over the filtered data, resulting in the behavior seen. Three ways to get around this:

Compute color domain non-reactively.
When you set reactive=False for a parameter, the parameter will not update in response to changes in their upstream dependencies. By adding two parameters and then setting the color domain to be driven off the non-reactive parameter, you can reference the initial color legend.
{
"name":"param4", // this parameter will grab the domain from the color scale.
"expr":"domain('color')" // note: may need fancier logic to handle cases where there are independent color scales.
},
{
"name":"color_domain", // stores the domain of the original color scale at initial load
"react":false,
"expr":"param4"
}

As this breaks VL's schema, I'm not sure this approach would be suitable for the altair project though. However, out of the other options, this felt the cleanest as it didn't require major modifications to the specification.

Create a layered visualization using their provided view with opacity=0 marks.

This will keep the color scale set to unfiltered data but hide any marks from appearing on the visualization.

(Outside of VL) Precompute the domain in python and add it to the color encoding field.

This is probably the easiest option, but from the chart object, you can grab the field from the color encoding and then precompute the unfiltered domain as the domain for the color encoding.

Thank you for the detailed and helpful answer @dwootton ! Sorry it took me a while to get back to you, I wanted to find time to see if I could add your first option to Vega-Lite and finally managed to put together a PR in https://github.com/vega/vega-lite/pull/9374. I think your first option is the cleanest and it would be great to have this supported in the official Vega-Lite grammar. Since the data can be passed as an URL etc, we must make assumption if precomputing the color domain and also rely on a dataframe library, which we are trying to avoid (but this is what I use most of the time personally).

VL5.20 was released including https://github.com/vega/vega-lite/pull/9374🙌. Thanks for releasing @kanitw!

@joelostblom if you'd find it helpful, I could take a stab at resolving all the typing/lint issues?
https://github.com/vega/altair/actions/runs/10338393500/job/28616425584?pr=3394
Thought I'd ask, since they're usually easier to fix in an IDE

@dangotbanned Thanks for offering, I think I just got the mypy checks to pass, but my solution of listing the types three times seems rather inelegant and I suspect there is a better way. Please have a look if you got the time.
And sorry for the noise here, I was trying to resolve these locally, but for some reason I see 40 unrelated mypy errors when I run the tests on my machine (after creating a new virtual env and making sure mypy is the latest version), so it becomes a bit hard to troubleshoot locally. Any insight into this would be helpful too, I'm still learning about using types and mypy effectively.
All the error I'm seeing
altair/vegalite/v5/schema/_typing.py:65: error: Type variable
"altair.vegalite.v5.schema._typing.T" is unbound  [valid-type]
    ...eq = TypeAliasType("OneOrSeq", Union[T, Sequence[T]], type_params=(T,)...
                                                        ^
altair/vegalite/v5/schema/_typing.py:65: note: (Hint: Use "Generic[T]" or "Protocol[T]" base class to bind "T" inside a class)
altair/vegalite/v5/schema/_typing.py:65: note: (Hint: Use "T" in function signature to bind "T" inside a function)
altair/vegalite/v5/schema/_typing.py:65: error: Argument "type_params" to
"TypeAliasType" has incompatible type "tuple[object]"; expected
"tuple[TypeVar | ParamSpec | TypeVarTuple, ...]"  [arg-type]
    ...q = TypeAliasType("OneOrSeq", Union[T, Sequence[T]], type_params=(T,))
                                                                        ^~~~
altair/utils/plugin_registry.py:6: error: Module "typing_extensions" has no
attribute "TypeIs"  [attr-defined]
    from typing_extensions import TypeAliasType, TypeIs, TypeVar
    ^
altair/utils/plugin_registry.py:15: error: Argument "type_params" to
"TypeAliasType" has incompatible type "tuple[object]"; expected
"tuple[TypeVar | ParamSpec | TypeVarTuple, ...]"  [arg-type]
    Plugin = TypeAliasType("Plugin", Callable[..., R], type_params=(R,))
                                                                   ^~~~
altair/utils/plugin_registry.py:16: error: Variable
"altair.utils.plugin_registry.Plugin" is not valid as a type  [valid-type]
    PluginT = TypeVar("PluginT", bound=Plugin[Any])
                                       ^
altair/utils/plugin_registry.py:16: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases
altair/utils/plugin_registry.py:129: error: Variable
"altair.utils.plugin_registry.Plugin" is not valid as a type  [valid-type]
            self._active: Plugin[R] | None = None
                          ^
altair/utils/plugin_registry.py:129: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases
altair/utils/plugin_registry.py:248: error: Variable
"altair.utils.plugin_registry.Plugin" is not valid as a type  [valid-type]
        def get(self) -> partial[R] | Plugin[R] | None:
                                      ^
altair/utils/plugin_registry.py:248: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases
altair/utils/schemapi.py:53: error: Module "typing_extensions" has no attribute
"TypeIs"  [attr-defined]
            from typing_extensions import TypeIs
            ^
altair/utils/schemapi.py:437: error: Unused "type: ignore" comment
[unused-ignore]
            value_strings = [",".join(err.validator_value) for err in erro...
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...
altair/utils/schemapi.py:1408: error: Item "list[dict[str, Any]]" of
"dict[str, Any] | list[dict[str, Any]]" has no attribute "items"  [union-attr]
                    for k, v in dct.items()
                                ^~~~~~~~~
altair/utils/core.py:658: error: No overload variant of "from_native" matches
argument types "DataFrame | DataFrameLike | None", "bool"  [call-overload]
            data_nw = nw.from_native(data, eager_or_interchange_only=True)
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
altair/utils/core.py:658: note: Possible overload variants:
altair/utils/core.py:658: note:     def from_native(native_dataframe: Any, *, strict: Literal[False], eager_only: None = ..., eager_or_interchange_only: Literal[True], series_only: None = ..., allow_series: Literal[True]) -> Any
altair/utils/core.py:658: note:     def from_native(native_dataframe: Any, *, strict: Literal[False], eager_only: Literal[True], eager_or_interchange_only: None = ..., series_only: None = ..., allow_series: Literal[True]) -> Any
altair/utils/core.py:658: note:     def [IntoDataFrameT, T] from_native(native_dataframe: IntoDataFrameT | T, *, strict: Literal[False], eager_only: None = ..., eager_or_interchange_only: Literal[True], series_only: None = ..., allow_series: None = ...) -> DataFrame[IntoDataFrameT] | T
altair/utils/core.py:658: note:     def [IntoDataFrameT, T] from_native(native_dataframe: IntoDataFrameT | T, *, strict: Literal[False], eager_only: Literal[True], eager_or_interchange_only: None = ..., series_only: None = ..., allow_series: None = ...) -> DataFrame[IntoDataFrameT] | T
altair/utils/core.py:658: note:     def from_native(native_dataframe: Any, *, strict: Literal[False], eager_only: None = ..., eager_or_interchange_only: None = ..., series_only: None = ..., allow_series: Literal[True]) -> Any
altair/utils/core.py:658: note:     def from_native(native_dataframe: Any, *, strict: Literal[False], eager_only: None = ..., eager_or_interchange_only: None = ..., series_only: Literal[True], allow_series: None = ...) -> Any
altair/utils/core.py:658: note:     def [IntoFrameT, T] from_native(native_dataframe: IntoFrameT | T, *, strict: Literal[False], eager_only: None = ..., eager_or_interchange_only: None = ..., series_only: None = ..., allow_series: None = ...) -> DataFrame[IntoFrameT] | LazyFrame[IntoFrameT] | T
altair/utils/core.py:658: note:     def [IntoDataFrameT] from_native(native_dataframe: IntoDataFrameT, *, strict: Literal[True] = ..., eager_only: None = ..., eager_or_interchange_only: Literal[True], series_only: None = ..., allow_series: None = ...) -> DataFrame[IntoDataFrameT]
altair/utils/core.py:658: note:     def [IntoDataFrameT] from_native(native_dataframe: IntoDataFrameT, *, strict: Literal[True] = ..., eager_only: Literal[True], eager_or_interchange_only: None = ..., series_only: None = ..., allow_series: None = ...) -> DataFrame[IntoDataFrameT]
altair/utils/core.py:658: note:     def from_native(native_dataframe: Any, *, strict: Literal[True] = ..., eager_only: None = ..., eager_or_interchange_only: None = ..., series_only: None = ..., allow_series: Literal[True]) -> DataFrame[Any] | LazyFrame[Any] | Series
altair/utils/core.py:658: note:     def from_native(native_dataframe: Any, *, strict: Literal[True] = ..., eager_only: None = ..., eager_or_interchange_only: None = ..., series_only: Literal[True], allow_series: None = ...) -> Series
altair/utils/core.py:658: note:     def [IntoFrameT] from_native(native_dataframe: IntoFrameT, *, strict: Literal[True] = ..., eager_only: None = ..., eager_or_interchange_only: None = ..., series_only: None = ..., allow_series: None = ...) -> DataFrame[IntoFrameT] | LazyFrame[IntoFrameT]
altair/utils/core.py:658: note:     def from_native(native_dataframe: Any, *, strict: bool, eager_only: bool | None, eager_or_interchange_only: bool | None = ..., series_only: bool | None, allow_series: bool | None) -> Any
altair/utils/data.py:44: error: Module "typing_extensions" has no attribute
"TypeIs"  [attr-defined]
        from typing_extensions import TypeIs
        ^
altair/vegalite/v5/schema/channels.py:30904: error: Variable
"altair.vegalite.v5.schema._typing.OneOrSeq" is not valid as a type
[valid-type]
    ChannelDetail: TypeAlias = OneOrSeq[Union[str, Detail, Map]]
                               ^
altair/vegalite/v5/schema/channels.py:30904: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases
altair/vegalite/v5/schema/channels.py:30919: error: Variable
"altair.vegalite.v5.schema._typing.OneOrSeq" is not valid as a type
[valid-type]
    ChannelOrder: TypeAlias = OneOrSeq[Union[str, Order, Map, OrderValue]]
                              ^
altair/vegalite/v5/schema/channels.py:30919: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases
altair/vegalite/v5/schema/channels.py:30938: error: Variable
"altair.vegalite.v5.schema._typing.OneOrSeq" is not valid as a type
[valid-type]
    ChannelTooltip: TypeAlias = OneOrSeq[Union[str, Tooltip, Map, TooltipV...
                                ^
altair/vegalite/v5/schema/channels.py:30938: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases
altair/vegalite/v5/schema/channels.py:30960: error: Variable
"altair.vegalite.v5.schema._typing.OneOrSeq" is not valid as a type
[valid-type]
            detail: Optional[OneOrSeq[str | Detail | Map]] = Undefined,
                             ^
altair/vegalite/v5/schema/channels.py:30960: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases
altair/vegalite/v5/schema/channels.py:30979: error: Variable
"altair.vegalite.v5.schema._typing.OneOrSeq" is not valid as a type
[valid-type]
            order: Optional[OneOrSeq[str | Order | Map | OrderValue]] = Un...
                            ^
altair/vegalite/v5/schema/channels.py:30979: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases
altair/vegalite/v5/schema/channels.py:31000: error: Variable
"altair.vegalite.v5.schema._typing.OneOrSeq" is not valid as a type
[valid-type]
            tooltip: Optional[OneOrSeq[str | Tooltip | Map | TooltipValue]...
                              ^
altair/vegalite/v5/schema/channels.py:31000: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases
altair/vegalite/v5/schema/channels.py:31450: error: Variable
"altair.vegalite.v5.schema._typing.OneOrSeq" is not valid as a type
[valid-type]
        detail: OneOrSeq[str | Detail | Map]
                ^
altair/vegalite/v5/schema/channels.py:31450: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases
altair/vegalite/v5/schema/channels.py:31461: error: Variable
"altair.vegalite.v5.schema._typing.OneOrSeq" is not valid as a type
[valid-type]
        order: OneOrSeq[str | Order | Map | OrderValue]
               ^
altair/vegalite/v5/schema/channels.py:31461: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases
altair/vegalite/v5/schema/channels.py:31474: error: Variable
"altair.vegalite.v5.schema._typing.OneOrSeq" is not valid as a type
[valid-type]
        tooltip: OneOrSeq[str | Tooltip | Map | TooltipValue]
                 ^
altair/vegalite/v5/schema/channels.py:31474: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases
altair/vegalite/v5/api.py:61: error: Module "typing_extensions" has no
attribute "TypeIs"  [attr-defined]
            from typing_extensions import Required, TypeIs
            ^
altair/vegalite/v5/api.py:480: error: Item "UndefinedType" of
"TopLevelSelectionParameter | SelectionParameter | UndefinedType" has no
attribute "select"  [union-attr]
                if field_name in getattr(param.select, prop):
                                         ^~~~~~~~~~~~
altair/vegalite/v5/api.py:615: error: Unused "type: ignore" comment
[unused-ignore]
    class _ConditionClosed(TypedDict, closed=True, total=False):  # type: ...
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...
altair/vegalite/v5/api.py:625: error: Unused "type: ignore" comment
[unused-ignore]
    class _ConditionExtra(TypedDict, closed=True, total=False):  # type: i...
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...
altair/vegalite/v5/api.py:632: error: Variable
"altair.vegalite.v5.schema._typing.OneOrSeq" is not valid as a type
[valid-type]
        __extra_items__: _StatementType | OneOrSeq[_LiteralValue]
                                          ^
altair/vegalite/v5/api.py:632: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#variables-vs-type-aliases
altair/vegalite/v5/api.py:649: error: Unused "type: ignore" comment
[unused-ignore]
    class _Value(TypedDict, closed=True, total=False):  # type: ignore[cal...
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...
altair/vegalite/v5/api.py:758: error: Incompatible types in assignment
(expression has type
"Parameter | Expr | Mapping[str, Any] | str | Expression | PredicateComposition | OperatorMixin | UndefinedType",
variable has type
"Parameter | Expr | Mapping[str, Any] | str | Expression | PredicateComposition | OperatorMixin")
 [assignment]
            composed = predicate
                       ^~~~~~~~~
altair/vegalite/v5/api.py:1794: error: Argument 1 to
"to_eager_narwhals_dataframe" has incompatible type "Any | UndefinedType";
expected "NativeFrame | DataFrame[Any] | DataFrameLike"  [arg-type]
                    data = _to_eager_narwhals_dataframe(original_data)
                                                        ^~~~~~~~~~~~~
altair/vegalite/v5/api.py:1797: error: Incompatible types in assignment
(expression has type "Any | UndefinedType", variable has type "DataFrame[Any]")
[assignment]
                    data = original_data
                           ^~~~~~~~~~~~~
altair/vegalite/v5/api.py:4055: error: Argument 1 to "_check_if_valid_subspec"
has incompatible type
"Chart | RepeatChart | ConcatChart | HConcatChart | VConcatChart | FacetChart | LayerChart | UndefinedType";
expected
"Chart | RepeatChart | ConcatChart | HConcatChart | VConcatChart | FacetChart | LayerChart | FacetSpec | LayerSpec | RepeatSpec | FacetedUnitSpec | LayerRepeatSpec | NonNormalizedSpec | NonLayerRepeatSpec | ConcatSpecGenericSpec | ConcatSpecGenericSpec | HConcatSpecGenericSpec | VConcatSpecGenericSpec | Chart | RepeatChart | ConcatChart | HConcatChart | VConcatChart | FacetChart | LayerChart | UnitSpec | LayerSpec"
 [arg-type]
            _check_if_valid_subspec(spec, "RepeatChart")
                                    ^~~~
altair/vegalite/v5/api.py:4057: error: Incompatible types in assignment
(expression has type
"list[Chart | RepeatChart | ConcatChart | HConcatChart | VConcatChart | FacetChart | LayerChart]",
variable has type
"list[Chart | RepeatChart | ConcatChart | HConcatChart | VConcatChart | FacetChart | LayerChart | UndefinedType]")
 [assignment]
            params, _spec_as_list = _combine_subchart_params(params, _spec...
                                    ^
altair/vegalite/v5/api.py:4057: note: "List" is invariant -- see https://mypy.readthedocs.io/en/stable/common_issues.html#variance
altair/vegalite/v5/api.py:4057: note: Consider using "Sequence" instead, which is covariant
altair/vegalite/v5/api.py:4057: error: Argument 2 to "_combine_subchart_params"
has incompatible type
"list[Chart | RepeatChart | ConcatChart | HConcatChart | VConcatChart | FacetChart | LayerChart | UndefinedType]";
expected
"list[Chart | RepeatChart | ConcatChart | HConcatChart | VConcatChart | FacetChart | LayerChart]"
 [arg-type]
    ...arams, _spec_as_list = _combine_subchart_params(params, _spec_as_list)
                                                               ^~~~~~~~~~~~~
altair/vegalite/v5/api.py:4063: error: Argument 2 to "_repeat_names" has
incompatible type
"list[str] | LayerRepeatMapping | RepeatMapping | UndefinedType"; expected
"list[str] | LayerRepeatMapping | RepeatMapping"  [arg-type]
                params = _repeat_names(params, repeat, spec)
                                               ^~~~~~
altair/vegalite/v5/api.py:4632: error: Argument 1 to "_check_if_valid_subspec"
has incompatible type
"Chart | RepeatChart | ConcatChart | HConcatChart | VConcatChart | FacetChart | LayerChart | UndefinedType";
expected
"Chart | RepeatChart | ConcatChart | HConcatChart | VConcatChart | FacetChart | LayerChart | FacetSpec | LayerSpec | RepeatSpec | FacetedUnitSpec | LayerRepeatSpec | NonNormalizedSpec | NonLayerRepeatSpec | ConcatSpecGenericSpec | ConcatSpecGenericSpec | HConcatSpecGenericSpec | VConcatSpecGenericSpec | Chart | RepeatChart | ConcatChart | HConcatChart | VConcatChart | FacetChart | LayerChart | UnitSpec | LayerSpec"
 [arg-type]
            _check_if_valid_subspec(spec, "FacetChart")
                                    ^~~~
altair/vegalite/v5/api.py:4634: error: Incompatible types in assignment
(expression has type
"list[Chart | RepeatChart | ConcatChart | HConcatChart | VConcatChart | FacetChart | LayerChart]",
variable has type
"list[Chart | RepeatChart | ConcatChart | HConcatChart | VConcatChart | FacetChart | LayerChart | UndefinedType]")
 [assignment]
            params, _spec_as_list = _combine_subchart_params(params, _spec...
                                    ^
altair/vegalite/v5/api.py:4634: note: "List" is invariant -- see https://mypy.readthedocs.io/en/stable/common_issues.html#variance
altair/vegalite/v5/api.py:4634: note: Consider using "Sequence" instead, which is covariant
altair/vegalite/v5/api.py:4634: error: Argument 2 to "_combine_subchart_params"
has incompatible type
"list[Chart | RepeatChart | ConcatChart | HConcatChart | VConcatChart | FacetChart | LayerChart | UndefinedType]";
expected
"list[Chart | RepeatChart | ConcatChart | HConcatChart | VConcatChart | FacetChart | LayerChart]"
 [arg-type]
    ...arams, _spec_as_list = _combine_subchart_params(params, _spec_as_list)
                                                               ^~~~~~~~~~~~~
altair/vegalite/v5/api.py:4803: error: Item "UndefinedType" of
"Any | Sequence[VariableParameter | TopLevelSelectionParameter | SelectionParameter] | UndefinedType"
has no attribute "__iter__" (not iterable)  [union-attr]
            for param in subchart.params:
                         ^~~~~~~~~~~~~~~
altair/vegalite/v5/api.py:4833: error: Item "UndefinedType" of
"Sequence[VariableParameter | TopLevelSelectionParameter | SelectionParameter] | UndefinedType"
has no attribute "__iter__" (not iterable)  [union-attr]
        for param in params:
                     ^~~~~~
altair/vegalite/v5/api.py:4852: error: Item "UndefinedType" of
"Any | Sequence[VariableParameter | TopLevelSelectionParameter | SelectionParameter] | UndefinedType"
has no attribute "__iter__" (not iterable)  [union-attr]
            for param in subchart.params:
                         ^~~~~~~~~~~~~~~
altair/vegalite/v5/api.py:4935: error: Item "UndefinedType" of
"Sequence[VariableParameter | TopLevelSelectionParameter | SelectionParameter] | UndefinedType"
has no attribute "__iter__" (not iterable)  [union-attr]
        for param in params:
                     ^~~~~~
Found 41 errors in 7 files (checked 370 source files)

@joelostblom

And sorry for the noise here, I was trying to resolve these locally, but for some reason I see 40 unrelated mypy errors when I run the tests on my machine (after creating a new virtual env and making sure mypy is the latest version), so it becomes a bit hard to troubleshoot locally. Any insight into this would be helpful too, I'm still learning about using types and mypy effectively.
All the error I'm seeing ...

So this one stood out to me, as it would appear your env is using an old typing_extensions version:
altair/utils/plugin_registry.py:6: error: Module "typing_extensions" has no attribute "TypeIs"  [attr-defined]
    from typing_extensions import TypeAliasType, TypeIs, TypeVar

TypeIs was added in v4.10.0 and this is listed as the lower bound in https://github.com/vega/altair/blob/0062e6228134f176bb9fbaa944724039bb6b043a/pyproject.toml#L14-L18

mypy errors when I run the tests on my machine (after creating a new virtual env and making sure mypy is the latest version)

Apologies if this seems like an odd question, but are you managing envs manually or using hatch?
I would have expected this dependency to be updated by hatch (if needed) each time you run hatch test

@dangotbanned Thanks for offering, I think I just got the mypy checks to pass, but my solution of listing the types three times seems rather inelegant and I suspect there is a better way. Please have a look if you got the time.

No problem, having a look now

@joelostblom everything should be passing in a8001da (#3394)
I couldn't split the changes up across commits, so I'll add some comments w/ explanations shortly

Thanks for the pointers @dangotbanned. I was running hatch run mypy altair tests directly because I didn't want to run the full test suite. When I run either hatch test or just mypy altair tests there are no mypy errors (the output is the same as that from github actions) so I guess for some reason, hatch run ... is picking up another environment on my system with an old version of typing_extensions installed. Not sure how that happens since which -a hatch is only pointing to my dedicated conda environment, but I will figure it out eventually (or just run mypy altair tests since that does what I want).

So when you use hatch run script_name it will run in the default environment.
hatch test uses a special environment called hatch-test, with some options specific to testing.
PRs

https://github.com/vega/altair/pull/3461
https://github.com/vega/altair/pull/3477

Related

https://hatch.pypa.io/latest/environment/
https://hatch.pypa.io/latest/environment/#selection
https://hatch.pypa.io/latest/environment/#removal
https://hatch.pypa.io/latest/config/internal/testing/

@joelostblom when you're available, could you add some of the cases you've tried as tests please?
Just ending on chart.to_dict() where you'd previously be displaying in a notebook would be enough.
Thinking that I may be able to dip into this again soon, but want to make sure everything you've tried out so far stays working 👍

@dangotbanned Sorry it took me a few days to get back to this, but I just pushed a test suite draft together with a couple of minor fixes to the changes you made to ensure they work with the test cases I had in mind. If you find the time, feel free to modify as you see fit and thanks for helping out with this PR!

While testing this option with zoomable scales and fixed legends in VL I noticed that the selection of the legend is emptied of all values (resetting the domain) upon a mouseup event on pan. Raising here, as that seems undesirable? See following animated gif (Open the Chart in the Vega Editor):

And when trying the following Altair specification using this PR:
import altair as alt
from vega_datasets import data

source = data.movies.url
predicate = (alt.datum.IMDB_Rating == None) | (alt.datum.Rotten_Tomatoes_Rating == None)

chart = alt.Chart(source).mark_point(invalid=None).encode(
    x="IMDB_Rating:Q",
    y="Rotten_Tomatoes_Rating:Q",
    color=alt.when(predicate).then(alt.value("grey"))
)
chart.interactive()

It now will give the following error:

TypeError: Then.__init__() got an unexpected keyword argument 'condition'

I don't think this option is currently covered in the new tests added within this PR.

@mattijn I will take a look tomorrow, just added a commit to force a fail.
Seems to be related to https://github.com/vega/altair/pull/3543 more than Chart.interactive I think

@mattijn just pushed a fix in #3553

@mattijn in response to your comment:

I noticed that the selection of the legend is emptied of all values (resetting the domain) upon a mouseup event on pan. Raising here, as that seems undesirable?

I agree that it is undesireable, but it is a general issue in Vega-Lite rather than specific to this PR, see for example this example.. I think the solution would be to fire the legend selection event only on pointerup events that are not part of dragleave. I don't know if it is possible to combine and negate selectors like that so I asked on slack if anyone knows.

Got this working in vegalite! This approach uses an event stream filtered to legend marks such that only click events on the legend are captured. It also adds a clear behavior on double click, similar to the clear behavior for interval selections.

Working example from above.

You should be able to use Shift + click to do a multi-select! I'd recommend keeping this approach as its the same behavior that's instrumented across all point selections by default.
If you wanted to get multi-select without shift+click, you can add the toggle property to allow for points to be added with just clicks.

Example

That's odd, it doesn't work for me to shift + click with your example (in either Firefox of Chromium). If I remove the two occurrences of "markname": "Origin_legend_symbols", shift + clicking works as expected

So interesting... I don't see any errors or logs in the Vega console. The browser debug console just shows the following (and it shows the same for the working spec):

I'm on Linux, so that is a difference, but it doesn't seem like that should impact anything here. Let's hear from someone else if it is working for them or not.

Thanks for pushing this further @dwootton, pretty awesome! I also think I understand why you have mixed results. I noticed that @dwootton is clicking on the symbols in the legend and I think that @joelostblom is clicking on the labels in the legend.
If you change "markname": "Origin_legend_symbols" to "markname": "Origin_legend_labels" (2x) than you can do multi-select with shift + click on the legend labels. Clicking on the legend symbols behaves as if there is a toggle property (no need to hold shift for multi-select in that case).
See the Chart in the Vega Editor
I also changed "clear": false to "clear": "dblclick" for the zoomable_scales selection parameter. I think that is consistent with current behavior.

Great catch @mattijn! That's it! Ideally we would want both the legend label and symbol to trigger the same selection behavior. I guess we can duplicate the color_selection parameter and legend binding once each for "Origin_legend_symbols" and "Origin_legend_labels", but maybe there is a cleaner way?
I still see some unexpected behavior with the spec you posted @mattijn. I start by clicking the "USA" label to select only that to only and then shift+click the label of "Japan" so that I have those two labels selected. Now, if I regular click the "Europe" label, only "Europe" would be selected (as expected). However, if I instead would have regular clicked the "Europe" symbol, all three labels are selected (so it behaves as a shift click for some reason; I would expect only Europe to be selected in this case too, just as when the label is clicked)

I also changed "clear": false to "clear": "dblclick" for the zoomable_scales selection parameter. I think that is consistent with current behavior.

+1


Broken link and question about table of contents

Hey mm its me again.While i was reading your documantation i tracked a broken link at: Quck-Start Guide->CONTENT->Helpers->Table of Contents -Link : (auto-generated table of contents)
[ http://kramdown.rubyforge.org/converter/html.html#toc ]
I've also got a question about table of contents.I can't really find a way to use {% include toc %} without it being autogenerated, more specifically I would like to do it inside of an HTML file if possible.

Thanks, the link has been corrected. https://kramdown.gettalong.org/converter/html.html#toc
The TOC helper only works in a Markdown file because that's how it is created. Kramdown (the Markdown parser used by Jekyll) creates it automatically using the headings in your .md file.
There are handful of JavaScript solutions out there you could use if needed, but not something I'm interested in adding to the theme.


runtimes install does not work with Xcode 15

After installing a runtime:
sudo xcodes runtimes install "iOS 13.7"

The runtime is then not there:
xcrun simctl list

== Runtimes ==
iOS 17.0 (17.0 - 21A5248u) - com.apple.CoreSimulator.SimRuntime.iOS-17-0
tvOS 17.0 (17.0 - 21J5273p) - com.apple.CoreSimulator.SimRuntime.tvOS-17-0
watchOS 10.0 (10.0 - 21R5275s) - com.apple.CoreSimulator.SimRuntime.watchOS-10-0

@NachoSoto - How you download extra runtimes have changed a lot and I believe old versions aren't supported this way you're wanting. Sorry

So which runtime versions will be supported for Xcode 15?

@NachoSoto - How you download extra runtimes have changed a lot and I believe old versions aren't supported this way you're wanting. Sorry

@MattKiazyk is there any update on this one?


Plain text variable_declaration & form_data variable values

Plain text variable_declaration
Many existing *.http files from VSCode, IntelliJ contain plain text variable declarations:
@hostname=localhost

@description = Some plain text

Enclosing all the values with "quotes" could be a little annoying 😜
Form data with variables
It would be nice to have variables in definitions like:
POST https://keycloak:1234/auth

grant_type=password&
client_id={{client_id}}&
secret={{secret}}

Hi, I think this could be superceded by #36 as said refactor is based on IntelliJ's specifications as well.
@boltlessengineer is it ok to merge this PR and then implement that change to your branch or do we wait?

@NTBBloodbath The refactor PR will supersede this change anyways so I won't care if you merge this first as a temporary solution.


Add medium height support

Thanks for your commit.
Please remove nslog code.
And do you have full test these code ?

Thanks for your commit.
Please remove nslog code.
And do you have full test these code ?

I will open a new PR to merge the code, I have test with basic VC and PanModal View