Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: bump pandas to latest stable version #11018

Merged
merged 2 commits into from
Sep 24, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions requirements/base.in
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@
# specific language governing permissions and limitations
# under the License.
-e file:.
pyrsistent>=0.16.1,<0.17
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is getting ugly, and will probably keep on getting uglier

importlib-metadata>=1.7.0, <2
22 changes: 11 additions & 11 deletions requirements/base.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SHA1:6d5583095e299af7f7e1c4fdf953577bc873a8a6
# SHA1:1b5e15727cda5c8d6f711f02629430e1560618eb
#
# This file is autogenerated by pip-compile-multi
# To update, run:
Expand All @@ -7,25 +7,25 @@
#
-e file:. # via -r requirements/base.in
aiohttp==3.6.2 # via slackclient
alembic==1.4.2 # via flask-migrate
alembic==1.4.3 # via flask-migrate
amqp==2.6.1 # via kombu
apispec[yaml]==3.3.2 # via flask-appbuilder
async-timeout==3.0.1 # via aiohttp
attrs==20.2.0 # via aiohttp, jsonschema
babel==2.8.0 # via flask-babel
backoff==1.10.0 # via apache-superset
billiard==3.6.3.0 # via celery
bleach==3.1.5 # via apache-superset
bleach==3.2.1 # via apache-superset
brotli==1.0.9 # via flask-compress
cachelib==0.1.1 # via apache-superset
celery==4.4.7 # via apache-superset
cffi==1.14.2 # via cryptography
cffi==1.14.3 # via cryptography
chardet==3.0.4 # via aiohttp
click==7.1.2 # via apache-superset, flask, flask-appbuilder
colorama==0.4.3 # via apache-superset, flask-appbuilder
contextlib2==0.6.0.post1 # via apache-superset
croniter==0.3.34 # via apache-superset
cryptography==3.1 # via apache-superset
cryptography==3.1.1 # via apache-superset
decorator==4.4.2 # via retry
defusedxml==0.6.0 # via python3-openid
dnspython==2.0.0 # via email-validator
Expand All @@ -47,7 +47,7 @@ geopy==2.0.0 # via apache-superset
gunicorn==20.0.4 # via apache-superset
humanize==2.6.0 # via apache-superset
idna==2.10 # via email-validator, yarl
importlib-metadata==1.7.0 # via jsonschema, kombu, markdown
importlib-metadata==1.7.0 # via -r requirements/base.in, jsonschema, kombu, markdown
isodate==0.6.0 # via apache-superset
itsdangerous==1.1.0 # via flask, flask-wtf
jinja2==2.11.2 # via flask, flask-babel
Expand All @@ -58,13 +58,13 @@ markdown==3.2.2 # via apache-superset
markupsafe==1.1.1 # via jinja2, mako, wtforms
marshmallow-enum==1.5.1 # via flask-appbuilder
marshmallow-sqlalchemy==0.23.1 # via flask-appbuilder
marshmallow==3.7.1 # via flask-appbuilder, marshmallow-enum, marshmallow-sqlalchemy
marshmallow==3.8.0 # via flask-appbuilder, marshmallow-enum, marshmallow-sqlalchemy
msgpack==1.0.0 # via apache-superset
multidict==4.7.6 # via aiohttp, yarl
natsort==7.0.1 # via croniter
numpy==1.19.1 # via pandas, pyarrow
numpy==1.19.2 # via pandas, pyarrow
packaging==20.4 # via bleach
pandas==1.0.5 # via apache-superset
pandas==1.1.2 # via apache-superset
parsedatetime==2.6 # via apache-superset
pathlib2==2.3.5 # via apache-superset
polyline==1.4.0 # via apache-superset
Expand All @@ -74,7 +74,7 @@ pyarrow==1.0.1 # via apache-superset
pycparser==2.20 # via cffi
pyjwt==1.7.1 # via flask-appbuilder, flask-jwt-extended
pyparsing==2.4.7 # via packaging
pyrsistent==0.16.0 # via jsonschema
pyrsistent==0.16.1 # via -r requirements/base.in, jsonschema
python-dateutil==2.8.1 # via alembic, apache-superset, croniter, flask-appbuilder, pandas
python-dotenv==0.14.0 # via apache-superset
python-editor==1.0.4 # via alembic
Expand All @@ -98,7 +98,7 @@ werkzeug==1.0.1 # via flask, flask-jwt-extended
wtforms-json==0.3.3 # via apache-superset
wtforms==2.3.3 # via flask-wtf, wtforms-json
yarl==1.5.1 # via aiohttp
zipp==3.1.0 # via importlib-metadata
zipp==3.2.0 # via importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
# setuptools
7 changes: 3 additions & 4 deletions requirements/development.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,10 @@
#
-r base.txt
-e file:. # via -r requirements/base.in
boto3==1.14.62 # via tabulator
botocore==1.17.62 # via boto3, s3transfer
cached-property==1.5.1 # via tableschema
boto3==1.15.3 # via tabulator
botocore==1.18.3 # via boto3, s3transfer
cached-property==1.5.2 # via tableschema
certifi==2020.6.20 # via requests
docutils==0.15.2 # via botocore
et-xmlfile==1.0.1 # via openpyxl
flask-cors==3.0.9 # via -r requirements/development.in
future==0.18.2 # via pyhive
Expand Down
6 changes: 3 additions & 3 deletions requirements/docker.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
#
-r base.txt
-e file:. # via -r requirements/base.in
gevent==20.6.2 # via -r requirements/docker.in
greenlet==0.4.16 # via gevent
gevent==20.9.0 # via -r requirements/docker.in
greenlet==0.4.17 # via gevent
psycopg2-binary==2.8.6 # via -r requirements/docker.in
redis==3.5.3 # via -r requirements/docker.in
zope.event==4.4 # via gevent
zope.event==4.5.0 # via gevent
zope.interface==5.1.0 # via gevent

# The following packages are considered to be unsafe in a requirements file:
Expand Down
4 changes: 2 additions & 2 deletions requirements/integration.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ cfgv==3.2.0 # via pre-commit
click==7.1.2 # via pip-compile-multi, pip-tools
distlib==0.3.1 # via virtualenv
filelock==3.0.12 # via tox, virtualenv
identify==1.5.0 # via pre-commit
identify==1.5.4 # via pre-commit
importlib-metadata==1.7.0 # via pluggy, pre-commit, tox, virtualenv
nodeenv==1.5.0 # via pre-commit
packaging==20.4 # via tox
Expand All @@ -26,7 +26,7 @@ toml==0.10.1 # via pre-commit, tox
toposort==1.5 # via pip-compile-multi
tox==3.20.0 # via -r requirements/integration.in
virtualenv==20.0.31 # via pre-commit, tox
zipp==3.1.0 # via importlib-metadata
zipp==3.2.0 # via importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
# pip
10 changes: 5 additions & 5 deletions requirements/testing.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@
appnope==0.1.0 # via ipython
astroid==2.4.2 # via pylint
backcall==0.2.0 # via ipython
coverage==5.2.1 # via pytest-cov
coverage==5.3 # via pytest-cov
docker==4.3.1 # via -r requirements/testing.in
flask-testing==0.8.0 # via -r requirements/testing.in
iniconfig==1.0.1 # via pytest
ipdb==0.13.3 # via -r requirements/testing.in
ipython-genutils==0.2.0 # via traitlets
ipython==7.16.1 # via -r requirements/testing.in, ipdb
isort==5.5.1 # via pylint
isort==5.5.3 # via pylint
jedi==0.17.2 # via ipython
lazy-object-proxy==1.4.3 # via astroid
mccabe==0.6.1 # via pylint
Expand All @@ -30,14 +30,14 @@ pexpect==4.8.0 # via ipython
pickleshare==0.7.5 # via ipython
prompt-toolkit==3.0.7 # via ipython
ptyprocess==0.6.0 # via pexpect
pygments==2.6.1 # via ipython
pygments==2.7.1 # via ipython
pyhive[hive,presto]==0.6.3 # via -r requirements/development.in, -r requirements/testing.in
pylint==2.6.0 # via -r requirements/testing.in
pytest-cov==2.10.1 # via -r requirements/testing.in
pytest==6.0.1 # via -r requirements/testing.in, pytest-cov
pytest==6.0.2 # via -r requirements/testing.in, pytest-cov
redis==3.5.3 # via -r requirements/testing.in
statsd==3.3.0 # via -r requirements/testing.in
traitlets==5.0.3 # via ipython
traitlets==5.0.4 # via ipython
typed-ast==1.4.1 # via astroid
wcwidth==0.2.5 # via prompt-toolkit
websocket-client==0.57.0 # via docker
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ def get_git_sha():
"isodate",
"markdown>=3.0",
"msgpack>=1.0.0, <1.1",
"pandas>=1.0.5, <1.1",
"pandas>=1.1.2, <1.2",
"parsedatetime",
"pathlib2",
"polyline",
Expand Down
10 changes: 6 additions & 4 deletions superset/viz.py
Original file line number Diff line number Diff line change
Expand Up @@ -2963,23 +2963,25 @@ def nest_values(
for m in levels[0].index
]
if level == 1:
metric_level = levels[1][metric]
return [
{
"name": i,
"val": levels[1][metric][i],
"val": metric_level[i],
"children": self.nest_values(levels, 2, metric, [i]),
}
for i in levels[1][metric].index
for i in metric_level.index
]
if level >= len(levels):
return []
dim_level = levels[level][metric][[dims[0]]]
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This logic has changed as of pandas>=1.1: previously additional keys in a nested MultiIndex were ignored, now they cause a KeyError. The correct behavior for this in this context is to just use the first index. So where we were previously able to do levels[level][metric][dims], now we must do levels[level][metric][[dims[0]]].

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note to self (in case this causes a regression): levels[level][metric][[dims[-1]]] should produce the same result.

return [
{
"name": i,
"val": levels[level][metric][dims][i],
"val": dim_level[i],
"children": self.nest_values(levels, level + 1, metric, dims + [i]),
}
for i in levels[level][metric][dims].index
for i in dim_level.index
]

def nest_procs(
Expand Down